Skip to main content

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.

Step 1: Connect Sympana to Retell

Before setting up functions, make sure Sympana Connector is connected to your Retell AI account. Follow the Connect Retell guide if you haven’t done this yet.

Step 2: Enable functions on your connection

  1. Open the Sympana dashboard inside GoHighLevel
  2. Go to Connections and click on your Retell connection (or create a new one)
  3. Scroll down to the Functions section
  4. Click each function you want to enable — a blue checkmark appears when it’s on
  5. Click Save or Update Connection
All 11 functions are available. You don’t need to enable all of them — only enable the ones your agent actually needs for its use case.
If you enabled any appointment functions (Book Appointment, Get Slots, List Appointments, Reschedule, Delete), you must link a GHL calendar:
  1. In the same connection settings, find the Calendar section
  2. Select the GHL calendar you want appointments booked on
  3. Save the connection
If you skip this step, appointment functions will fail with a “No calendar configured” error.

All 11 functions — what they do and how to reference them

Every function below shows the exact name your Retell agent sees, what the function does, what data the agent needs to collect from the caller, and the exact prompt instructions to copy into your agent.

Book Appointment

Retell function name: create_appointment_tool What it does: Creates a new appointment on your linked GHL calendar. Finds or creates the contact, checks the slot, and books it. What the agent needs from the caller:
  • What the appointment is for (the title)
  • Preferred date and time
What’s auto-filled (agent does NOT need to ask):
  • Contact name, phone, email (from baseline variables)
  • Calendar ID (from your connection config)
  • Timezone (from the contact’s GHL record or defaults to Eastern)
Copy this into your Retell agent prompt:
APPOINTMENT BOOKING:
When the customer wants to schedule an appointment:
1. Ask what day and time works best for them
2. ALWAYS use the get_slots_tool FIRST to check availability — never guess
3. If the slot is available, use create_appointment_tool to book it
4. Tell the customer: "You're all set! I've booked your [title] for [date] at [time]."
5. If the slot is taken, read back 2-3 available times and ask which works
Accepted date formats: 2026-04-15, April 15, 2026, 4/15/2026 Accepted time formats: 2:30 PM, 14:30, 2pm, 2:30pm Accepted timezone formats: America/New_York, EST, Eastern, Pacific

Get Slots (Check Availability)

Retell function name: get_slots_tool What it does: Returns available appointment times from your GHL calendar. Checks up to 7 days ahead automatically if the requested date has no slots. What the agent needs from the caller:
  • What date they want to check (optional — defaults to tomorrow)
Copy this into your Retell agent prompt:
CHECKING AVAILABILITY:
ALWAYS use get_slots_tool BEFORE offering or confirming any appointment time.
Never assume a time is available. When the customer asks "do you have anything
on Thursday?", use get_slots_tool with that date. Read back the nearest 3
available times and ask which one works best.
Returns to the agent: A list of available time slots formatted for voice (e.g., “Wednesday Apr 16 at 2:00 PM”), the slot duration, and the next available date if the requested date is fully booked.

Get Appointment

Retell function name: get_appointment_tool What it does: Retrieves details of a specific appointment by ID. What the agent needs: The appointment ID (usually from a List Appointments result). Copy this into your Retell agent prompt:
If the customer asks about a specific appointment, use get_appointment_tool
to retrieve the details. If you don't have the appointment ID, use
list_appointment_tool first to find it.

List Appointments

Retell function name: list_appointment_tool What it does: Shows all upcoming appointments for the contact on the call. Uses the contact’s phone number and name automatically. What the agent needs from the caller: Nothing — it uses baseline variables automatically. Copy this into your Retell agent prompt:
If the customer asks about their appointments or says "when is my appointment",
use list_appointment_tool to find all their upcoming bookings. Read back the
date, time, and title of each one.

Reschedule Appointment

Retell function name: reschedule_appointment_tool What it does: Moves an existing appointment to a new date and time. What the agent needs from the caller:
  • Which appointment to reschedule (use List Appointments to find the ID)
  • New preferred date and time
Copy this into your Retell agent prompt:
RESCHEDULING:
If the customer wants to reschedule:
1. Use list_appointment_tool to find the appointment
2. Ask what new date and time they prefer
3. Use get_slots_tool to check the new time is available
4. Use reschedule_appointment_tool with the appointment ID and new time
5. Confirm: "I've moved your appointment to [new date] at [new time]."

Delete Appointment

Retell function name: delete_appointment_tool What it does: Cancels an existing appointment. What the agent needs from the caller:
  • Confirmation they want to cancel
  • Which appointment (use List Appointments to find the ID)
Copy this into your Retell agent prompt:
CANCELING:
If the customer wants to cancel an appointment:
1. Use list_appointment_tool to find the appointment
2. Confirm with the customer: "Are you sure you'd like to cancel your
   [title] on [date]?"
3. Only after they confirm, use delete_appointment_tool
4. Say: "Your appointment has been canceled."

Get Contact

