> ## 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 (Vapi)

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

## All functions

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

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

<Info>Vapi functions work the same way as Retell functions — the same 11 tools, same parameters, same behavior. The only difference is how Sympana registers them with each provider. You don't need to worry about this — Sympana handles it automatically.</Info>

***

## Function parameters

### Book Appointment

| Parameter          | Type    | Required | Auto-filled?     | Description                       |
| ------------------ | ------- | -------- | ---------------- | --------------------------------- |
| `first_name`       | string  | Yes      | Yes              | Contact's first name              |
| `last_name`        | string  | Yes      | Yes              | Contact's last name               |
| `phone`            | string  | Yes      | Yes              | Phone number                      |
| `title`            | string  | Yes      | No — agent asks  | Purpose of the appointment        |
| `email`            | string  | No       | Yes              | Contact's email                   |
| `preferred_date`   | string  | No       | No — agent asks  | Any date format accepted          |
| `preferred_time`   | string  | No       | No — agent asks  | "2:30 PM", "14:30", "2pm"         |
| `timezone`         | string  | No       | Yes              | IANA timezone or "EST", "Pacific" |
| `duration_minutes` | integer | No       | Yes — default 30 | Length in minutes                 |

### Get Slots (Check Availability)

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

**Returns:** Available times, slot duration, nearest available slots. Auto-checks 7 days ahead.

### Get Contact

No parameters needed — uses contact ID automatically. Can search by `phone` or `email`.

**Returns:** Name, phone, email, timezone, tags, source, custom fields.

### Update Contact Data

| Parameter     | Type   | Required | Description           |
| ------------- | ------ | -------- | --------------------- |
| `field_name`  | string | Yes      | Which field to update |
| `field_value` | string | Yes      | New value             |

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

### Create Contact

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

### Reschedule Appointment

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

### Delete Appointment

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

### List Appointments, Get Appointment, Get Opportunity

Use baseline contact variables automatically. Get Appointment requires `appointment_id`.

### Timezone Resolver

| Parameter | Type   | Required            |
| --------- | ------ | ------------------- |
| `phone`   | string | No — auto from call |
| `city`    | string | No                  |
| `state`   | string | No                  |

***

## How to enable or disable functions

Click a function to toggle it on (blue checkmark) or off. Click **Update Connection** to save.

## How to view function variables

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

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

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