Import contacts from a CRM

Pull a connected CRM's people into Contacts as leads, newest first — Go High Level today. Narrow by a CRM tag or a search query; up to 1000 per call with a cursor for the rest. Deduplicated and suppression-checked; people with no email are not imported.

POSThttps://app.trygtm.com/api/v1/integrations/{provider}/import
Scope
write

Path parameters

providerstringrequireddefault: gohighlevel
The CRM to read from. Only gohighlevel can be read today.gohighlevel

Headers

Idempotency-Keystringoptional
A key unique to this write, up to 255 characters. A retry carrying the same key returns the first response instead of running again. Kept for 24 hours.

Body

tagstring | nulloptional
Only people carrying this tag in the CRM, e.g. 'hot' or 'webinar'.
querystring | nulloptional
A name, email or phone to match, the way the CRM's own search box would.
limitintegeroptionaldefault: 100
How many CRM contacts to read in this call, newest first. Up to 1000.
cursorstring | nulloptional
nextCursor from the previous call, to continue where it stopped. Omit to start from the newest.
list_idstring | nulloptional
Existing static list ID from list_lists. Use null when using listName.
list_namestring | nulloptional
A static list everyone joins, created if it does not exist. Name it after the source, e.g. 'HighLevel — hot leads'.

Request

curl -X POST https://app.trygtm.com/api/v1/integrations/gohighlevel/import \
  -H "Authorization: Bearer $TRYGTM_API_KEY" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "Texas",
    "limit": 25
  }'

Response

{
  "data": {
    "read": 42,
    "imported": 38,
    "already_present": 3,
    "suppressed": 0,
    "unreachable": 1,
    "duplicates": 0,
    "contact_ids": [
      "8f2a91c4-6d1e-4c0a-9a57-2f3b1c7e9d10"
    ],
    "existing_contact_ids": [
      "9d8c7b6a-5f4e-4d3c-8b2a-1f0e9d8c7b6a"
    ],
    "list": {
      "id": "5e6f7a8b-1c2d-4e3f-9a0b-1c2d3e4f5a6b",
      "name": "HighLevel — hot leads"
    },
    "next_cursor": null,
    "note": "Everyone in range was read. People with no email were not imported, since no channel can reach them."
  }
}

Was this page helpful?