Create Portal Conversation
Submit a portal form — creates an AurionAI conversation. This endpoint accepts both authenticated and anonymous submissions: - Authenticated: user context resolved from Authorization Bearer token (end-user JWT). name/email fields are ignored (taken from JWT). - Anonymous: name + email are required in the request body. The submission creates a conversation with channel='portal_form'. No ITSM provider ticket is created automatically. RLS: All DB writes (contact find-or-create, conversation insert, attachment link) run inside the same RLS-bypass transaction to prevent TOCTOU races for concurrent anonymous submissions with the same email.
Submit a portal form — creates an AurionAI conversation.
This endpoint accepts both authenticated and anonymous submissions:
- Authenticated: user context resolved from Authorization Bearer token (end-user JWT). name/email fields are ignored (taken from JWT).
- Anonymous: name + email are required in the request body.
The submission creates a conversation with channel='portal_form'. No ITSM provider ticket is created automatically.
RLS: All DB writes (contact find-or-create, conversation insert, attachment link) run inside the same RLS-bypass transaction to prevent TOCTOU races for concurrent anonymous submissions with the same email.
Query Parameters
Tenant UUID
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
curl -X POST "https://loading/api/v1/help-center/conversations" \ -H "Content-Type: application/json" \ -d '{ "description": "string", "subject": "string" }'{
"created_at": "2019-08-24T14:15:22Z",
"display_id": "string",
"form_version_warning": "string",
"id": "string",
"status": "string"
}{
"detail": [
{
"loc": [
"string"
],
"msg": "string",
"type": "string"
}
]
}