Home / Knowledge base / Advanced Tools & Automation
How to Create a Custom Tool to Extract Data and Fill Custom Fields
A custom tool is a function call wrapped around an API POST request: give it a plain-text name, a clear description of when to use it, an endpoint URL, optional bearer-token authorization, and parameters describing what data to extract and in what format. The AI fills the parameters from the conversation and sends them to your endpoint.
Custom tools are what let your voice or chat assistant do anything on the internet — fetch data, extract information from the conversation, or trigger a workflow in another system, with full awareness of what the response means.
How a custom tool works
A custom tool is a function call with an API call wrapper: the AI decides when to use it based on your description, sends a POST request to your endpoint with the parameters it extracted, and reads the response back into the conversation for context. This covers use cases from simple contact-info updates to multi-stage flows like generating a Stripe customer ID and sending a unique checkout link by SMS.
What each input means
- Name (raw JSON format): a unique, plain-text name matching what the tool does —
update_contact,get_delivery_date. This is what the AI calls when it decides the tool applies. - Description (conversational text is fine): the most important field. It tells the AI what the tool does and exactly when to call it. Example: “Get the delivery date for a customer’s order. Call this whenever you need to know the delivery date, for example when a customer asks ‘Where is my package.’”
- Endpoint URL: the specific API or webhook endpoint the tool sends its POST request to.
- Authorization & key: a toggle plus a Bearer Token field, for endpoints that require an API key or authorization header.
- Parameters: key/value pairs where the value is a description of what to extract and in what format. Parameter names should be lowercase JSON-style (underscores, no spaces or special characters); the description should be explicit about the data and format wanted — for example,
revenue: The annualized revenue of the user in raw number format.The AI fills these values in from the conversation itself.
Example use cases from real setups
- Update contact information in a CRM.
- Trigger an inbound webhook.
- Find a contact by contact ID.
- Update contact fields using extracted conversation data.
- Search the web mid-conversation.
- Submit a support ticket on the user’s behalf.
- Screenshot or scrape a website (with authorization) and understand the response.
- Get available times from — and book appointments to — a CRM calendar, including multi-calendar setups.
- Create a Stripe checkout session using a customer ID generated by an earlier tool call in the same conversation.
- Make a contextually aware call request from an SMS conversation.
- Calculate distance using the user’s address.
- Create a new Stripe customer and return the resulting customer information.
Further reading
Next step
Once you’re comfortable with custom tools, apply the same pattern to tags and live transfer: how to create a tool to add and remove tags and how to set up live call transfer (cold and warm). If fields aren’t populating after setup, see fix: AI assistant not filling custom fields.