tumbuh.ai
tumbuh.ai Public API

Show a typing indicator

POST
https://<domain-anda>
/api/v1/public/conversations/{customerIdentifier}/typing

Tell a customer on WhatsApp or Instagram that a reply is being composed.

Sends a typing indicator to one customer, identified by customer id, phone number or Instagram username. Use it before a slow reply so the customer knows someone is there. It reaches the customer immediately but leaves no message behind, and it needs the 24-hour window to be open. Limited to one call per customer every three seconds.

Show a typing indicator › path Parameters

customerIdentifier
​string · required

Phone number for WhatsApp, or the platform user id for other channels.

Phone number for WhatsApp, or the platform user id for other channels.

Show a typing indicator › Request Body

channel
​string · enum · required

Channel the typing indicator appears on.

Enum values:
whatsapp
instagram
messenger
telegram
web
tiktok

Show a typing indicator › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Resolve a conversation

POST
https://<domain-anda>
/api/v1/public/conversations/{conversationType}/{conversationId}/resolve

Mark a conversation resolved and reset its AI memory.

Closes the conversation as resolved. Besides stamping the resolved time it ends the active assignment, revokes collaborators, skips pending AI handoffs, and DELETES the AI memory for that thread and the customer memory fields the AI collected — that memory cannot be restored, so the AI starts the next message from scratch. It also triggers workspace follow-up rules that react to a resolved conversation, which may create follow-up tasks or auto-messages. It sends no message to the customer itself. Use it only when the customer issue is finished.

Resolve a conversation › path Parameters

conversationType
​string · enum · required

Conversation type, upper case. A WhatsApp conversation id is the customer id.

Conversation type, upper case. A WhatsApp conversation id is the customer id.

Enum values:
WHATSAPP
INSTAGRAM
MESSENGER
TELEGRAM
WEB
TIKTOK
REPLIZ_COMMENT
TIKTOK_COMMENT
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

Resolve a conversation › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

List conversations

GET
https://<domain-anda>
/api/v1/public/conversations

Return conversations across every channel, newest activity first.

Returns conversations from WhatsApp, Instagram, Messenger, Telegram, TikTok and the web widget in one list, each with its customer, last message, unread state and assignment. Use it to see what is waiting before deciding who to reply to. Filter with channels, status, readStatus, q or a date range. Read-only. Paginated: follow meta.pagination.nextCursor until hasMore is false.

List conversations › query Parameters

limit
​integer · min: 1 · max: 100

Rows to return, 1-100. Defaults to 25.

Rows to return, 1-100. Defaults to 25.

cursor
​string

The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.

The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.

branchIds
​string

Comma-separated authorized branch ids; none selects unbranched conversations. A filter never widens current visibility.

Comma-separated authorized branch ids; none selects unbranched conversations. A filter never widens current visibility.

channels
​string

Comma-separated channels, e.g. whatsapp,instagram. Omit for all.

Comma-separated channels, e.g. whatsapp,instagram. Omit for all.

status
​string

Conversation status, e.g. active or resolved.

Conversation status, e.g. active or resolved.

readStatus
​string

Filter by read state, e.g. unread.

Filter by read state, e.g. unread.

q
​string

Free-text search over customer and message text.

Free-text search over customer and message text.

dateFrom
​string

ISO-8601 lower bound on last activity.

ISO-8601 lower bound on last activity.

dateTo
​string

ISO-8601 upper bound on last activity.

ISO-8601 upper bound on last activity.

assignedCsIds
​string

Comma-separated agent user ids.

Comma-separated agent user ids.

pipelineStageIds
​string

Comma-separated pipeline stage ids.

Comma-separated pipeline stage ids.

labels
​string

Comma-separated labels.

Comma-separated labels.

instagramAccountIds
​string

Comma-separated Instagram account ids from channels.instagramAccounts.

Comma-separated Instagram account ids from channels.instagramAccounts.

facebookPageIds
​string

Comma-separated Facebook page ids from channels.facebookPages.

