Closing the loop
An offline conversion is an outcome that happened after the click and away from the browser: a lead your team qualified, a deal that closed, an order that was paid. Attribi watches your CRM for those outcomes and uploads each one to every ad platform you have connected, matched back to the original click and carrying the deal value on close. Nothing is exported, edited in a spreadsheet and re-imported once a month.
No credit card required · 5-minute setup
Every ad platform accepts offline conversions, and every one of them expects a file. Pull the won deals, find the click ID for each, match the column headers to that platform's template, upload, repeat for the next platform. It is an hour per platform per month at best, it is skipped the moment anyone is busy, and a month that gets skipped is a month of data the platform never receives.
A gclid or fbclid arrives with the visit and stops existing at the form. By the time the deal is signed, weeks later, whatever identified that click is in nobody's hands. Without it the upload has nothing to match against and the conversion is credited to nothing.
Google wants a transaction ID and a currency, Meta wants an event ID and hashed identifiers in its own normalisation, LinkedIn wants its own conversion rule, Microsoft wants an offline conversion goal. Six platforms means six formats, six sets of rules and six ways to get it silently wrong.
The ad click ID is captured when the visitor lands and stays attached to that visitor, then to the lead they become, then to the deal. Eleven click parameters are recognised across the six platforms, and hashed email and phone are kept alongside so a lead with no click ID is still identifiable.
Attribi reads your CRM on a schedule and notices when a lead reaches a stage you count as qualified or a deal is marked won. A Shopify order that gets paid does the same thing, and so does a person clicking the button on the lead inside Attribi. All three routes end at the same place.
Each stage uploads to its own conversion target on each platform, with the deal value and currency attached on close. The six uploads run independently, so a platform that rejects one does not hold up the other five, and Attribi records what happened per platform per stage.
Google Ads, Meta, LinkedIn, TikTok, Microsoft Ads and Snapchat all receive the same outcome, in each one's own format, from a single stage change in your CRM. You connect them once and never assemble a file again.
Form fill, qualified and closed won upload as separate conversions rather than collapsing into one. In Google, LinkedIn and Microsoft each stage maps to its own conversion target that you pick or that Attribi creates for you; on Meta, TikTok and Snapchat the mapping is fixed by Attribi and there is nothing to configure.
A closed-won upload carries the deal value and its currency, so the platform's own reporting can show what a campaign produced rather than how many forms it collected. Reporting in more than one currency stays split by currency; Attribi never adds two currencies together.
Every upload sends the click ID when one exists, plus email and phone hashed with SHA-256 to the receiving platform's own specification. A lead a salesperson typed in by hand, with no click ID anywhere, can still be matched. On Google, hashed identifiers require your account to have accepted Enhanced Conversions terms.
Each upload carries a deduplication key built from the lead and the stage, so a retry after a network failure resolves to the same conversion rather than a second one. Uploads that fail for a real reason are recorded per platform with the reason, not silently swallowed.
If your account has no suitable conversion configured, Attribi creates one per funnel stage from inside the Connections page, on all six platforms. If you would rather use a conversion you already report on, map that instead. On Google and Microsoft, mapping an existing conversion also sets it to count toward bidding at the moment you save the mapping, and Attribi makes no further change to your bidding setup.
Attribution accuracy
Your ad platform counts the form fills its pixel saw. Your CRM knows which of them became revenue. The Truth Gap measures the distance.
No script required
Run attribution with no script on your site. Attribi reads leads and revenue from your CRM and uploads the outcomes to your ad platforms.
Ad platform
Google Ads offline conversion tracking: send qualified leads and closed-won revenue from your CRM, so your account sees CRM-verified outcomes, not just form fills.
Ad platform
Meta Conversions API for CRM: send qualified leads and closed-won revenue from your CRM to Meta server side, with hashed email, phone, and Instant Form lead IDs.
Ad platform
Upload closed-won revenue from your CRM to LinkedIn through the Conversions API, so long B2B sales cycles show up in the campaigns that started them.
Ad platform
Upload qualified leads and closed-won revenue from your CRM to Microsoft Ads offline conversion goals, matched by MSCLKID or by hashed email and phone.
It is sending an ad platform the outcomes that happened after the click and outside the browser: a lead your sales team qualified, a deal that closed, an order that was paid. The platform cannot observe any of those itself, because no pixel is present when a salesperson updates a CRM record. Offline conversion tracking is how that outcome gets back to the campaign that produced the click.
Google Ads, Meta, LinkedIn, TikTok, Microsoft Ads and Snapchat. Connect the ones you run and each receives the same outcome in its own format. Google uploads go through the Data Manager API, Meta through the Conversions API, LinkedIn through its Conversions API, TikTok through the Events API, Microsoft as offline conversion goals and Snapchat through its Conversions API.
No. Attribi reads your CRM on a schedule and uploads each outcome as it happens, so there is no export, no column mapping and no monthly file per platform. A paid Shopify order triggers the same path, and you can also mark a deal won by hand inside Attribi if it never reaches a connected system.
The conversion still uploads. Attribi sends hashed email and phone alongside the click ID, and every one of the six platforms accepts a conversion identified by hashed contact details alone. The match is generally weaker than a click ID, and Attribi records which identifier produced the match so you can see the difference.
Attribi does not change your bidding. If you map a conversion you already use, Google and Microsoft are told to count it toward bidding once, at the moment you save that mapping, and nothing further is changed afterwards. What the upload does is put outcomes your CRM confirmed into the platform's own reporting alongside the form fills its pixel recorded. What you do with that is your decision.
Qualified and closed-won conversions upload from your CRM without any script on your site, matched by hashed contact details or by a click ID your existing forms captured into a CRM field. The initial form-fill conversion is the one that needs the script, because that event happens in the browser. The pixel-less attribution page covers what a CRM-only setup does and does not include.
Updated
Connect your ad platforms and your CRM, and read the answer from your own account.
Start FreeNo credit card · Free forever up to 1,000 visitors