Skip to the content
Menu: Connected systems

Connected systems

A connection (conn_…) links your organisation to one of your own systems, so the avatar on your website can use it while it talks: real free times from your calendar, a booking, your CRM's contact record, an order in your shop. Each connection is used through ordinary actions on a portal, with the same rules as every action: a change is always confirmed by the visitor first, an account's own information only for a customer your website signed in, and every call leaves a receipt.

Connecting your own systems is a switch (Connect your own systems in Features, off until an owner or admin turns it on) that comes with the Plus plan and up. While it is off nothing connected is used and nothing new can be connected; you can still list and disconnect. On a smaller plan it can't be switched on, and connecting or testing answers 403 upgrade_required with details.reason plan_required and details.plan.

What can be connected#

kindHow it signs inReady-made actions
mcpAny remote MCP server: no sign-in, a bearer token, or OAuthIts own tools, chosen one by one
calcomAn API keyFree times of one event type; book a time
hubspotA private app's access tokenFind the signed-in customer's contact; save a new visitor's details; add a note
shopifyYour shop, and a Dev Dashboard app's Client ID and secret (Zentiq fetches its short-lived tokens) or an older custom app's Admin API access tokenLook up an order (with the email or ZIP or postcode on it); check stock
google_calendarA sign-in on the calendar's own pageFree times within your opening hours; book a time
microsoft_calendarA sign-in on the calendar's own pageFree times within your opening hours; book a time
slackAn Incoming Webhook link from Slack (https://hooks.slack.com/services/…)Tell the team in that channel: a visitor has arrived, wants a call back or needs a person
zapierA Catch Hook link from a Zap (https://hooks.zapier.com/hooks/catch/…)Send the visitor's details and request to that Zap

The two calendars show as coming soon until they are switched on for Zentiq.

Slack and Zapier accept only their own links, sent as url on POST /v1/connections. They have no read-only call to check them with (a test message would land in your channel or run your Zap), so POST /v1/connections/{id}/test checks only that the link is one of theirs; the first real use shows on the connection's health. Their actions always ask the visitor first.

Keys are write-only#

A key, token or webhook link is sent once, on POST /v1/connections. Zentiq checks a key with a read-only call first (a wrong key is never saved), seals it, and never returns it: a connection shows only a masked hint, like …4f2a. No answer, page, log, transcript, webhook or error ever carries one. Disconnecting (DELETE /v1/connections/{id}) deletes it, and switches off the actions that used it.

An MCP server's tools#

Zentiq reads the server's tools when you connect it (and again on POST /v1/connections/{id}/test). In the console you turn the ones you want into actions:

  • a tool that only reads becomes a look-up, for signed-in customers until you make it public;
  • any other tool changes things, so the visitor always confirms first;
  • a tool that can delete or undo things stays off unless you allow it, and then it needs Verified customer on and a signed-in customer who types the one-time code and taps Confirm on their screen (a spoken yes isn't enough); with Verified customer off it is refused, never run without the code.

What a tool sends back is data, never instructions: only the fields you allow reach the avatar, anything that reads like an instruction is removed, and it never becomes part of the avatar's own instructions.

Health, and by webhook#

Each connection shows the share of calls its system answered, the median time and the last problem in plain words. When one starts failing, connection.failed is sent (its id, kind, an error code and the HTTP status, never its key). Each action call's receipt is in the console, as for every action.

Keys and scopes#

The four operations need connections:write. A full-access key holds it; a restricted key only when it lists it; no other scope implies it; an AI app connected through Build with AI can never hold it (its keys never pass through an assistant), and the operations are never offered over MCP.