Use your GHL developer credentials to obtain a secure access token. Include the token in the Authorization header and apply the scope locations/customValues.readonly for reads and locations/customValues.write for updates.
Ensure ActiveDEMAND API access is enabled for your app. Use OAuth 2.0 or API keys as supported, store credentials securely, and rotate tokens regularly.
GET /locations/:locationId/customValues; GET /locations/:locationId/customValues/:id; POST /locations/:locationId/customValues; PUT /locations/:locationId/customValues/:id; DELETE /locations/:locationId/customValues; GET /locations/:locationId/customFields; GET /locations/:locationId/customFields/:id; GET /custom-fields/:id; GET /custom-field/object-key/:key; POST /locations/:locationId/customFields; PUT /locations/:locationId/customFields/:id; DELETE /locations/:locationId/customFields/:id; GET /locations/:locationId/tags
Trigger: when a location is selected in ActiveDEMAND, fetch current custom values using GET /locations/:locationId/customValues.
Actions: create or update values with POST or PUT to /locations/:locationId/customValues, read with GET, and remove with DELETE.
Example path: GET /locations/12345/customValues
Key fields to map: locationId, id, value, fieldKey
Trigger: fetch custom field definitions with GET /locations/:locationId/customFields and compare to ActiveDEMAND field mappings.
Actions: manage fields with POST/PUT/DELETE on /locations/:locationId/customFields; read with GET.
Example path: PUT /locations/12345/customFields/67
Key fields: locationId, id, key, name, type
Trigger: access global field definitions via GET /custom-fields/:id or GET /custom-field/object-key/:key.
Actions: fetch definitions to map across apps; use GET to retrieve data.
Example path: GET /custom-fields/12
Key fields: id, key, label, type
Automate data sharing between GHL and ActiveDEMAND without custom code.
Keep critical fields in sync to reduce manual data entry and errors.
Improve workflows with field-based triggers and reporting.
This glossary defines core terms and processes used in the integration between the Custom Fields API and ActiveDEMAND.
Application Programming Interface that enables different software to communicate and exchange data.
A specific URL path and HTTP method used to access a resource in an API.
The process of verifying identity and granting access to API resources, typically via tokens or keys.
Any data object exposed by an API, such as a location’s custom values or fields.
Use custom values to trigger ActiveDEMAND workflows automatically.
Pull value data to create dashboards and insights in ActiveDEMAND.
Segment audiences and tailor campaigns using field definitions.
Register your app in GHL, generate an access token, and securely store credentials.
Select the endpoints you will use, map fields, and define scopes.
Run tests with a sample location, verify data sync, and deploy to production.
Authentication for the Custom Fields API is handled through secure tokens issued by your GHL developer account. Include the access token in the Authorization header for every request. Tokens should be refreshed regularly and stored securely. For read-only access, apply the scope locations/customValues.readonly; for write access, apply locations/customValues.write. Always follow your organization’s security policies when storing credentials.
Read-only endpoints include GET /locations/:locationId/customValues and GET /locations/:locationId/customFields. Writeable endpoints include POST, PUT, and DELETE variants for customValues and customFields. Ensure your app has the correct scopes granted to perform the needed operations.
Map fields by aligning GHL field keys with ActiveDEMAND fields. Use the endpoint responses to translate field keys, names, and types between systems. Maintain a mapping table and test with sample records to ensure data integrity.
Rate limits depend on your GHL plan and API usage. Monitor headers returned by API responses for guidance and implement exponential backoff retries for transient errors. Cache infrequent data when appropriate to reduce calls.
Yes, you can delete fields or values via the API using the DELETE methods on the relevant endpoints. Exercise caution and ensure you have proper backups and permissions before removing records.
Handle errors with clear logging and retry strategies. Implement robust error handling for HTTP status codes, token expiry, and validation errors. Use idempotent requests where possible to avoid duplicate data.
Sample requests and code examples are available in the API documentation and developers portal. Start with simple GET calls to verify connectivity, then experiment with POST/PUT for updates in a staging environment.
Due to high volume, we will be upgrading our server soon!
Complete Operations Catalog - 126 Actions & Triggers