Comma-separated Facebook page ids from channels.facebookPages.

List conversations › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Read one conversation

GET
https://<domain-anda>
/api/v1/public/conversations/{channel}/{conversationId}

Fetch a single conversation by channel and id.

Returns one conversation with its customer, channel account, unread count, resolution state and assignment. Give the channel and id exactly as conversations.list returned them. Use it to confirm the state of a thread before acting on it. Read-only.

Read one conversation › path Parameters

channel
​string · enum · required

Channel the conversation belongs to. Messenger has no thread reader.

Channel the conversation belongs to. Messenger has no thread reader.

Enum values:
whatsapp
instagram
telegram
web
tiktok
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

Read one conversation › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Read a message thread

GET
https://<domain-anda>
/api/v1/public/conversations/{channel}/{conversationId}/messages

Return the messages in one conversation, newest first.

Returns the messages of a single thread. Give the channel and the conversation id from conversations.list; for whatsapp, pass the customer id instead of a conversation id. Use it to read what was said before replying with messages.send. Read-only and paginated. Messenger threads cannot be read yet and answer 400 channel_unsupported.

Read a message thread › path Parameters

channel
​string · enum · required

Channel the conversation belongs to. Messenger has no thread reader.

Channel the conversation belongs to. Messenger has no thread reader.

Enum values:
whatsapp
instagram
telegram
web
tiktok
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

Read a message thread › query Parameters

limit
​integer · min: 1 · max: 100

Rows to return, 1-100. Defaults to 25.

Rows to return, 1-100. Defaults to 25.

cursor
​string

The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.

The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.

Read a message thread › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

List post comments

GET
https://<domain-anda>
/api/v1/public/comments

Return Facebook, Instagram and TikTok post comments that reached this workspace.

Returns public comments left on the workspace's posts and ads, newest first, with the post, the commenter, whether it is resolved or unread, and who it is assigned to. Each comment also carries markedUnread: true when an operator marked it unread by hand (unread keeps meaning nobody has opened it). Use it to triage: readStatus=unread with assignmentFilter=unassigned finds the comments nobody has opened or taken. By default only open (unresolved) comments are returned; pass status=all to include resolved ones. Read-only. Paginated: follow meta.pagination.nextCursor until hasMore is false. Id lists are comma-separated.

List post comments › query Parameters

limit
​integer · min: 1 · max: 100

Rows to return, 1-100. Defaults to 25.

Rows to return, 1-100. Defaults to 25.

cursor
​string

The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.

The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.

branchIds
​string

Comma-separated authorized branch ids; none selects unbranched comments. A filter never widens current visibility.

Comma-separated authorized branch ids; none selects unbranched comments. A filter never widens current visibility.

channel
​string

Only this platform, one of instagram, facebook, tiktok.

Only this platform, one of instagram, facebook, tiktok.

status
​string

Resolution state, one of active, open, resolved, all, unread. Defaults to active (open comments only); all includes resolved.

Resolution state, one of active, open, resolved, all, unread. Defaults to active (open comments only); all includes resolved.

readStatus
​string

Whether anyone has opened the comment, one of all, read, unread. unread also returns a comment marked unread by hand (markedUnread); read leaves it out.

Whether anyone has opened the comment, one of all, read, unread. unread also returns a comment marked unread by hand (markedUnread); read leaves it out.

assignmentFilter
​string

Ownership, one of all, mine (the API key owner), unassigned (no human assignee) or others (assigned to someone other than the key owner).

Ownership, one of all, mine (the API key owner), unassigned (no human assignee) or others (assigned to someone other than the key owner).

q
​string

Free-text search over the comment text, the author and the post owner.

Free-text search over the comment text, the author and the post owner.

dateFrom
​string

ISO-8601 lower bound on comment time.

ISO-8601 lower bound on comment time.

dateTo
​string

ISO-8601 upper bound on comment time.

ISO-8601 upper bound on comment time.

labels
​string

Comma-separated customer tags; only comments whose linked customer has any of them.

