Your CRM holds the truth about which ad clicks actually became customers. OpenAI Ads has no way to see that data unless you send it. The standard workaround is a manual CSV export — pull a list of closed deals, format the columns, upload the file, and repeat next week. ConversionLoop replaces that entire workflow with a live webhook connection. The moment a deal closes in your CRM, ConversionLoop matches it to the original ad click and uploads the conversion to OpenAI Ads automatically.


Ad platforms want conversion data. CRMs have conversion data. But there is no direct line between them. Most teams either skip the connection entirely — letting campaigns optimize on top-of-funnel clicks — or they run a weekly manual export that introduces a 5-7 day attribution lag. In a high-velocity sales environment, that lag means a week of campaigns optimizing on last week's data. For longer sales cycles, manually exporting CSVs is simply not sustainable. The result is ad spend that cannot learn from the outcomes it generates.
Why the manual process breaks — and what changes when you automate it
ConversionLoop captures the click at the top of the funnel and waits for your CRM to tell it when a conversion happened. When your CRM fires a lifecycle event, ConversionLoop matches it to the original click and uploads it to OpenAI Ads.
A prospect clicks your OpenAI ad. cl.js captures their oppref click ID and stores it against their email address.
The prospect fills out your lead form. Their email is now linked to the original click.
Your CRM receives the lead and your sales team works the deal.
When the deal progresses — lead qualified, demo booked, or contract signed — your CRM fires a workflow trigger.
ConversionLoop receives the trigger, looks up the stored click ID for that contact, and formats the conversion payload.
The conversion is uploaded to OpenAI Ads CAPI. The campaign attributes the closed revenue to the correct ad.
14-day free trial. No credit card. Setup takes 10 minutes.
Start free trialFollow these steps once. Everything after is automatic.
Lead CreatedContact enters CRM. Good top-of-funnel signal for lead gen campaigns with a clear ICP.
Lead Qualified (SQL)Sales team marks a lead as sales-qualified. Higher-intent signal than raw form submissions.
Demo or Meeting BookedCalendar booking from CRM sequence. Strong intent signal for B2B and high-ticket offers.
Proposal SentFor longer sales cycles — signals the lead is deep in the pipeline.
Deal Closed WonPrimary revenue conversion. Pass the deal value for ROAS-based bidding.
HubSpot, Salesforce, GoHighLevel, Pipedrive, and any CRM that can send a webhook on workflow trigger. If your CRM supports Zapier or Make, those can also route events to ConversionLoop.
Email is the primary match key. ConversionLoop stores the oppref click ID against the email captured in your lead form. At conversion time, the CRM webhook includes the contact email, which ConversionLoop uses to retrieve the original click.
ConversionLoop only uploads conversions it can attribute to an OpenAI Ads click. Organic leads, referrals, and direct traffic are not uploaded. Only contacts with a stored oppref will generate a CAPI event.
Yes. You can create separate ConversionLoop integrations for each CRM stage and map each one to a different OpenAI Ads conversion action. This gives you a full-funnel view inside your OpenAI Ads campaigns.


Stop optimizing on guesswork. Every invoice, treatment, and booking — tracked and attributed automatically.
Start free — 14 days on usNo credit card required · 10-minute setup · Cancel anytime