Skip to main content
These endpoints are for the VIP plan only. Other plans get a 403. See Plan access.
A custom action calls your endpoint during a conversation. It belongs to the workspace, so one action can serve many agents. See Actions for the request your endpoint gets. An account API key sends workspaceId in the body on create, and in the query on list.

Fields

string
required
The action’s name.
string
When the agent should use it.
string
required
GET, POST, PUT, PATCH or DELETE.
string
required
Your endpoint. It must be a public address. We refuse private and internal addresses.
object[]
What the agent fills in from the conversation. Each has name, description, type (string, number or boolean) and required.
boolean
Whether agents can use it.
object
Headers to send with every call. On update this replaces all headers. A name may only use letters, digits and !#$%&'*+-.^_|~, a value can't hold a line break, and you can't set Host, Content-Length, Transfer-EncodingorConnection.</ParamField> <ParamField body="authType" type="string">bearer, api_keyorbasic. Send nullon update to remove the auth.</ParamField> <ParamField body="authValue" type="string">The secret forauthType. Needed when you set authType` for the first time.
authValue and header values are write only. We never send them back. A response shows hasAuth and the header names.
If you change url to another address (a different host, http or https, or port), send authValue and headers again in the same request, or set authType to null and headers to {} to remove them. The saved ones stay with the old address, and we refuse the change with a 400.
Response

Test a custom action

POST /v1/custom-actions/{id}/test
object
The values the agent would fill in, like { "zip": "94107" }.
We call your endpoint once with the saved URL, headers and auth, the same way a live call would. We wait up to 30 seconds and follow up to 5 redirects. A redirect to a private or internal address is refused. When a redirect goes to another address (a different host, http or https, or port), we do not send your auth there. Your other headers go with it. You can test 10 times a minute per workspace.
Response
body holds up to 4,000 characters of the answer. When the call fails, success is false and error says why.

Errors