Skip to main content

Details

The Custom Agent is a role for Inbound Agents that starts from a blank prompt. Instead of filling in structured fields like on the Receptionist, you write the instructions the agent follows on every call and choose the tools it can use. With a Custom Agent you can:
  • Write a prompt from scratch, or paste one you already have
  • Connect your own API endpoints with custom functions
  • Add library functions for checking availability, booking appointments, and transferring calls
  • Enable the Notify the representative, Send Reports, and Extract custom fields actions
  • Deploy the agent over the phone, on the web, or both
  • Attach Knowledge Packs
This role is ideal for workflows that the templates don’t cover, such as booking through your own CRM or scheduling tool, looking up or creating records during a call, or logging every call as a support ticket.

Creating a Custom Agent

1

Add a new agent

  • From the Home screen, click Add agent in the Inbound Agents section and choose Custom Agent.
2

Complete the initial setup

  • Choose whether the agent is tied to a phone number, deployed to the web, or both, and configure its Agent Settings, Call Settings, and Voice Settings.
  • The setup works the same way as for any inbound agent. See Creating an Inbound Agent.
3

Write the prompt

  • Open the Agent Training tab, write or paste your instructions in the Prompt field, and click Save.
4

Add functions and actions

  • Use the Tools & Functions and Actions tabs to give the agent the abilities it needs. See the sections below.
A Custom Agent shows a Custom Agent badge under its name. Only saved changes affect calls, so click Save after every edit. Unsaved edits are never used on live or test calls.

The Agent Configuration Screen

At the top of the screen you’ll see the agent’s name, its Custom Agent badge, a link to add a description, its status (for example Active on Web or Inactive), and a Settings button. Below that:
  • Estimated credits per minute: An estimate of how many credits the agent consumes for each minute of calling, based on how it is configured. Click it to see what is driving the estimate.
  • Available credits: Your current credit balance.
  • Using: The model tier the agent runs on. Click Manage to choose Basic, which is reliable and efficient for shorter, linear conversations, or Premium, which offers deeper reasoning built for longer, more complex conversations.
For details on credits, see Credit Pricing. The screen has five tabs: Agent Training, Tools & Functions, Actions, Web Agent, and Knowledge Packs.

Agent Training

The Agent Training tab has two sections. Who speaks first
  • Use the Agent / Caller toggle to choose who begins the call.
  • How will the agent greet callers? (required) is the opening line when the agent speaks first, for example “Hi, thanks for calling. How can I help you today?”
Prompt The Prompt holds the instructions the agent follows on every call. There are no predefined sections or fields, so you decide the structure. A good prompt usually covers who the agent is, how it should speak, the goal of the call, what information to collect, and any rules it must follow. Two icons at the top of the Prompt field help you build it:
  • Function icon – Inserts one of your enabled functions into the prompt. Functions appear as blue chips.
  • Tag icon – Inserts a dynamic variable that thinkrr fills in on each call. Variables appear as purple chips.
Variables you can insert
  • Caller: {{client_firstname}}, {{client_lastname}}, {{client_email}}, {{client_phonenumber}}, {{client_timezone}}, {{client_insight}}, and {{incoming_phonenumber}}
  • Call: {{current_time}}

Prompting Tips

  • Tell the agent when to use each function and in what order. Enabling a function does not tell the agent when to call it.
  • Name the exact information each function needs, such as the caller’s name, email, and preferred time.
  • Tell the agent to confirm success only after a function returns a successful result.
  • Tell the agent what to say if a function fails or times out, so it never invents an answer.
  • Ask one question at a time and keep responses short. This is a phone call.

Tools & Functions

The Tools & Functions tab lists the functions your agent can use during conversations. Each function has a toggle, so you can turn it off without deleting it.
  • end_call is built in and always included so the agent can hang up. It cannot be turned off.
  • Click Add to add another function. Choose Create new to connect your own API endpoint, or Pick from library to use a pre-built function.
Functions you enable appear in the function menu in the Prompt, where you can insert them as chips. Reference each function in your prompt and explain when to use it.

Library Functions

Library functions are pre-built and ready to configure. The library includes:
  • Check Availability – Checks calendar availability for a requested date and duration.
  • Book Appointment – Books the confirmed calendar slot.
  • Transfer call – Transfers the live call to the configured number.
1

Open the library

  • On the Tools & Functions tab, click Add and choose Pick from library.
2

Select a function

  • Under Select function, choose Check Availability, Book Appointment, or Transfer call.
3

Review the name and description

  • Keep the suggested Name, or click the pencil icon to rename it. Names can use letters, numbers, underscores, and dashes only (max 64), with no spaces.
  • Review the Description. It tells the agent when and how to use the function, and you can edit it.
4

Configure the function

  • For Check Availability and Book Appointment, select the Calendar to use. Click the refresh icon to reload your calendars.
  • For Transfer call, enter the Phone number to transfer to.
  • Set the Timeout (milliseconds) if you want to change it. The default is 120000.
  • Choose whether the agent speaks while the function runs and after it finishes. See Talk While Waiting and After.
5

Apply your changes

  • Click Apply changes. To add another function of the same kind, click New availability check, New booking, or New transfer.
Pair availability checks with bookings. Check Availability and Book Appointment are designed to work together. When you use both, connect the same calendar to each pair, with the first check going with the first booking, the second with the second, and so on. You still need to explain in the prompt how the agent should use them, for example checking availability first and booking only after the caller chooses a time.

Custom Functions

