Bring Your Own CRM
Download MarkdownConnect CloseMagnet to the CRM you already use. This guide explains the available connection paths, what information moves, which credentials to create and how to check your setup. The API Reference supplies the exact fields, resp
On This Page
Connect CloseMagnet to the CRM you already use. This guide explains the available connection paths, what information moves, which credentials to create and how to check your setup. The API Reference supplies the exact fields, response examples, limits and supported operations for your integration.
Reading this public guide requires no account. Changing a connection, creating a credential or running an integration requires your authorized CloseMagnet login. Code examples describe supported source behavior; they are not proof that an integration has been tested on your account.
Choose Your Connection Path
| Path | What You Configure | Important Boundary |
|---|---|---|
| GoHighLevel / LeadAttractor CRM | Install the marketplace connector for the correct CRM location, then configure your intake workflows | A connected badge does not replace the individual workflow and sender checks |
| Another CRM | Send supported events to the documented HTTPS endpoints using that CRM's webhook/workflow facilities | There is no universal automatic two-way sync for every CRM |
| AI assistant or custom application | Create a scoped credential and use the customer API or hosted MCP connection | Scopes limit what the integration may read or change |
| Client-owned buyer email | Set up Mailgun or SendGrid separately | Email-provider setup is not the same as a CRM connector |
Read Set Up Buyer Email when your goal is sending and receiving buyer email. CRM data intake, a customer API credential, and an SMTP credential have different jobs.
Prepare These Details
- Your CloseMagnet account owner login and access to Settings -> API.
- The CRM account/location you intend to connect, plus permission to configure its workflows.
- The campaign or test records you will use, without using a real buyer as a test contact.
- The events you need: leads, buyers, properties, KPI events, calls or document status.
- For an outbound callback, a public HTTPS destination that your team controls and its required authentication method.
Keep API keys, provider passwords and signing credentials in protected settings or your secret manager. Do not put them in a worksheet, shared screenshot, browser URL, customer note or support chat.
Create the Right Credential
Open Settings -> API, which requires a login. The account owner can create named scoped credentials, choose an expiration and select only the permissions the integration needs. A scoped credential is displayed once; save it securely before closing the dialog.
Create a different credential for each integration. This makes it possible to revoke or replace one connection without disrupting every other system.
| Integration | Permission to Review |
|---|---|
| Lead intake for a campaign | leads:write |
| Read leads in one campaign | leads:read |
| Read account-wide leads | leads:read_all |
| Legacy buyer intake | Account API token; check that exact operation's authentication |
| Property intake | properties:write |
| KPI events and labelled call outcomes | kpi:write |
| Legacy call/transcript intake for coaching | Account API token; check that exact operation's authentication |
| Contract-signed notification | documents:write |
| Report message outcomes | blasts:write |
| An AI assistant starting read-only | Only the named read scopes needed for its first task |
The automatic account API token and a scoped credential are not interchangeable for every operation. Use the authentication and permission listed for that exact operation in the API Reference. A credential that can receive an intake event does not automatically have permission to read the whole account.
Some legacy buyer and call-ingest paths currently use the account token rather than a newly minted scoped key. A scope name existing in the credential vocabulary does not prove that every older endpoint accepts that credential type. The operation's own authentication section is authoritative.
Use an HTTP header, not a query parameter:
http
Authorization: Bearer YOUR_SCOPED_CREDENTIAL
Content-Type: application/jsonYOUR_SCOPED_CREDENTIAL is a placeholder, not a usable token. Replace it in your protected integration configuration only. The header name is Authorization; the value is Bearer, one space, then the actual credential.
Install the GoHighLevel Connector
- Sign in to the correct CloseMagnet client as its owner and open Settings -> API.
- Confirm the CRM location/account ID matches the GoHighLevel sub-account you intend to use. Do not install into a different location just because it is visible in your provider account.
- Use the CRM connection card to connect and complete the marketplace authorization.
- Review the access requested and finish the install for that exact location.
- Return to CloseMagnet and inspect the connection status. If an additional permission or reinstallation is required, follow the named instruction rather than assuming an older install gained new access automatically.
- Keep call recording, transcription and the intended sender user configured in your CRM where those features require them.
The connector supports its own conversation, call and CRM behavior. It does not mean that every contact, property, pipeline change or document event is automatically synchronized. Your intake workflows still determine which records are sent into CloseMagnet.
A legacy Private Integration Token is not a substitute for every marketplace permission. If you are unsure which connection is being used, have support inspect the named location and connection status without sharing the token in chat.
Build Your Intake Workflows
Choose the operation by the business event, then use its exact schema from the API Reference. Start with one team-controlled test record and record the response before enabling a workflow for an audience.
| Business Event | Customer Endpoint / Integration |
|---|---|
| A lead should enter a voice campaign | Campaign lead intake under /api/v2/voice-campaigns/{campaignId}/leads |
| Your CRM adds or updates a buyer | Generic /api/v2/buyers, or the documented GoHighLevel buyer adapter |
| A seller/property is added or updated | Generic /api/v2/properties, or the documented GoHighLevel property adapter |
| A sales activity or disposition is recorded | /api/connector/kpi, with the documented event-type header |
| A call transcript/recording is available | /api/v2/coaching/calls |
| A document becomes signed | /api/connector/doc-signed |
| Your external delivery system reports a message outcome | /api/v2/messages/events |
Important distinctions:
- Generic buyer intake uses the documented
ghl_contact_idfield as its deduplication anchor. A non-GoHighLevel CRM supplies its own stable contact identifier in that field. The GoHighLevel adapter can map its native payload differently; do not assume the generic endpoint accepts every native alias. - Property intake is not the same operation as agent/property upsert. Intake and record-changing APIs can have different required fields, credentials, side effects and retry rules.
- A KPI event is not automatically the same as a call record. Send the event that matches the actual activity, with the required original event time and deduplication identity.
- A CRM's workflow feature may be limited by its plan. Check that it can set the required method, headers and JSON body before choosing that path.
- Do not fabricate delivery, click or reply events to make a dashboard move. Report only the actual event for the corresponding message and account.
Understand What Comes Back Out
Some configured workflows send call results or request pre-call context from a destination your team supplies. An external message-delivery webhook is another, separate transport: your system receives a message request and performs delivery itself. It is not a mailbox and does not automatically bring replies back.
When you use an external message-delivery integration, preserve the message identity supplied by CloseMagnet. Report supported outcomes to the documented message-events endpoint using that exact identity and original event time. Reusing your CRM's unrelated message ID or a new timestamp on every retry can break correlation or create distinct events.
Review your configured transport before testing. A saved webhook URL does not mean it is the active route. Existing GoHighLevel messages and conversations keep their own route; a custom Mailgun or SendGrid connection does not silently copy messages into GoHighLevel.
The reference documents the actual outgoing payloads, authentication, destination restrictions and retry behavior. Do not assume a callback is signed, retried forever or guaranteed to be delivered exactly once. Your receiving system must verify the configured authentication and safely handle repeats.
Connect an AI Agent Separately
An agent does not need your CRM's password, a provider API key or a client-secret pair. It needs a scoped CloseMagnet credential and a host that supports the required remote MCP authentication. Start with read scopes and follow Connect an AI Agent.
Read access, record-changing access, preparing a draft and actually sending a customer message are different permissions and actions. An agent's statement that it completed a task is not a delivery receipt or a saved-record check. Inspect the actual returned record and the relevant product screen.
Verify Before Enabling Real Work
- Confirm the correct CloseMagnet account and CRM location are connected.
- Run one authorized test event against one team-controlled record using the exact operation schema.
- Check the returned status and body. A successful HTTP status alone does not mean every optional downstream action completed.
- Read the correct CloseMagnet screen to confirm the intended record and fields, not a similarly named record.
- Check duplicate handling using the documented operation-specific identity. Do not blindly replay a write whose result is uncertain.
- If using a callback, verify your receiver authenticated the request and correlated it with the original event.
- Test real sending, threaded replies and receipts through the separate approved email setup flow before inviting buyers to use it.
- Record anything that remains unverified. A connector badge or a working read call does not verify sending or every webhook.
Fix Common Problems
| Symptom | Check | Next Step |
|---|---|---|
| Authentication is refused | Exact header, token type, expiry, revocation and required scope | Have the owner replace or adjust the named credential; never post its value in support chat |
| A request is rejected | Exact operation schema, required field names, UUIDs and field bounds | Correct the named input rather than retrying unchanged |
| A workflow runs but the record does not appear | Correct client, campaign/location, event identity and response body | Inspect the exact event and its expected destination |
| A record appears twice | Whether retries kept the original dedupe/idempotency identity | Fix the sender's identity mapping before expanding the workflow |
| Too many requests | Operation-specific rate limits and retry guidance | Back off and spread the work out; use bounded list pages |
| Sending works but replies or Delivered do not appear | Separate receiving and delivery-tracking setup | Use the email provider guide; do not treat queued/sent as delivered |
| A CRM feature is missing | Whether it is actually supported by this connection path | Do not assume universal pipeline, stage or conversation sync |
Keep Your Integration Maintainable
Give each integration an owner, a named credential and an expiration/replacement plan. Store its mapping alongside your own workflow configuration, not a live key in this public guide. Revisit the API Reference when a source operation or permission changes. Recheck a replaced provider connection or sender rather than transferring an old verified badge by assumption.
Continue with API Reference, Connect an AI Agent, or Set Up Buyer Email.
Related Articles
- Do I have to build my own CRM?You do not have to build a CRM yourself. If your agreement includes a LeadAttractor CRM installation, the team prepares it with you during onboarding. Confirm the included pipelines, workflows, templates, support and training agai
- How do I connect CloseMagnet to my CRM?Usually the LeadAttractor team connects it for you during onboarding. If you need to connect or reinstall it, the account owner goes to Settings -> API (https://app.closemagnet.com/settings/api). An old Settings -> Integration boo
- Which CRM settings must stay on for CloseMagnet?Three settings in your LeadAttractor CRM are load-bearing:
- Why does my call show in KPIs but not in coaching?This is expected behavior, not a bug. Answered human calls count in your KPIs almost immediately, but a call only enters Coaching when it is a real, transcribed, long-enough human conversation.