IntegrationsUpdated 2026-07-17

Connecting Acquired Data to GoHighLevel

Push finished skip-trace jobs straight into a GoHighLevel workflow with an inbound webhook.

The goal: every time a skip-trace job finishes, the results flow into GoHighLevel automatically — no CSV downloads, no manual imports. The connection is a single webhook: GHL gives you an inbound webhook URL, you save it in your dashboard, and every completed job POSTs its summary (including a signed download link) into your GHL workflow. Because the payload is deliberately flat — every field top-level, no nesting — GHL can map the fields directly with zero transformation.

Step 1: Create an Inbound Webhook trigger in GHL

  1. In GoHighLevel, go to Automation → Workflows and create a new workflow.
  2. Add the Inbound Webhook trigger as the workflow's starting step.
  3. GHL generates a unique webhook URL for this workflow — copy it.

Step 2: Save the URL in your dashboard

  1. Open Dashboard → Webhooks in Acquired Data.
  2. Paste the GHL URL into the Webhook URL field and click Save. GHL webhook URLs are already https, which is required.
  3. Make sure the toggle is switched on.

Step 3: Send a test payload

  1. On the same page, click Send test payload.
  2. Back in GHL, the inbound webhook trigger should now show a received sample request. GHL uses this sample to learn the payload's shape, which is what makes the next step possible.

Step 4: Map the fields in your workflow

Because the payload is flat, every field appears as a simple top-level value in GHL's mapping picker. The most useful ones:

  • eventjob.completed or job.failed; branch your workflow on this so failures notify you instead of running the success path.
  • filename, job_id — identify which list finished.
  • total_rows, matched_rows, credits_charged — job stats for notifications or custom fields.
  • download_url — a signed link to the results CSV, valid for 24 hours.

Map these into contact fields or custom fields, or drop them into notification steps (SMS, email, Slack) as merge values. See the dashboard webhooks guide for the complete field list.

Step 5: Use the results in follow-up steps

A common pattern is a workflow that emails or texts your team the download_url the moment a job completes: "List filename finished — matched_rows of total_rows matched. Download: download_url". Remember the link expires after 24 hours, so treat it as a prompt to pull the file promptly. If you want individual contact rows in GHL rather than a CSV link, fetch them from the job's results_url with an API key — see working with bulk jobs via the API.

Notes

  • https is required — the platform will not deliver to plain-http URLs.
  • The default webhook fires for dashboard and API jobs alike. You do not need to submit jobs through the API for this integration to work — uploads made in the dashboard trigger it too.
  • API-submitted jobs can pass their own callback_url, which overrides the default for that one job — useful for routing different lists to different GHL workflows. Details in the API webhook reference.

Troubleshooting

  • Nothing arrives in GHL: confirm the toggle on Dashboard → Webhooks is on, and that the saved URL exactly matches the one shown on the GHL trigger.
  • Test the pipe first: click Send test payload and check whether GHL logged the request. If the test arrives but real jobs do not, check the workflow is published and the trigger has no filters excluding the payload.
  • Missed a delivery? Deliveries retry 3 times and then stop, but nothing is lost — for API jobs you can re-send the completion callback with the API's retry-webhook endpoint. See the API webhook reference.
  • Still stuck? Open a support ticket with the job ID and the time of the expected delivery.