Comma-separated customer tags; only comments whose linked customer has any of them.

resolvedByIds
​string

Comma-separated user ids; only comments resolved by one of them.

Comma-separated user ids; only comments resolved by one of them.

pipelineStageIds
​string

Comma-separated pipeline stage ids from pipelines.list; only comments whose linked customer sits in one.

Comma-separated pipeline stage ids from pipelines.list; only comments whose linked customer sits in one.

teamMemberIds
​string

Comma-separated user ids from assignments.assignableUsers; comments assigned to, or resolved by, one of them.

Comma-separated user ids from assignments.assignableUsers; comments assigned to, or resolved by, one of them.

aiAgentIds
​string

Comma-separated AI agent ids; only comments assigned to one of those AI agents.

Comma-separated AI agent ids; only comments assigned to one of those AI agents.

assignedCsIds
​string

Comma-separated user ids; only comments assigned to one of those customer-service agents.

Comma-separated user ids; only comments assigned to one of those customer-service agents.

List post comments › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Find a comment by its platform id

GET
https://<domain-anda>
/api/v1/public/comments/resolve

Map a platform comment id (commentExtId) to the inbox id comments.get expects.

Turns the platform-native comment id, as stored on a comment lead's conversationId, into the inbox row id used by comments.get, comments.reply and comments.linkCustomer (native Meta and TikTok rows carry an mc_ or ttc_ prefix). Use it to open the thread behind a Lead-Ops comment lead. Name the lane when you know it (repliz, meta or tiktok) to skip the search of the others. Read-only; it does not mark anything read.

Find a comment by its platform id › query Parameters

extId
​string · required

Platform comment id (commentExtId) from a lead's conversationId.

Platform comment id (commentExtId) from a lead's conversationId.

lane
​string

Where the comment came from, one of repliz, meta, tiktok. Searches all three when omitted.

Where the comment came from, one of repliz, meta, tiktok. Searches all three when omitted.

Find a comment by its platform id › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Read one comment

GET
https://<domain-anda>
/api/v1/public/comments/{id}

Fetch a single comment with its thread and the customer it is linked to.

Returns one comment, the replies underneath it and the customer record it has been matched to, if any. Use it to read the whole exchange before answering. It changes no comment content, but opening a comment marks it as read (the unread marker in the dashboard clears), which readStatus filters on. The response carries markedUnread, the stored manual unread mark after this read.

Read one comment › path Parameters

id
​string · required

Comment id from comments.list.

Comment id from comments.list.

Read one comment › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

POST
https://<domain-anda>
/api/v1/public/comments/{id}/link-customer

Attach an existing customer record to a comment.

Links a comment to a customer from customers.list so the thread shows that customer's labels, pipeline stage and history, and so label and pipeline filters on comments.list match it. Replaces any customer already linked. Writes the link only; nothing is posted on the platform and the customer is not contacted. It does not create a customer: use customers.create first when none exists.

id
​string · required

Comment id from comments.list.

Comment id from comments.list.

customerId
​string · required

Customer id from customers.list. It must belong to this workspace.

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

List assignable team members

GET
https://<domain-anda>
/api/v1/public/assignable-users

Return the team members a conversation can be assigned to.

Returns the users who can own a conversation, with their ids, names and roles. Call it before assignments.set to get a valid user id — inventing one is rejected. Read-only. Use assignableEntities instead when AI agents should be listed too. For the full team roster use team.members. Pass branchId to list the agents who serve that branch first.

List assignable team members › query Parameters

branchId
​string

Branch id from branches.list; agents serving that branch are listed first.

Branch id from branches.list; agents serving that branch are listed first.

List assignable team members › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

List assignable people and AI agents

GET
https://<domain-anda>
/api/v1/public/assignable-entities

Return the team members and AI agents a conversation can be assigned to.

Returns { humans, aiAgents, aiWorkflowV2Active }. humans carry the ids that assignments.set takes as assignedToId; aiAgents carry the ids it takes as aiAgentId. aiWorkflowV2Active says the workspace has a published AI Workflow, in which case assignments.returnToAi hands a thread back to it. Read-only.

