Pre-create a conversation from a CRM / webform handler before the customer messages. Closes the chicken-and-egg with POST /api/v1/leads (which requires an existing conversation_id). Strict-create: returns 409 if a conversation already exists for the (channel, customer_identifier) pair. Emits conversation.created. Internal ingest paths (WhatsApp inbound, voice, webform) do NOT yet emit this event — only the public-API write path does.
Documentation Index
Fetch the complete documentation index at: https://docs.vorel.ai/llms.txt
Use this file to discover all available pages before exploring further.
Tenant-issued API key. Format: vapk_live_<48 hex chars> (60 chars total). Issue + manage at /settings/integrations/api-keys in the Vorel dashboard. Each key has a scope set (read, leads:write, appointments:write, offerings:write); endpoints requiring a write scope reject keys without it with a 403 envelope.
Pre-create a conversation from a CRM / webform handler before the customer messages. Closes the chicken-and-egg with POST /api/v1/leads (which requires an existing conversation_id). Strict-create: returns 409 if a conversation already exists for the (channel, customer_identifier) pair under this tenant.
Inbound channel slug. whatsapp / voice / webform are live; instagram / email are reserved slots for channels whose ingest paths land in a future phase.
whatsapp, voice, webform, instagram, email Channel-native identifier — phone for WhatsApp/voice (E.164 strongly recommended; not enforced), email for webform, etc.
1 - 255200ISO 639-1 (en, ar) or BCP 47 short tag (en-US). Other formats are rejected at the validation layer.
^[a-z]{2}(-[A-Z]{2})?$Conversation created. Emits conversation.created.
Inbound channel slug — e.g. whatsapp, voice, webform.
Channel-native identifier — phone for WhatsApp/voice (E.164), email for webform, etc.
Conversation lifecycle state — active, closed, …
ISO 639-1 (en, ar, …) when known.