Platform documentation

Chat and conversations API

The chat API lets integrations list conversations the token user belongs to, read messages, and post new messages. You cannot access conversations you are not a member of.

Endpoints

  • GET /conversations - list your conversations in the workspace

  • GET /conversations/{conversationId}/messages - list messages

  • POST /conversations/{conversationId}/messages - send a message

Scopes

chat:read for GET; chat:write for POST.

Channel ID vs conversation ID (team channels)

A Team Chat channel such as # enquiries is a sidebar row (channel). Messages are stored on a linked conversation (the thread). Each workspace channel has its own channel UUID and a separate conversation UUID, they are not interchangeable in the database, but the API accepts either one in the path.

  • Channel ID, Team Chat → right-click channel → Copy Channel ID (chat_channels.id). Use this in Zapier, HighLevel, and other automations that ask for a channel id.

  • Conversation ID, returned as id from GET /conversations (chat_conversations.id). Same thread as the channel; use for DMs and groups that have no sidebar channel row.

For GET/POST .../conversations/{id}/messages, {id} may be the channel ID or the conversation ID when the thread is a workspace team channel. The PAT user must be a member of that conversation. Wrong or unrelated UUIDs still return 404 Conversation not found or access denied.

curl "https://api.elevale.app/v1/workspaces/{workspaceId}/conversations" \
  -H "Authorization: Bearer elv_pat_..."

List messages (GET /conversations/{conversationId}/messages)

Accepts limit (default 50, max 100) and offset for pagination.

Send message body (POST)

  • content (required) - message text string

  • senderAs (optional) - set to integration so the message shows as from your automation (recommended for Zapier, HighLevel, and custom scripts)

curl -X POST "https://api.elevale.app/v1/workspaces/{workspaceId}/conversations/{conversationId}/messages" \
  -H "Authorization: Bearer elv_pat_..." \
  -H "Content-Type: application/json" \
  -d '{"content":"Update from integration: deal closed."}'

Related

Personal access tokens (PATs) · Scopes and permissions