External API Integration
Connect your agent to any external data source so it can fetch live information and answer questions with real, up-to-date data.
What is the External API integration?
The External API integration lets you connect your agent to any service that provides a web API — for example, a booking system, a clinic scheduling service, a live inventory feed, or any internal system your business uses.
Once connected, your agent can call that service automatically when a customer asks a relevant question, and respond with real data instead of a pre-written answer.
What your agent can do
Your agent can call your configured APIs to:
- Look up live availability (e.g. appointment slots, product stock)
- Fetch customer-specific data (e.g. order details, account info)
- Retrieve any information your external system exposes
- Answer questions with real-time data rather than static responses
- Send data to your system with a POST request (e.g. submitting a request or logging an enquiry)
What you need
- A TAB account with at least one agent
- Access to a REST API you want to connect (its URL and any required credentials)
Setting up External APIs
Unlike other integrations, External APIs are configured per agent — each agent manages its own list of APIs independently.
Step 1: Open the External API configuration
- Navigate to your agent's Integrations page
- Find the External API card and click Configure
Step 2: Choose how to add it
Click Add API and pick one of two paths:
- Add New API — configure a single endpoint by hand. Continue with Step 3.
- Import Collection — upload a JSON API spec file and TAB extracts the endpoints for you. Review the list it finds, adjust anything that needs it, and save them all at once. Handy when you're connecting several endpoints from the same service.
Step 3: Fill in the details
Name
A short identifier for this API (e.g. get_doctor_timings, check_stock). Use underscores instead of spaces. This is how your agent will refer to this connection internally.
Description Explain what this API does in plain language. This helps your agent decide when to call it (e.g. "Returns available appointment slots for a given doctor").
Base URL
The main address of the API (e.g. https://api.yourclinic.com).
Endpoint Path
The specific path to call (e.g. /doctors/{doctor_id}/timings). You can use {param} placeholders for values the agent will fill in based on the conversation.
Authentication If the API requires credentials, choose the appropriate type:
- No Authentication — the API is publicly accessible
- Bearer Token — paste your token and it will be sent with every request
- API Key — provide the key and the header name it should be sent in (e.g.
X-API-Key) - Basic Auth — provide your Base64-encoded credentials
Headers (optional) Add any extra headers the API needs on every request, beyond the authentication above.
Method Choose GET to read data, or POST to send data.
Body (POST only) When you pick POST, a body editor appears. Enter a default request body as a JSON object — your agent fills in the values it gathers from the conversation.
Custom Instructions (optional) Add any specific guidance for how the agent should use this API or present the results to customers.
Step 4: Save and activate
Click Add API to save. The API will appear in your list and be active by default.
Step 5: Test it
- Open the Playground for your agent
- Ask a question that should trigger the API (e.g. "What times are available with Dr. Ahmed tomorrow?")
- Your agent should call the API and respond with real data
Managing your APIs
Toggling an API on or off
Each API has its own toggle. Turn one off if you want to temporarily disable it without deleting it. Your agent will ignore inactive APIs.
Editing an API
Click the menu icon next to any API and select Edit to update its details. Note that the name cannot be changed after creation.
Deleting an API
Click the menu icon and select Delete. This permanently removes the API from your agent — it will no longer be called.
Tips
Write clear descriptions
The description is what tells your agent when to use each API. The more specific it is, the better your agent will know when to call it. Compare:
- Vague: "Gets data"
- Better: "Returns available appointment slots for a specific doctor on a given date"
Use path parameters for dynamic lookups
If your API needs a value from the conversation (like a doctor ID or order number), use {param} in the endpoint path. Your agent will extract the relevant value from the customer's message and insert it automatically.
Add custom instructions for better responses
Use the Custom Instructions field to control how the agent presents the results — for example: "Always show results as a numbered list" or "If no slots are available, suggest the next available date."
Current limitations
- GET and POST are supported; PUT, PATCH, and DELETE are not selectable
- Each API is configured per agent — you will need to add the same API again if you want another agent to use it
- The API name can't be changed after you create it
Troubleshooting
The agent isn't calling the API
- Check that the API is toggled on in the list
- Make sure the description clearly explains when the API should be used
- Test in the Playground with a specific question that matches the description
The API returns an error
- Verify the Base URL and endpoint path are correct
- Double-check your authentication credentials
- Make sure the API is accessible from external servers (not restricted to internal networks)
Path parameters aren't being filled in
- Ensure the parameter names in your endpoint path match what the agent can reasonably extract from a conversation
- Add a Custom Instruction to tell the agent what information to ask the customer for before calling the API
Next steps
- Training your agent - Add context so your agent knows when to use the API
- Testing in the Playground - Verify the integration works before going live