51
Bespoke Closed-Loop Attribution API — GoHighLevel × Meta Conversions API (Senior Backend Developer)
UpworkGBNot specifiedexpert
API
Overview
We're a UK lead generation agency running Meta advertising campaigns for trades businesses across the UK (bathrooms, kitchens, windows). We generate leads at scale for ~40 active clients and manage every lead through GoHighLevel CRM.
We're hiring a senior backend developer to build a proprietary, bespoke API from scratch. This is not a Zapier workflow. This is not an n8n automation. This is a custom-built piece of infrastructure that will become the data engine behind our entire advertising operation.
If you've built serious server-side integrations, understand how Meta's algorithm actually learns, and can architect something clean, reliable, and extensible — read on.
The Problem
Meta's algorithm is only as good as the data you feed it.
Right now, most agencies send Meta one signal: a form submission. Meta treats that as a conversion, optimises toward people who fill in forms, and the agency wonders why half their leads never answer the phone.
We're fixing that. We want Meta to know — in real time — exactly what happened to every single lead after they submitted their details. Who booked. Who ghosted. Who got a quote. Who became a £6,000 bathroom installation. And critically, who didn't — so Meta stops sending us more of them.
The result is an algorithm that continuously self-optimises toward our highest-value customers, not just our most prolific form-fillers.
What We're Building
A hosted, bespoke API that:
Receives real-time webhook events from GoHighLevel when a lead's pipeline stage changes
Maps each stage to the correct Meta Conversions API event
Passes hashed PII, event metadata, and conversion value back to Meta server-side
Sends suppression signals for leads that don't convert — so Meta actively deprioritises that audience profile
Deduplicates against any browser-side pixel events to maintain data integrity
Runs reliably on our existing Hetzner VPS (Ubuntu, Linux)
Pipeline → CAPI Event Mapping:
GHL Pipeline StageMeta CAPI EventLead submittedLeadAppointment bookedScheduleQuote sentCustomEvent: QuoteSentJob soldPurchase + dynamic GBP value from GHL opportunityNo appointment / Lost / GhostSuppression signal — negative audience signal to Meta
Technical Requirements
Bespoke API — built from scratch, clean architecture, fully documented
GoHighLevel webhook integration — trigger on opportunity stage changes across multiple pipelines
Meta Conversions API (server-side only) — no reliance on browser pixel for conversion events
PII hashing to Meta standard — SHA-256 on email, phone, full name before transmission
Event deduplication — event_id matching between CAPI and pixel to prevent double attribution
Dynamic conversion value — pulled from GHL opportunity field at the point of Job Sold
Negative signal handling — suppression events or custom signals for non-converting leads
Error handling and logging — failed events must be caught, logged, and retried
Hosted on Hetzner VPS — must be stable, lightweight, and maintainable
Full IP transfer — we own everything built
Handover must include:
Complete source code via GitHub (private repo transfer)
Full API documentation
Walkthrough session so our team can maintain and extend it going forward
Who We're Looking For
You have built server-side Meta CAPI integrations before and can speak to them in specific technical detail. You understand what event deduplication actually means in practice. You know what a suppression signal is and how Meta uses negative audience data. You've worked with GHL's API or webhooks, or can demonstrate you can pick it up quickly.
You write clean, documented code. You communicate clearly. You deliver.
You are not someone who will propose wrapping this in a third-party automation tool and calling it a custom build.
Unlock AI intelligence, score breakdowns, and real-time alerts
Upgrade to Pro — $29.99/moClient
Spent: $9,555.35Rating: 4.8Verified