The Contacts API uses scoped access. In this integration the scope is contacts.readonly which allows viewing contacts. Upgrade to read write if you need to create or modify data.
In FreeScout configure your API connection by pasting the API key client ID and secret then grant the required scopes to enable syncing.
GET /contacts/:contactId; GET /contacts/:contactId/tasks; GET /contacts/:contactId/tasks/:taskId; GET /contacts/:contactId/notes; GET /contacts/:contactId/notes/:id; GET /contacts/:contactId/appointments; GET /contacts/; GET /contacts/business/:businessId; contacts.write; POST /contacts/; PUT /contacts/:contactId; DELETE /contacts/:contactId; POST /contacts/:contactId/tasks; PUT /contacts/:contactId/tasks/:taskId; PUT /contacts/:contactId/tasks/:taskId/completed; DELETE /contacts/:contactId/tasks/:taskId; POST /contacts/:contactId/tags
Trigger when a contact is added or updated in FreeScout to fetch the latest data from the Contacts API.
Actions include creating or updating a contact in the Contacts API.
PUT /contacts/:contactId
contactId, name, email, phone
Trigger when a task is created in FreeScout to push to the Contacts API.
Actions: create task in the Contacts API.
POST /contacts/:contactId/tasks
taskId, title, status, dueDate
Trigger when a note is added in FreeScout.
Actions: create note in the Contacts API.
POST /contacts/:contactId/notes
noteId, content, author
Automate routine syncing without custom development.
Maintain a single source of truth across FreeScout and the Contacts API.
Speed up onboarding and case resolution with instant data availability.
This glossary explains core terms used in this integration including API endpoint and payload and OAuth and webhooks.
An application programming interface that allows FreeScout to communicate with the Contacts API.
A URL pattern that lets a client perform a specific operation on a resource.
An open standard for secure authorization between apps.
The data sent or received in an API request or response.
Automatically pull enriched data into FreeScout when new contacts are added.
Route tasks based on contact attributes to the right team.
Attach contextual notes to contacts to speed up support.
Register the application in GHL and generate an API key with the appropriate scope.
Map FreeScout fields to Contacts API fields like name email and notes.
Run tests verify data sync and activate automations.
No coding is required for basic connection. The integration uses standard REST endpoints and a simple mapping of fields between FreeScout and the Contacts API. You configure the API key and scopes in FreeScout and define how data flows between the apps. Once set up you can start syncing core contact data without writing code. The no code approach is designed for rapid deployment and easy maintenance.
For a basic sync you will use endpoints that read contact information and related assets like tasks notes and appointments. Key endpoints include GET /contacts/:contactId and GET /contacts/:contactId/tasks, as well as GET /contacts/:contactId/notes. You can extend to POST and PUT endpoints as you add write permissions. Start with read only to validate the flow before enabling write operations.
Permissions are controlled by the API key scope. This guide uses contacts.readonly by default to view contact data. If you plan to create or update data, request read/write access and ensure your app manages keys securely. Always follow least privilege principles and rotate credentials regularly.
If a sync fails check API key validity, scope, and rate limits. Review error messages returned by the Contacts API, verify endpoint paths match the current API version, and confirm field mappings. Enable verbose logging in FreeScout to capture request and response payloads for diagnosis. Re-run the flow after applying fixes.
Yes. Field mappings can be customized in FreeScout to align with your data model. Map core fields like name email and phone and extend to notes tasks and tags as needed. If a field is missing on one side you can use a placeholder or create a translation rule to maintain consistency.
API rate limits and quotas may apply. Plan for peak usage by staggering syncs and implementing exponential backoff on retries. If you anticipate high load contact your provider for guidance and consider batch operations where supported.
API keys and credentials are managed in your GHL developer console and FreeScout settings. Store keys securely using a password manager, restrict access, and never expose them in client-side code. Rotate keys periodically and revoke unused credentials.
Due to high volume, we will be upgrading our server soon!
Complete Operations Catalog - 126 Actions & Triggers