AI Agent

Actions: what the assistant can do

Built-in store tools and your own API calls with inputs it learns from the customer.

A smiling barista behind the counter
AI Agent
  • Built in: Shopify products and store policies, order status for a connected store, bookings when they are on, and the question-set recorder.
  • Your own: an API call with a URL, method, headers and a JSON body; you name the inputs the assistant must learn from the customer and which parts of the response it reads back. Tick “confirm before calling” for anything that changes something.
  • Templates exist for Calendly, Klaviyo, Mailchimp, HubSpot, a plain lookup against your own API, and — for a system you built — order status, my bookings, cancel a booking and change a delivery address.

Confirmation is enforced, not just requested: an Action marked “confirm” is sent only in the turn after the customer answered yes. The assistant repeats the exact details (“Cancel booking BK-1042 on Thursday at 10:00 — shall I go ahead?”); the request goes out only if its next message reads as a yes (yes, ok, go ahead, boleh, 好的 …). A no, a question or a long message is not a yes, and the refused attempt is logged under the action as “not confirmed by the customer”, with nothing sent.

Every call is logged under the action with its inputs, status and outcome, so you can see what the assistant sent.

Your own API: the templates “Order status from your own API” and “My bookings from your own system” point at an endpoint you host. In the URL, headers and body, {{input}} is what the agent learned from the customer and {{customer.id}} / {{customer.email}} / {{customer.phone}} / {{customer.name}} are the person it is talking to — filled only when their identity is proof (a verified identify on the web, the number on WhatsApp), empty otherwise, so nobody gets someone else’s data by typing their email. Authenticate with a fixed token in a header or with OAuth 2 client credentials (token URL, client id and secret; the token is fetched and refreshed for you). Test runs the request once with values you type and shows the status and what was read back; nothing reaches a customer.