A custom function lets the agent call your own API endpoint or any third-party service, such as a CRM, a scheduling tool, or a ticketing system.
1

Start a new function

  • On the Tools & Functions tab, click Add and choose Create new.
2

Name and describe it

  • Enter a Name (required), for example check_order_status. Use letters, numbers, underscores, and dashes only (max 64), with no spaces.
  • Enter a Description (required), for example “When the caller asks about an existing order”. The description tells the agent when to use the function.
3

Set the API endpoint

  • Choose the request method, such as GET or POST, and enter the address of the service the function should call.
4

Add authentication and inputs

  • Under Headers, click Add header to send optional headers with the request.
  • Under Query parameters, click Add parameter to append optional query string values to the URL.
  • Under Parameters, enter a JSON schema that describes the arguments the agent should fill in when it calls the function. Click Format JSON to tidy it.
5

Set the timing and speech

  • Set the Timeout (milliseconds). The default is 120000.
  • Choose whether the agent speaks while the request runs and after it finishes. See Talk While Waiting and After.
6

Save the function

  • Click Add function.
Authentication. Bearer tokens, Basic auth, and common API key headers are handled securely by the backend. To connect a service, add an Authorization header with the credential that service provides. Once a function has stored authentication, it is preserved when you save. To replace it, update the Authorization header with the new Bearer token, Basic credential, or API key. Credentials come from the service you are connecting, so use that service’s own documentation to create an API key or token. Parameters. The JSON schema tells the agent what information to collect and pass to your endpoint. The default schema is an empty object with no properties. Add a property for each argument the agent should send, and list the required ones in required.

Talk While Waiting and After

Every function has two speech options:
  • Talk while waiting – The agent fills the silence while the request runs. Choose Prompt to let the agent say something natural based on a waiting prompt you write, for example “Checking the calendar for available times.” Choose Exact line to have the agent say your text word for word.
  • Talk after it finishes – The agent speaks about the result once the request returns.

Actions

The Actions tab shows the actions you can enable on a Custom Agent. Each has a toggle and an Action setup button, and shows Configured or Need configuration to use.
  • Notify the representative – Sends a notification after a call.
  • Send Reports – Sends daily, weekly, or monthly reports.
  • Extract custom fields – Captures structured data from each call into the contact’s custom fields.
For setup instructions, see Abilities & Actions. Booking and transfers are handled with library functions in the Tools & Functions tab.

Web Agent and Knowledge Packs

  • Web Agent – Deploy the agent on your website with the same widget settings as other inbound agents. See Web Widget.
  • Knowledge Packs – Attach Knowledge Packs with the same plan slots as other inbound agents. See Knowledge Packs.

Examples

These examples show complete prompts and functions from working Custom Agents. Replace the placeholders with your own details.

Example: Book Appointments in HubSpot

This agent books demos on a HubSpot meetings calendar using two custom functions:
  • check_availability_hubspot – A GET function that returns open slots.
  • book_appointment_hubspot – A POST function that books the chosen slot.
Both use an Authorization header with a HubSpot token. The prompt makes the agent follow a strict sequence and only confirm a booking after the booking function succeeds.
In the editor, the two function names below are inserted as blue function chips.
This function needs no arguments from the agent, so the schema is an empty object.
Replace the meeting slug, time zone, locale, and duration with your own values.

Example: Log Every Call as a Support Ticket

This agent answers support calls, collects the details the team needs, and logs every call with a custom function named log_call_ticket (a POST function that creates a ticket in a helpdesk). The prompt tells the agent to call the function exactly once per call, before saying goodbye, and sets rules for the category, status, priority, and description.

FAQs & Troubleshooting

General Questions

The Receptionist comes with a fixed structure of training fields. The Custom Agent starts from a blank prompt, so you write all the instructions yourself and choose the functions and actions it can use. This gives you more control, and it also means the agent only does what your prompt tells it to do.
No. You can paste a prompt you already have, from another system or your own notes. There is no required format or structure.
Yes. A Custom Agent can be assigned a phone number and deployed on the web at the same time, and both channels follow the same saved prompt and use the same credit balance.
Yes, in two ways. Use the library functions Check Availability and Book Appointment with a connected calendar, or create custom functions to book through another system, such as HubSpot.

Configuration

On the Tools & Functions tab, click Add and choose Create new. Enter the function’s name and description, the method and address of your endpoint, any headers and query parameters, and a JSON schema for the arguments the agent should send.
From the service you are connecting. Use that service’s documentation to create an API key or token, then add it as an Authorization header on the function. thinkrr stores the credential securely and keeps it when you save.
Checking availability and booking work on the same calendar. When you use both, connect the same calendar to each pair, such as the first check with the first booking, and explain in the prompt that the agent should check availability before booking.
No. end_call is built in and always included so the agent can hang up.
Click Manage at the top of the Agent Configuration screen to choose Basic or Premium.

Usage and Results

Check that the function is turned on in Tools & Functions, that your prompt refers to it with the function icon, and that the function’s description or your prompt says when the agent should call it.
The agent carries on the conversation, so tell it in the prompt what to say, for example that it can’t retrieve the information right now, and instruct it never to invent a result.
Only saved changes are used. Click Save after editing the prompt, and test again once the save completes.
Yes. Test calls consume credits in the same way as live calls, starting with your test credits while you still have them.

For additional questions or guidance, try using our Virtual Support Agent! Available 24/7 to help resolve most issues quickly at thinkrr.ai/support. If you still need assistance, visit our support site at help.thinkrr.ai and submit a Ticket or contact our team directly at hello@thinkrr.ai.