Use a template
Templates are one-click Call Action starting points for Cal.com, Zendesk, Slack, Shopify and more. You add only the credential.
Browse topics
What it is
A template (also called a preset) is a one-click starting point for a Call Action, pre-filled for a named service: Cal.com, Zendesk, Slack, Shopify, WooCommerce, Mailchimp, Jira, and around two dozen more.
Every template is a Custom API action underneath. Agentency has already filled in the method, the address, the request shape, the parameters the chatbot must extract from the conversation, and the kind of credential the service expects. You supply the secret and review the wording. That is the whole job.
Templates exist because getting an API integration right by hand is fiddly — the version header Cal.com now requires, the /token suffix Zendesk wants on the username, the fact that Freshdesk ignores the password. Each template encodes those details so you do not have to discover them from a 401.
The full list, grouped by what they do, is in the Call action preset reference.
When you would use it
Use a template whenever the service you want is on the list. It is strictly less work and less error-prone than building the same action from scratch.
Build from scratch instead when the service is not listed, or when you are calling your own API. See HTTP connectors for that path — and note you can still use a template as a worked reference while you do it.
If your service is not listed but you already use an automation tool, the Zapier and Make templates are the general-purpose bridge: send the details to a webhook there and let that tool talk to the service.
Where to find it
Open Dashboard → Chatbots → your chatbot → Actions, then select New action. The chooser opens with Start from scratch at the top and Or start from a template underneath.
Steps
- Open the Actions tab and select New action.
- Scroll to Or start from a template, or type in Search integrations… to filter by brand name.
- Select the tile you want. The editor opens with everything pre-filled and a What you'll need panel showing the exact setup steps for that service, plus a Read the docs link to the provider's own documentation.
- Read that panel first and go get the credential it names. This is the step people skip and then get stuck on.
- Back in the editor, replace any placeholder in the address with your own value — a store domain, a subdomain, a store hash, a base ID. Templates for services with per-account addresses ship with an obvious placeholder like
your-store.comorREPLACE_STORE_HASH. - Choose the authentication method the panel names and paste the secret. Secrets are write-only: once saved they are never shown back, and the field displays a "stored" hint instead.
- Review Name and When should the AI use this? on the Details tab. Both are pre-filled, but the description is the single biggest factor in whether the action fires at the right moment, so tune it to the way your visitors actually talk.
- Save, then open the Test tab and run a sample message. The test never contacts the real service — it shows you the request that would be sent.
- Turn on Enabled and try it for real in Test Chatbot.
What a template pre-fills for you
| Pre-filled | Yours to supply |
|---|---|
| The request method and address | Your account's part of the address (store domain, subdomain, base ID) |
| The request body and its field names | Any fixed ID the service needs — a database ID, a list ID, a verified sender |
| The parameters the chatbot must extract | Nothing, though you may add or remove fields |
| Which authentication method to use | The actual secret |
| Required version or format headers | Nothing |
| Whether the action changes data (confirmation) | A decision to keep it on or off |
| A suggested name and trigger description | A review, in your own words |
No template ever contains a secret. They are shipped with the product and identical for everyone.
Credentials, in plain terms
Templates use one of four authentication styles, and the What you'll need panel always tells you which:
- None. The address itself is the secret. This covers the webhook-based templates — Slack, Discord, Microsoft Teams, Zapier, Make. Anyone holding that URL can post to your channel, so treat it like a password and never paste it into a public page or a support ticket.
- Bearer token. One long secret string. Most modern APIs: Cal.com, Calendly, HubSpot, Intercom, Salla, Magento, SendGrid, Notion, Airtable, Asana.
- Basic auth. A username and a password, though services rarely use them literally. Zendesk wants your email with
/tokenappended as the username; Freshdesk wants your API key as the username and any character as the password; WooCommerce wants a consumer key and consumer secret; EasyPost and PrestaShop want the key as the username and a blank password; Mailchimp wants any username and the API key as the password. The panel spells out which pairing your service needs. - API key header. The key travels in a named header —
X-Shopify-Access-Token,X-Auth-Token,as-api-key,DHL-API-Key,X-Subscription-Token. Keep the header name the template ships with; only paste the key.
Give the credential the narrowest permission that works. A template that only reads product prices needs read access, not read/write. Most services let you scope this when you create the key, and the setup panel says which scope to grant.
Confirmation on templates that change data
Templates that create something — a booking, a ticket, an order, an issue, an outbound email — ship with Requires confirmation already on. The chatbot then has to ask the visitor to confirm on their next message before anything is actually created, and the visitor gets a Confirm / Cancel pair under the reply.
That confirmation cannot be satisfied by the chatbot itself within the same reply, which is what stops a cleverly-worded page or document from talking your chatbot into placing an order. Leave it on for anything that costs money, creates a record, or sends a message to a customer.
Read-only templates — product lookups, order status, shipment tracking, web search — ship with it off, because there is nothing to undo.
Editing a template after you save it
A template stops being a template the moment you save; from then on it is an ordinary Custom API action you can edit freely. You can change the address, add or remove parameters, rewrite the body, and rotate the secret.
Two things to know when you edit:
- Leaving a secret field blank on an edit keeps the stored secret. You only need to fill it in when you are rotating it.
- If a service changes its API, Agentency updating the template does not retro-fit your saved action. You will see it as a run failing with an upstream error, and you fix it in your action.
Limits and plan notes
- Every template you enable counts as one enabled Call Action: Free 0, Starter 3, Standard 8, Pro 12, Agency 20 per chatbot. See Plans and what you get.
- You need permission to manage actions on that chatbot. See Roles and permissions.
- All templates call public services over the internet. Agentency refuses to call private or internal addresses, so a template pointed at something on your office network will fail with Blocked destination.
- Each outbound call has a few seconds to respond before the run is recorded as Timed out.
- Templates that connect to a store or a site you already run through an Agentency plugin are a different thing from that plugin — see Shopify and storefronts, WordPress plugin, and Zapier and Make.
Common problems
My service is not in the list.
Build it from scratch with HTTP connectors, or bridge it through the Zapier or Make template. Services that need OAuth sign-in, form-encoded bodies, or GraphQL are deliberately routed through those two bridges rather than given their own template.
Every run fails with an upstream error.
Almost always the credential or a placeholder. Re-read the What you'll need panel: check the scope on the key, check you replaced the placeholder in the address, and check the auth style is the exact pairing the panel describes.
The run says Blocked destination.
The address is not reachable from the public internet, or you left a placeholder in it. Fix the address.
The template saved but the chatbot never uses it.
The action must be Enabled, the chatbot's AI model must support tool calling (see Chatbot AI settings), and the description must match your visitors' phrasing. Run the Test tab with one real sentence to find out which of the three it is.
The chatbot creates things it should not.
Turn Requires confirmation back on, and narrow the description so it names the precondition — what the visitor must have supplied before the action may run.
Common questions
Does a template contain a secret?
No. Every template ships with the product and is identical for everyone. You supply your own credential.
My service is not in the gallery.
Build it from scratch as a Custom API action, or bridge it through the Zapier or Make template.
Can I edit a template after saving it?
Yes. Once saved it is an ordinary Custom API action, so the address, parameters, body and credential are all editable.
Will Agentency update my action if a provider changes their API?
No. Template updates do not reach actions you already saved. A provider change shows up as failed runs that you fix yourself.
Why is my template asking the visitor to confirm?
It creates something. Templates that book, order, ticket or send ship with confirmation switched on.
Was this article helpful?
Related articles
Call action template reference
Every Call Action template, grouped by what it does, with the credential each one needs and whether it asks the visitor to confirm.
Create a Call Action
Add an action from the Actions tab: pick a type or template, configure it, test it in the sandbox, then enable it for visitors.
HTTP connectors
A Custom API action calls an endpoint you configure during a chat and answers with the result. The chatbot fills in the values.
Zapier and Make
Point a Call action at a Zapier Catch Hook or a Make webhook, and the chatbot can start your automations mid-conversation.
Ready to try it on your own content?
Create a free workspace, add a document, and ask the questions your team is tired of answering.