Actions, widgets & procedures
Three different ways to make your agent do more than answer from text.
Actions
An action is a real tool the model can decide to call mid-conversation, based on your description of when it applies. Every action has a kind:
- HTTP request — calls any external API you configure: method, endpoint URL, auth, and parameters the model fills in from the conversation.
- Form — collects structured fields from the visitor (name, email, custom fields) instead of calling an API.
- Escalate — creates a real support ticket in your Helpdesk inbox, and hands off to Zendesk instead if that integration is connected.
- Notify Slack — posts to the Incoming Webhook URL configured under Settings → Notifications.
For HTTP actions, three auth types are supported, each stored per action:
- No auth — for public endpoints.
- Bearer token — sent as an
Authorization: Bearer …header. - API key — as a custom header, or as a query parameter, with the header/param name you choose.
Parameters you define become a real JSON Schema the model uses to decide what to fill in and call with — the same schema shape returned by the API's underlying tool-calling. Every saved action can be edited in place afterward, including its parameters, without deleting and recreating it.
Templates
Starting points across four categories, each editable after you add it:
- Escalations — hand off to a human, with optional Zendesk routing.
- Custom — a blank HTTP call, a lead-collection form, a generic data-collection form.
- Integrations — Stripe (billing/subscription questions, your own secret key), Shopify (orders/products, your own Admin API token and store domain), Slack (uses the Settings → Notifications webhook), Calendly (real scheduling links).
- Tools — smaller conversational helpers like transfer-to-phone.
Every integration template requires your own API key or webhook URL — nothing is pre-connected on your behalf, since that would mean holding credentials to services the agent doesn't actually have access to yet.
Actions can reference the reusable field definitions from Settings → Custom fields instead of retyping the same parameter shape on every action that needs, say, an order number or a subject line.
Widgets
Small embeddable UI components — currently a contact form or a product card — each with a real embed<iframe> snippet and a live submission count once it's placed somewhere. Generate one from a plain-English description of what you want collected or shown, or start from a template and edit the fields directly. Widgets are independent of the chat widget itself — they're meant for embedding outside the conversation, e.g. in a page alongside the chat bubble.
Procedures
A procedure is a step-by-step playbook the agent should follow when a conversation matches a specific situation — a refund request, an onboarding question, a specific complaint type — rather than a single callable tool. Where an action is one discrete operation, a procedure describes a sequence: what to ask first, what to check, when to escalate. Procedures are read by the model as part of its instructions context, guiding which actions it reaches for and in what order, without you having to encode all of that into the main Instructions text.