Retell function name: get_contact_tool What it does: Retrieves the full contact profile from GHL — name, email, phone, tags, timezone, custom fields, and more. What the agent needs: Nothing — uses the contact ID from baseline variables. Can also search by phone or email. Copy this into your Retell agent prompt:
If you need to look up the customer's information (email, tags, account details),
use get_contact_tool. The contact is identified automatically from the call.

Create Contact

Retell function name: create_contact_tool What it does: Creates a new contact in GHL. Useful for inbound calls where the caller is not yet in your CRM. What the agent needs from the caller:
  • First name (required)
  • Last name (required)
  • Phone number (required)
  • Email (optional)
Copy this into your Retell agent prompt:
If the caller is not in the system (for example, a new inquiry), collect their
first name, last name, phone number, and email. Then use create_contact_tool
to add them to the system.

Update Contact Data

Retell function name: update_contact_data_tool What it does: Updates any field on the contact record in GHL — standard fields (email, name, phone) or custom fields. What the agent needs from the caller:
  • The information to update
Standard GHL fields you can update: email, firstName, lastName, phone, companyName, address1, city, state, postalCode, country, website, timezone Custom fields: Use the exact field key from GHL Settings → Custom Fields. Copy this into your Retell agent prompt:
If the customer provides new or updated information (email address, phone number,
mailing address, name change), use update_contact_data_tool to save it immediately.
After updating, confirm: "I've updated your [field] to [new value]."

Get Opportunity

Retell function name: get_opportunity_tool What it does: Retrieves sales pipeline and deal data for the contact — deal stage, value, pipeline name. What the agent needs: Nothing — uses baseline variables automatically. Copy this into your Retell agent prompt:
If you need to reference the customer's account status, deal stage, or pipeline
information, use get_opportunity_tool.

Timezone Resolver

Retell function name: timezone_resolver_tool What it does: Determines the caller’s timezone from their phone number area code, or from city/state information they provide. What the agent needs from the caller: Nothing (uses phone automatically), or city/state if asked. Copy this into your Retell agent prompt:
If you need to know the customer's timezone (for scheduling in the right time zone),
use timezone_resolver_tool. It automatically checks their phone number's area code.
If that doesn't work, ask for their city and state.
Common results: America/New_York (Eastern), America/Chicago (Central), America/Denver (Mountain), America/Los_Angeles (Pacific)

Step 4: Write your prompt

Your Retell agent prompt must tell the agent when and how to use each function. Copy the relevant prompt sections from above into your Retell agent prompt.
The #1 mistake: Writing “help the customer book an appointment” without mentioning the function name. This makes the agent TALK ABOUT booking instead of ACTUALLY USING the function to book. Always say “use create_appointment_tool” or “use get_slots_tool” explicitly.

Complete prompt example

Here is a full Retell prompt that combines appointment booking and contact management:
You are Sarah, a friendly appointment coordinator at {{company_name}}.

## Your personality
- Warm, professional, and efficient
- Keep responses short and natural — this is a phone call, not an essay
- Always confirm important details back to the customer

## Available tools
You have access to the following functions. Use them when the situation calls for it:

### Scheduling
- ALWAYS use get_slots_tool BEFORE offering any appointment time
- Use create_appointment_tool to book after confirming availability
- Use list_appointment_tool when a customer asks about existing appointments
- Use reschedule_appointment_tool to move an appointment
- Use delete_appointment_tool to cancel (always confirm with customer first)

### Contact Management
- Use get_contact_tool if you need to look up customer details
- Use update_contact_data_tool if the customer provides new information
- Use create_contact_tool if the caller is new and not in the system

## Conversation flow
1. Greet the customer: "Hi {{contact_first_name}}, this is Sarah from {{company_name}}."
2. Ask how you can help
3. If they want to book: ask for preferred day and time, check availability, then book
4. If they want to reschedule: find their appointment, ask for new time, check, then move it
5. If they want to cancel: find the appointment, confirm, then cancel
6. Always end with: "Is there anything else I can help you with?"

## Rules
- NEVER say a time is available without checking with get_slots_tool first
- NEVER cancel without explicit confirmation from the customer
- If a function returns an error, apologize and try again or suggest alternatives
- Keep the call under 3 minutes when possible

Step 5: Test your functions

  1. Create a test contact in GHL with your own phone number
  2. Trigger a test call from a GHL workflow
  3. During the call, test each function:
    • Ask “What times do you have available tomorrow?” → get_slots_tool should fire
    • Say “Book me for 2 PM” → create_appointment_tool should fire
    • Say “What appointments do I have?” → list_appointment_tool should fire
  4. After the call, verify in GHL that the appointment was created
Test one function at a time. Start with get_contact_tool (simplest) and work up to create_appointment_tool (most complex).
If functions don’t fire, check:
  1. Is the function enabled on your connection? (blue checkmark in Sympana)
  2. Does your prompt mention the function by name?
  3. Is the webhook URL correct on your Retell agent?
  4. Is the calendar linked (for appointment functions)?
Still stuck? Join the Sympana Discord server for help.