List assignable people and AI agents › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Read a conversation assignment

GET
https://<domain-anda>
/api/v1/public/conversations/{conversationType}/{conversationId}/assignment

Return who currently owns a conversation — a person, the AI, or nobody.

Returns the current assignee of one conversation, when it was assigned and by whom. Use it before taking a thread over so you do not collide with a teammate who is already answering. Read-only.

Read a conversation assignment › path Parameters

conversationType
​string · enum · required

Conversation type, upper case. Comment threads use the *_COMMENT types.

Conversation type, upper case. Comment threads use the *_COMMENT types.

Enum values:
WHATSAPP
INSTAGRAM
MESSENGER
TELEGRAM
WEB
TIKTOK
REPLIZ_COMMENT
TIKTOK_COMMENT
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

Read a conversation assignment › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Assign a conversation

PUT
https://<domain-anda>
/api/v1/public/conversations/{conversationType}/{conversationId}/assignment

Give a conversation to a specific team member.

Assigns the conversation to ONE assignee: a user id from assignments.assignableEntities (assignedToId) or an AI agent id from the same list (aiAgentId) — send exactly one, never both. Use it to hand a thread to the right person. Writes the assignment and notifies that user in the dashboard; the customer is told nothing and no message is sent. Assigning to a person silences the AI on that thread until it is released or returned with assignments.returnToAi.

Assign a conversation › path Parameters

conversationType
​string · enum · required

Conversation type, upper case. Comment threads use the *_COMMENT types.

Conversation type, upper case. Comment threads use the *_COMMENT types.

Enum values:
WHATSAPP
INSTAGRAM
MESSENGER
TELEGRAM
WEB
TIKTOK
REPLIZ_COMMENT
TIKTOK_COMMENT
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

Assign a conversation › Request Body optional

assignedToId
​string

Human user id from assignments.assignableUsers. Omit when sending aiAgentId.

aiAgentId
​string

AI agent id from assignments.assignableEntities. Omit when sending assignedToId.

Assign a conversation › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Release a conversation

DELETE
https://<domain-anda>
/api/v1/public/conversations/{conversationType}/{conversationId}/assignment

Return a conversation to the unassigned queue.

Removes the current assignee so the conversation goes back to the shared queue. Use it when the assignee cannot continue. Writes the change; the customer sees nothing and no message is sent. This does not resolve or close the conversation.

Release a conversation › path Parameters

conversationType
​string · enum · required

Conversation type, upper case. Comment threads use the *_COMMENT types.

Conversation type, upper case. Comment threads use the *_COMMENT types.

Enum values:
WHATSAPP
INSTAGRAM
MESSENGER
TELEGRAM
WEB
TIKTOK
REPLIZ_COMMENT
TIKTOK_COMMENT
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

Release a conversation › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Read a conversation assignment history

GET
https://<domain-anda>
/api/v1/public/conversations/{conversationType}/{conversationId}/assignment/history

Return every past and current assignment of a conversation.

Returns who held the conversation, in what order, who assigned them and when each assignment ended, with AI agent assignments marked. Use it to understand how a thread was handled before you take it over. Read-only. Paginated: follow meta.pagination.nextCursor until hasMore is false.

Read a conversation assignment history › path Parameters

conversationType
​string · enum · required

Conversation type, upper case. Comment threads use the *_COMMENT types.

Conversation type, upper case. Comment threads use the *_COMMENT types.

Enum values:
WHATSAPP
INSTAGRAM
MESSENGER
TELEGRAM
WEB
TIKTOK
REPLIZ_COMMENT
TIKTOK_COMMENT
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

Read a conversation assignment history › query Parameters

limit
​integer · min: 1 · max: 100

Rows to return, 1-100. Defaults to 25.

Rows to return, 1-100. Defaults to 25.

cursor
​string

The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.

The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.

