What is a Custom Integration?
A Custom Integration is a configured API call that your Z360 agent makes during a conversation. When your agent runs an ability, it can use Custom Integrations as Act steps. Each Custom Integration defines:- The API endpoint — the URL the agent calls
- The HTTP method — GET, POST, PUT, PATCH, or DELETE
- Arguments — the inputs the agent passes to the API
- Headers — any authentication or content-type headers the API requires
How to Create a Custom Integration
Step 1 — Open Integrations Go to AI Studio in your Z360 sidebar, then click Integrations. Step 2 — Add a New Integration Click Add Integration. A configuration form will open. Step 3 — Name and Describe the Integration Enter a clear name and a description. The agent reads the description to decide when to use it, so be specific. Step 4 — Set the Endpoint and Method Paste the full API URL into the Endpoint field and select GET, POST, PUT, PATCH, or DELETE. Step 5 — Add Arguments Click New Argument to add the inputs your integration needs. Enter a name, description, and toggle Required on if needed. Step 6 — Add Headers Click + Add Header and enter the key and value for any authentication the API requires. Step 7 — Test Click Test to send a pre-flight request and confirm the API responds correctly. Step 8 — Save Click Create Integration. Your integration is now available inside any ability as an Act node.Using a Custom Integration Inside an Ability
Open any ability in AI Studio → Abilities and add an Act node. Select your integration and map your ability variables to the integration’s arguments. Related article: Building Abilities in Z360Popular Tools You Can Connect
OpenWeatherMap — Live Weather Data
OpenWeatherMap — Live Weather Data
- Go to openweathermap.org/api and create a free account.
- Open the API Keys tab in your account dashboard.
- Copy the default API key. Note that new keys take up to 2 hours to activate.
- Name: Get Current Weather
- Description: Fetches the current weather for a given city. Use this when a customer asks about the weather.
- Method: GET
- Endpoint:
https://api.openweathermap.org/data/2.5/weather?units=imperial&appid=YOUR_API_KEY
q, Description: The city name the customer is asking about, Required: Yes.Click Test, confirm you see a weather response, then click Create Integration.Using it in an abilityAdd an Ask node to collect the city name, then an Act node selecting “Get Current Weather” with q mapped to that variable. Add a Speak node to relay the result back to the customer.Slack — Team Notifications via Webhook
Slack — Team Notifications via Webhook
- Go to api.slack.com/apps and click Create New App.
- Choose From scratch, name it “Z360 Notifications”, and select your workspace.
- Click Incoming Webhooks in the sidebar and toggle it to On.
- Click Add New Webhook to Workspace, select the channel you want Z360 to post to, and click Allow.
- Copy the Webhook URL that appears.
- Name: Send Slack Notification
- Description: Posts a message to the team Slack channel when a new lead is collected or a customer needs urgent help.
- Method: POST
- Endpoint: Paste your Slack webhook URL here
text, Description: The message to post including the customer’s name, request, and contact info, Required: Yes.Click Test, check your Slack channel for the test message, then click Create Integration.Using it in an abilityAfter collecting the customer’s information via Ask nodes, add an Act node selecting “Send Slack Notification.” Set the text argument to a message combining the customer’s details.Airtable — Database Records
Airtable — Database Records
- Go to airtable.com and create a free account.
- Create a new Base and add columns for the data your agent will collect — for example: Name, Email, Phone, Message.
- Note your Base ID from the URL. It looks like
appXXXXXXXXXXXXXX. - Note the exact Table Name as it appears.
- Go to airtable.com/create/tokens, create a token, add the
data.records:writescope, and select your base. Copy the token immediately.
- Name: Add Airtable Record
- Description: Creates a new record in the Airtable leads base with the customer’s contact information.
- Method: POST
- Endpoint:
https://api.airtable.com/v0/YOUR_BASE_ID/YOUR_TABLE_NAME
Authorization with value Bearer YOUR_AIRTABLE_TOKEN and Content-Type with value application/json.Add one argument per field — for example: Name, Email, Phone, Message.Click Test, check your Airtable base for the new record, then click Create Integration.Using it in an abilityUse Ask nodes to collect each piece of information, then add an Act node selecting “Add Airtable Record.” Map each argument to the corresponding variable.Brevo — Transactional Email
Brevo — Transactional Email
- Go to brevo.com and create a free account.
- Click your name in the top-right and go to SMTP & API → API Keys. Generate a new key and copy it.
- Go to Senders & IP → Senders and add the email address you want to send from. Verify it. This step is required before any emails will send.
- Name: Send Confirmation Email
- Description: Sends a confirmation email to the customer after they submit a request or book an appointment.
- Method: POST
- Endpoint:
https://api.brevo.com/v3/smtp/email
api-key with your Brevo API key and Content-Type with application/json.Add four arguments: to_email, to_name, subject, and content.Click Test, check your test inbox, then click Create Integration.Using it in an abilityAfter collecting the customer’s details, add an Act node selecting “Send Confirmation Email.” Map to_email and to_name to the collected variables and set subject and content to your message.Cal.com — Appointment Booking
Cal.com — Appointment Booking
- Go to cal.com and create a free account.
- Set up your availability and create an Event Type — for example, “30-Minute Consultation.”
- Note the Event Type ID from the URL when editing it.
- Go to Settings → Developer → API Keys, click Add, and copy your API key.
- Name: Book Appointment
- Description: Creates a new appointment booking in Cal.com with the customer’s name, email, and preferred time.
- Method: POST
- Endpoint:
https://api.cal.com/v1/bookings?apiKey=YOUR_CAL_API_KEY
eventTypeId, name, email, start (ISO 8601 format), and timeZone.Click Test, check your Cal.com dashboard, then click Create Integration.Using it in an abilityBuild an ability that asks for the customer’s name, email, preferred date and time, and time zone. Add an Act node calling “Book Appointment” with each argument mapped. Follow with a Speak node to confirm the booking.GitHub — Issue and Bug Reporting
GitHub — Issue and Bug Reporting
- Log into GitHub and go to Settings → Developer settings → Personal access tokens → Tokens (classic).
- Click Generate new token (classic), name it, and set an expiration.
- Check
repounder Scopes for private repos, orpublic_repofor public only. - Click Generate token and copy it immediately. GitHub only shows it once.
- Note your username and repository name where issues should be created.
- Name: Create GitHub Issue
- Description: Opens a new GitHub issue with the customer’s bug report or feature request, including their description and contact details.
- Method: POST
- Endpoint:
https://api.github.com/repos/YOUR_USERNAME/YOUR_REPO/issues
Authorization with Bearer YOUR_GITHUB_TOKEN, Content-Type with application/json, and Accept with application/vnd.github+json.Add two arguments: title and body.Click Test, check your repository’s Issues tab, then click Create Integration.Using it in an abilityBuild an ability that asks the customer to describe the problem. Add an Act node calling “Create GitHub Issue” and map title and body to the collected variables. Add a Speak node confirming the report was submitted.Frequently Asked Questions
What is the difference between a Custom Integration and a built-in action?
What is the difference between a Custom Integration and a built-in action?
Do I need to know how to code?
Do I need to know how to code?
Can one ability use multiple Custom Integrations?
Can one ability use multiple Custom Integrations?
How does the agent know when to use a specific integration?
How does the agent know when to use a specific integration?
Can I use the same integration in multiple abilities?
Can I use the same integration in multiple abilities?
What if the API requires no authentication?
What if the API requires no authentication?
Where do I find my API key for a third-party service?
Where do I find my API key for a third-party service?
What happens if a required argument is missing when the integration runs?
What happens if a required argument is missing when the integration runs?
Can I update a Custom Integration after saving it?
Can I update a Custom Integration after saving it?
Troubleshooting Guide
The integration fails with a 404 Not Found error
The integration fails with a 404 Not Found error
The integration fails with a 400 Bad Request error
The integration fails with a 400 Bad Request error
The test passes but the integration does not fire inside an ability
The test passes but the integration does not fire inside an ability
The integration runs but the data posted to the third-party tool is wrong or empty
The integration runs but the data posted to the third-party tool is wrong or empty
The API key worked before but now the integration is failing
The API key worked before but now the integration is failing
I cannot find the API documentation for the service I want to connect
I cannot find the API documentation for the service I want to connect
