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

# Sympana App Function Tools (Retell)

> Complete reference for all 11 Sympana Connector functions available to Retell agents — names, parameters, what they return, and how to use them.

## All functions

These are the 11 functions available when you create a Retell connection in Sympana. Click a function in the Sympana dashboard to enable or disable it.

| Function                   | Retell Tool Name              | What It Does                                              |
| -------------------------- | ----------------------------- | --------------------------------------------------------- |
| **Book Appointment**       | `create_appointment_tool`     | Book a new appointment on the linked GHL calendar         |
| **Get Appointment**        | `get_appointment_tool`        | Retrieve details of a specific appointment by ID          |
| **List Appointments**      | `list_appointment_tool`       | Show all upcoming appointments for the caller             |
| **Reschedule Appointment** | `reschedule_appointment_tool` | Move an existing appointment to a new date/time           |
| **Delete Appointment**     | `delete_appointment_tool`     | Cancel an existing appointment                            |
| **Get Slots**              | `get_slots_tool`              | Check available time slots on the GHL calendar            |
| **Get Contact**            | `get_contact_tool`            | Look up a contact in GHL by ID, phone, or email           |
| **Create Contact**         | `create_contact_tool`         | Create a new contact in GHL                               |
| **Update Contact Data**    | `update_contact_data_tool`    | Update contact fields (email, name, phone, custom fields) |
| **Get Opportunity**        | `get_opportunity_tool`        | Retrieve sales pipeline/deal data for the contact         |
| **Timezone Resolver**      | `timezone_resolver_tool`      | Resolve timezone from phone area code or city/state       |

***

## Function parameters

### Book Appointment — `create_appointment_tool`

| Parameter          | Type    | Required | Auto-filled?                        | Description                                             |
| ------------------ | ------- | -------- | ----------------------------------- | ------------------------------------------------------- |
| `first_name`       | string  | Yes      | Yes — from `{{contact_first_name}}` | Contact's first name                                    |
| `last_name`        | string  | Yes      | Yes — from `{{contact_last_name}}`  | Contact's last name                                     |
| `phone`            | string  | Yes      | Yes — from `{{contact_phone}}`      | Phone number (E.164)                                    |
| `title`            | string  | Yes      | No — agent must ask                 | Purpose of the appointment                              |
| `email`            | string  | No       | Yes — from `{{contact_email}}`      | Contact's email                                         |
| `preferred_date`   | string  | No       | No — agent asks                     | Date in YYYY-MM-DD, or "April 15, 2026", or "4/15/2026" |
| `preferred_time`   | string  | No       | No — agent asks                     | Time: "2:30 PM", "14:30", "2pm"                         |
| `timezone`         | string  | No       | Yes — from contact                  | IANA timezone. Also accepts "EST", "Pacific", "Central" |
| `duration_minutes` | integer | No       | Yes — default 30                    | Appointment length in minutes                           |

**Returns:** Appointment ID, start time, end time, confirmation message. If the slot is full, returns alternative available times.

### Get Slots — `get_slots_tool`

| Parameter  | Type   | Required | Description                                                |
| ---------- | ------ | -------- | ---------------------------------------------------------- |
| `date`     | string | No       | Date to check (defaults to tomorrow). Any format accepted. |
| `timezone` | string | No       | Defaults to America/New\_York                              |

**Returns:** Available time slots formatted for voice (e.g., "Wednesday Apr 16 at 2:00 PM"), slot duration, nearest available times. Automatically checks up to 7 days ahead if the requested date is fully booked.

### Get Contact — `get_contact_tool`

No parameters needed — uses `contact_id` from baseline variables. Can also search by `phone` or `email`.

**Returns:** `first_name`, `last_name`, `phone`, `email`, `timezone`, `tags`, `source`, and all custom fields.

### Update Contact Data — `update_contact_data_tool`

| Parameter      | Type   | Required | Description                                        |
| -------------- | ------ | -------- | -------------------------------------------------- |
| `field_name`   | string | Yes      | Which field to update (e.g., `email`, `firstName`) |
| `field_value`  | string | Yes      | The new value                                      |
| `update_notes` | string | No       | Why the update was made                            |

**Updatable fields:** `email`, `firstName`, `lastName`, `phone`, `companyName`, `address1`, `city`, `state`, `postalCode`, `country`, `website`, `timezone`, plus any custom field by key.

### Create Contact — `create_contact_tool`

| Parameter    | Type   | Required |
| ------------ | ------ | -------- |
| `first_name` | string | Yes      |
| `last_name`  | string | Yes      |
| `phone`      | string | Yes      |
| `email`      | string | No       |

### Reschedule Appointment — `reschedule_appointment_tool`

| Parameter        | Type   | Required |
| ---------------- | ------ | -------- |
| `appointment_id` | string | Yes      |
| `new_date`       | string | No       |
| `new_start_time` | string | No       |
| `new_end_time`   | string | No       |

### Delete Appointment — `delete_appointment_tool`

| Parameter        | Type   | Required |
| ---------------- | ------ | -------- |
| `appointment_id` | string | Yes      |

### List Appointments — `list_appointment_tool`

No parameters needed — uses baseline contact variables automatically.

### Get Appointment — `get_appointment_tool`

| Parameter        | Type   | Required |
| ---------------- | ------ | -------- |
| `appointment_id` | string | Yes      |

### Get Opportunity — `get_opportunity_tool`

No parameters needed — uses baseline contact variables.

### Timezone Resolver — `timezone_resolver_tool`

| Parameter | Type   | Required                              |
| --------- | ------ | ------------------------------------- |
| `phone`   | string | No — uses call metadata               |
| `city`    | string | No                                    |
| `state`   | string | No — accepts "CA", "California", "NY" |

***

## How to enable or disable functions

### Enable a function

Click the function once — a blue checkmark appears. Then click **Update Connection** to save.

### Disable a function

Click the function again to remove the checkmark. Then click **Update Connection**.

<Tip>All functions are enabled by default when you create a new connection.</Tip>

## How to view function variables

Click on any enabled function to expand it. Click **prebuilt variables included (show)** to see the auto-configured variables for that function.

For the full setup guide with prompt instructions, see [How to Set Up Functions in Retell](/guides/how-to-set-up-functions-in-retell).

If you need help, join the [Sympana Discord server](https://discord.gg/QXk7ddhmZQ).
