Create a Form

Create a Form

Create a tenant-scoped Amen Forms draft through the product API.

Create a Form

The Forms console creates drafts through the product service. Identity authenticates the person, Core selects the church and mints a short-lived product token, and Forms owns the draft in its own PostgreSQL database.

POST /v1/forms
Authorization: Bearer <five-minute Forms product token>
Content-Type: application/json

{
  "name": "New visitor",
  "slug": "new-visitor",
  "description": "Help our welcome team follow up.",
  "schema": {
    "title": "Welcome",
    "description": "Tell us how we can help.",
    "submitLabel": "Send",
    "consent": {
      "required": true,
      "text": "I agree that this church may use these details to respond.",
      "purpose": "follow-up",
      "version": "1"
    },
    "fields": []
  }
}

The workspace is never accepted from the JSON body. Forms derives it exclusively from the signed product token and returns a standard { "data": ... } envelope.

Publishing

Creating a form produces a draft. Publishing freezes a new immutable schema version, so an old response always remains readable against the exact questions and consent copy that were shown when it was submitted.

The browser console already uses this contract. The separate public API-key and MCP gateway is intentionally unavailable until the missing Amen resource gateway can validate Core API keys and scopes.