To call the Contacts API, provide your API key or OAuth token in the Authorization header (Bearer
Acuity Scheduling requires secure credentials to access the API. Ensure your app connection uses OAuth or an API key with the appropriate scopes, and keep credentials safe.
– GET /contacts/:contactId — Retrieve a single contact – GET /contacts/:contactId/tasks — List tasks for a contact – GET /contacts/:contactId/tasks/:taskId — Get a specific task – GET /contacts/:contactId/notes — List notes for a contact – GET /contacts/:contactId/notes/:id — Get a specific note – GET /contacts/:contactId/appointments — List appointments for a contact – GET /contacts/ — List all contacts – GET /contacts/business/:businessId — List contacts for a business – POST /contacts/ — Create a new contact – PUT /contacts/:contactId — Update a contact – DELETE /contacts/:contactId — Delete a contact – POST /contacts/:contactId/tasks — Create a new task for a contact – PUT /contacts/:contactId/tasks/:taskId — Update a task – PUT /contacts/:contactId/tasks/:taskId/completed — Mark a task as completed – DELETE /contacts/:contactId/tasks/:taskId — Delete a task – POST /contacts/:contactId/tags — Add tags to a contact
Trigger: a contact is updated in the CRM; Action: pull the latest data from GET /contacts/:contactId to sync profiles, notes, and tasks.
Actions: upsert the contact in Acuity Scheduling; propagate changes to notes and tasks via corresponding endpoints.
/contacts/:contactId
id, name, email, phone, tags, customFields
Trigger: new contacts added in scheduling or CRM; Action: fetch /contacts/ to pull multiple records.
Actions: create or update contacts in the CRM; batch update where needed.
/contacts/
contactId, email, status, lastUpdated
Trigger: a task is created or updated; Action: fetch /contacts/:contactId/tasks to reflect tasks in both systems.
Actions: create/update tasks and mark as completed; update related notes if needed.
/contacts/:contactId/tasks/:taskId
taskId, contactId, title, status, dueDate
Automated data sync reduces manual data entry and errors.
A unified view of contacts, appointments, and tasks accelerates decision-making and personalized outreach.
Time-saving automations let your team focus on engagement and growth.
Key elements include endpoints, authentication, triggers, actions, and field mappings that connect the GHL Contacts API with Acuity Scheduling.
A person stored in the Contacts API with identifiers, profile data, and related tasks, notes, and appointments.
A specific URL path that performs a defined operation on the API.
An event in one system that starts a workflow in the other via the API.
A callback URL or listener that reacts to changes in data.
Automatically create or upsert a contact in the CRM when a new appointment is booked, using GET /contacts and POST /contacts/.
Create follow-up tasks automatically after appointments using POST /contacts/:contactId/tasks and track completion across systems.
Attach notes to contacts after interactions and sync with notes endpoint to keep CRM records up-to-date.
Obtain an API key and set the scope to contacts.readonly (and write if you need updates).
Identify endpoints you will use and align contact fields between the systems (e.g., name, email, phone).
Run end-to-end tests and set up monitoring for outages or sync errors.
Authentication for the Contacts API can be done using an API key or OAuth token. Include your credentials in the Authorization header as Bearer
Key endpoints for syncing contacts include GET /contacts/:contactId to retrieve a single contact and GET /contacts/ to fetch multiple records. Additional endpoints like GET /contacts/:contactId/tasks and GET /contacts/:contactId/notes help keep associated tasks and notes in sync. Start with read operations to validate your mappings before enabling create or update operations.
Yes. You can create or update contacts from Acuity Scheduling by using POST /contacts/ and PUT /contacts/:contactId with the correct payload. Ensure your connected app has write permissions and that you map fields consistently between systems (name, email, phone, etc.). Test updates in a staging environment to verify data integrity.
Rate limits vary by plan and endpoint; plan for retries with exponential backoff and respect 429 responses. Implement idempotent requests where possible and log retry events for debugging. Consider batching requests where supported to minimize calls and reduce risk of hitting limits.
Field mapping involves aligning CRM fields (name, email, phone, tags) with Acuity Scheduling fields. Maintain consistent data types and handle optional fields gracefully. Use a mapping document and test with representative sample records to ensure data integrity across both systems.
Webhooks (callbacks) allow real-time updates when data changes. If available, configure webhooks to notify your app of contact updates, new tasks, or notes, and then pull the latest data via the endpoints. Ensure endpoint security and verify payload signatures where provided.
Yes. No-code options exist through native apps or App Connectors that wrap these endpoints. You can also use visual automation builders to trigger API calls, map fields, and set up simple workflows without writing code. For complex logic, you can extend with custom scripts or a developer-assisted integration.
Due to high volume, we will be upgrading our server soon!
Complete Operations Catalog - 126 Actions & Triggers