Read a conversation assignment history › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Hand a conversation back to the AI

POST
https://<domain-anda>
/api/v1/public/conversations/{conversationType}/{conversationId}/ai-mode

Close the human assignment so the AI Workflow answers the thread again.

Switches the conversation back to AI mode. It ends the active human assignment, after which the workspace AI Workflow replies to the customer on the next inbound message — so this changes whether the AI answers a real customer. The conversation stays open and AI memory is kept. It cannot switch the AI off: assign the thread to a person with assignments.set for that. Fails with ai_workflow_v2_inactive when no AI Workflow is published. Answers { returnedToAi: true, changed } and sends no message itself.

Hand a conversation back to the AI › path Parameters

conversationType
​string · enum · required

Conversation type, upper case. Comment threads use the *_COMMENT types.

Conversation type, upper case. Comment threads use the *_COMMENT types.

Enum values:
WHATSAPP
INSTAGRAM
MESSENGER
TELEGRAM
WEB
TIKTOK
REPLIZ_COMMENT
TIKTOK_COMMENT
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

Hand a conversation back to the AI › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

List branches

GET
https://<domain-anda>
/api/v1/public/branches

Return the workspace’s branches (cabang) with their codes and aliases.

Returns the branches of this workspace — id, name, code, aliases, active flag, and the branch profile (address, mapUrl, phone, timezone, workingHours; null when not set). Call it before conversations.setBranch to get a valid branch id; inventing one is rejected. Inactive branches are omitted unless includeInactive is true. Read-only.

List branches › query Parameters

includeInactive
​string · enum

Set to "true" to include deactivated branches.

Set to "true" to include deactivated branches.

Enum values:
true
false

List branches › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Set a conversation’s branch

PUT
https://<domain-anda>
/api/v1/public/conversations/{conversationType}/{conversationId}/branch

Pin a conversation to a branch, or clear it with branchId null.

Sets the conversation’s current branch with source MANUAL, which is never overwritten by AI or automatic rules afterwards. Send a branch id from branches.list, or null to clear it. Answers { applied, fromBranchId, current }; applied is false when the conversation already had that branch at the same rank. Writes the branch and its history; the customer is told nothing and no message is sent. 404 BRANCH_NOT_FOUND for an unknown branch, 422 BRANCH_INACTIVE for a deactivated one.

Set a conversation’s branch › path Parameters

conversationType
​string · enum · required

Conversation type, upper case.

Conversation type, upper case.

Enum values:
WHATSAPP
INSTAGRAM
MESSENGER
TELEGRAM
WEB
REPLIZ_COMMENT
TIKTOK
TIKTOK_COMMENT
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

Set a conversation’s branch › Request Body

branchId
​string | null · required

Branch id from branches.list, or null to clear the branch.

Set a conversation’s branch › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

List conversation collaborators

GET
https://<domain-anda>
/api/v1/public/conversations/{conversationType}/{conversationId}/collaborators

Return the agents who joined a conversation owned by someone else.

Returns the agents who joined this conversation as collaborators, newest first, with who they are and when they joined or were revoked. Use it to see who else is already helping on a thread. Read-only. Joining a conversation is not available through the Public API because a key has no acting agent. Paginated: follow meta.pagination.nextCursor until hasMore is false.

List conversation collaborators › path Parameters

conversationType
​string · enum · required

Conversation type, upper case.

Conversation type, upper case.

Enum values:
WHATSAPP
INSTAGRAM
MESSENGER
TELEGRAM
WEB
TIKTOK
REPLIZ_COMMENT
TIKTOK_COMMENT
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

List conversation collaborators › query Parameters

limit
​integer · min: 1 · max: 100

Rows to return, 1-100. Defaults to 25.

Rows to return, 1-100. Defaults to 25.

cursor
​string

The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.

The meta.pagination.nextCursor value from the previous call. Omit it to read the first page.

List conversation collaborators › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

List inbox filter values

GET
https://<domain-anda>
/api/v1/public/oneinbox/filter-options

