> ## Documentation Index
> Fetch the complete documentation index at: https://docs.truedy.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Built-in Tools

> Pre-built integrations you can enable for your agents without writing any code

# Built-in Tools

Built-in tools are ready-to-use integrations that come with Truedy. You provide your credentials, enable the tool on an agent, and the agent gains the ability to interact with that service during live calls — no backend code required.

## Cal.com — Calendar Booking

The Cal.com tool lets your agent **check real-time availability and book appointments** during a call. The caller never needs to receive a booking link or follow up separately — the appointment is created before they hang up.

**What the agent can do:**

* Check available slots for a specific event type
* Create a booking with the caller's name, email, and preferred time
* Confirm the appointment details back to the caller

### Setup

<Steps>
  <Step title="Get your Cal.com API key">
    In your Cal.com account, go to **Settings → Developer → API Keys** and create a new key.
  </Step>

  <Step title="Find your Event Type ID">
    Navigate to the event type you want agents to book. The ID is visible in the event type's URL: `cal.com/event-types/{id}`.
  </Step>

  <Step title="Configure in Truedy">
    In the Truedy dashboard, go to **Tools → New Tool → Cal.com**. Enter your API key and event type ID, then save.
  </Step>

  <Step title="Attach to an agent">
    Open your agent, go to the **Tools** tab, and enable the Cal.com tool.
  </Step>
</Steps>

### Enable via API

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PATCH https://api.truedy.ai/api/public/v1/agents/{agent_id} \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "tools": ["CALCOM_TOOL_ID"]
    }'
  ```

  ```python Python theme={null}
  import requests

  requests.patch(
      f"https://api.truedy.ai/api/public/v1/agents/{agent_id}",
      headers={"Authorization": "Bearer YOUR_API_KEY"},
      json={"tools": ["CALCOM_TOOL_ID"]}
  )
  ```
</CodeGroup>

### Prompt engineering tip

Tell the agent exactly when and how to use the booking tool:

```
When the caller agrees to schedule a meeting, use the calendar tool to check
availability. Ask for their preferred day and time before calling the tool.
After booking, confirm the date, time, and a summary of what was scheduled.
If no slots are available on their preferred day, offer the next available date.
```

***

## GoHighLevel (GHL) — CRM

The GoHighLevel tool gives your agent access to your GHL sub-account: look up contacts, create or update records, add notes, and trigger automation workflows — all during a live call.

**What the agent can do:**

* Look up a contact by phone number at the start of a call
* Create a new contact if none is found
* Update a contact's lead stage or custom fields
* Add a note to the contact record
* Trigger a GHL workflow

### Setup

<Steps>
  <Step title="Get your GHL API key">
    In GoHighLevel, go to **Settings → Integrations → API Key** and copy your key. For sub-account access, use a Location API key.
  </Step>

  <Step title="Get your Location ID">
    Your location (sub-account) ID is found in the GHL dashboard URL: `app.gohighlevel.com/location/{location_id}/...`
  </Step>

  <Step title="Configure in Truedy">
    Go to **Tools → New Tool → GoHighLevel**. Enter your API key and location ID.
  </Step>

  <Step title="Attach to an agent">
    Open your agent, go to the **Tools** tab, and enable the GHL tool.
  </Step>
</Steps>

### Enable via API

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PATCH https://api.truedy.ai/api/public/v1/agents/{agent_id} \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "tools": ["GHL_TOOL_ID"]
    }'
  ```

  ```python Python theme={null}
  import requests

  requests.patch(
      f"https://api.truedy.ai/api/public/v1/agents/{agent_id}",
      headers={"Authorization": "Bearer YOUR_API_KEY"},
      json={"tools": ["GHL_TOOL_ID"]}
  )
  ```
</CodeGroup>

### Prompt engineering tip

GHL is most powerful when you use it at the beginning and end of a call:

```
At the start of every call, use the GHL tool to look up the caller's phone number.
If a contact exists, greet them by name and use their details to personalise
the conversation. If no contact exists, create one with their name and number
before ending the call. After the call, update the contact's lead stage to
"Contacted" and add a brief note summarising the outcome.
```

***

## Calendly — Scheduling

The Calendly tool lets your agent check availability and schedule events using your Calendly account, providing a familiar booking experience for callers already in your Calendly workflow.

**What the agent can do:**

* Check available times for a specific event type
* Create a one-off booking with the caller's details
* Send the caller a confirmation

### Setup

<Steps>
  <Step title="Get your Calendly API token">
    In Calendly, go to **Integrations → API & Webhooks → Personal Access Tokens** and generate a token.
  </Step>

  <Step title="Get your Event Type URI">
    Via the Calendly API or from your event type's URL: `calendly.com/{username}/{event-slug}`. The URI format is `https://api.calendly.com/event_types/{uuid}`.
  </Step>

  <Step title="Configure in Truedy">
    Go to **Tools → New Tool → Calendly**. Enter your API token and event type URI.
  </Step>

  <Step title="Attach to an agent">
    Open your agent, go to the **Tools** tab, and enable the Calendly tool.
  </Step>
</Steps>

### Enable via API

<CodeGroup>
  ```bash cURL theme={null}
  curl -X PATCH https://api.truedy.ai/api/public/v1/agents/{agent_id} \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "tools": ["CALENDLY_TOOL_ID"]
    }'
  ```

  ```python Python theme={null}
  import requests

  requests.patch(
      f"https://api.truedy.ai/api/public/v1/agents/{agent_id}",
      headers={"Authorization": "Bearer YOUR_API_KEY"},
      json={"tools": ["CALENDLY_TOOL_ID"]}
  )
  ```
</CodeGroup>

### Prompt engineering tip

```
When the caller wants to book a time, use the Calendly tool to check availability.
Always ask for their email address before scheduling — Calendly requires it for
confirmation. Read back the booked time slot clearly and confirm they'll receive
an email confirmation.
```

***

## End Call Tool

The End Call tool is always available on every agent — no configuration required. It allows the agent to **terminate the call programmatically** when the conversation has reached a natural conclusion, rather than waiting for the caller to hang up.

<Note>
  You do not need to enable or configure the End Call tool. It is built into every agent automatically.
</Note>

**Common scenarios for ending the call:**

* The appointment has been booked and confirmed
* The caller's question has been answered and they have no further questions
* The caller explicitly says goodbye
* The conversation has gone off-topic and the agent cannot help further

### Prompt engineering tip

Always tell your agent when it should end the call:

```
When the conversation is complete — the caller has been helped, their appointment
is confirmed, or they say goodbye — end the call. Do not keep the line open
unnecessarily. Always say a warm closing statement before ending the call, such as
"Have a great day!" or "We'll see you on [date]. Take care!"
```

<Warning>
  Without clear instructions in your prompt about when to end the call, agents may hang on past the natural end of a conversation, creating a poor caller experience. Always define your exit conditions explicitly.
</Warning>

***

## Next steps

<Columns>
  <Card title="Custom Tools" icon="code" href="/guides/custom-tools">
    Build a webhook tool to connect your agent to any API or internal system
  </Card>

  <Card title="Tools Overview" icon="wrench" href="/guides/tools-overview">
    Understand how tools work and when to use them
  </Card>
</Columns>