Return the ids and names you can filter conversations.list by.

Returns the values the inbox filters accept: labels and tags, team members, AI agents, pipeline stages, and the connected WhatsApp numbers, Instagram accounts, Facebook pages, Telegram bots, TikTok accounts and web widgets. Use it to turn a name into the id that conversations.list expects (assignedCsIds, pipelineStageIds, labels and so on) instead of guessing one. Read-only. One call returns the whole set; it is not paginated.

List inbox filter values › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

Check whether the AI can be retried

GET
https://<domain-anda>
/api/v1/public/messages/ai-retry/{conversationType}/{conversationId}

Say whether the AI reply on a conversation can be retried and why not if it cannot.

Reports whether the latest AI run on this conversation is eligible for a manual retry (eligible true/false), the reason when it is not (resolved, human-assigned, nothing to retry, already queued) and a summary of that run. Use it before messages.aiRetry so you do not trigger a reply by accident. Read-only.

Check whether the AI can be retried › path Parameters

conversationType
​string · enum · required

Conversation type, upper-case: WHATSAPP, INSTAGRAM, MESSENGER, TELEGRAM, TIKTOK, TIKTOK_COMMENT, META_COMMENT or REPLIZ_COMMENT.

Conversation type, upper-case: WHATSAPP, INSTAGRAM, MESSENGER, TELEGRAM, TIKTOK, TIKTOK_COMMENT, META_COMMENT or REPLIZ_COMMENT.

Enum values:
WHATSAPP
INSTAGRAM
MESSENGER
TELEGRAM
REPLIZ_COMMENT
TIKTOK
TIKTOK_COMMENT
META_COMMENT
conversationId
​string · required

Conversation id from conversations.list.

Conversation id from conversations.list.

Check whether the AI can be retried › Responses

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

POST
https://<domain-anda>
/api/v1/public/instagram/conversations/{conversationId}/link-customer

Attach an Instagram conversation to an existing CRM customer.

Links the Instagram conversation to the customer and stamps the customer with the participant's Instagram id and username, so future messages land on that customer. Use instagram.suggestedCustomers first to choose the customer. Fails with 409 when the customer is already tied to a different Instagram account. Reversible with instagram.unlinkCustomer, although the stamped Instagram username stays on the customer.

conversationId
​string · required

Instagram conversation id from conversations.list (channel instagram).

Instagram conversation id from conversations.list (channel instagram).

customerId
​string · required

Customer id from customers.list to attach to this conversation.

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

DELETE
https://<domain-anda>
/api/v1/public/instagram/conversations/{conversationId}/link-customer

Detach the CRM customer from an Instagram conversation.

Removes the customer link from the Instagram conversation. The customer record and its history are kept; only this thread stops pointing at it. Fails with 400 when the thread is not linked.

conversationId
​string · required

Instagram conversation id from conversations.list (channel instagram).

Instagram conversation id from conversations.list (channel instagram).

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

POST
https://<domain-anda>
/api/v1/public/messenger/conversations/{conversationId}/link-customer

Attach a Messenger conversation to an existing CRM customer.

Links the Messenger conversation to the customer so the thread and the CRM record share one history. Fails with 409 when the customer is already linked to another Messenger conversation. Reversible with messenger.unlinkCustomer.

conversationId
​string · required

Messenger conversation id from conversations.list (channel messenger).

Messenger conversation id from conversations.list (channel messenger).

customerId
​string · required

Customer id from customers.list to attach to this conversation.

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required

DELETE
https://<domain-anda>
/api/v1/public/messenger/conversations/{conversationId}/link-customer

Detach the CRM customer from a Messenger conversation.

Removes the customer link from the Messenger conversation. The customer record is kept; only this thread stops pointing at it. Fails with 400 when the thread is not linked.

conversationId
​string · required

Messenger conversation id from conversations.list (channel messenger).

Messenger conversation id from conversations.list (channel messenger).

The API key is missing, malformed, expired, or its owner is inactive.

success
​required
​object · required