CRM
Freshsales is the one CRM Attribi connects to that cannot create its own attribution fields, because Freshworks exposes no API for it. You create sixteen custom fields on the Contact object once, in the admin screens, and Attribi checks them and tells you exactly which are missing rather than half-working. After that it behaves like the others: won deals become offline conversions on every ad platform you have connected, carrying the deal amount in the currency Freshsales recorded it in.
No credit card required · 5-minute setup
Every deal is checked against its own stage before any revenue is counted, so the view it happens to sit in never decides the outcome. Tell us which stages mean won and those are definitive. Otherwise Attribi follows the won and lost designation Freshsales keeps on each stage, recognises the ordinary won names, and refuses anything reading as lost or cancelled.
If a deal turns up in a stage Attribi cannot read, usually a second pipeline, the sync stops and tells you which setting to fill in. It imports nothing and moves no watermark, so once you answer it picks the whole period back up. A sync that stops is something you can fix. Revenue invented inside your ad platform’s bidding model is not.
Freshsales stores a numeric currency id on the deal rather than a code. Attribi loads your account’s currency list once per run and resolves each deal to its actual ISO currency, so a EUR deal uploads as EUR instead of being flattened into dollars.
Build a filter view in Freshsales for the deals you consider qualified, then give Attribi its exact name. Every deal in that view fires a qualified conversion. Change your mind later and you edit the filter in Freshsales, not a setting here.
Once the fields exist, Attribi fills the visitor id, the first touch source, campaign and time, the last touch source and campaign, and the touch count as leads convert, so a rep opening a contact can see which campaign produced them.
Two of the sixteen fields exist for your own forms to fill with the ad click ID and its type. Attribi never writes those two, it reads them back off the contact when a deal moves, which is what keeps click-level matching alive with no script on your site.
Planned, not live today. Listed so you can see what this integration does not do yet, before you sign up.
Creating the sixteen fields for you, the way Attribi does for HubSpot, Salesforce, Zoho and Pipedrive. This one is not ours to schedule: it needs Freshworks to publish a stable field-creation API, and the moment they do the rest of the connection already works by field name and needs no change.
Not yet available.
In Freshsales go to Admin, Fields, Contact, and add the sixteen custom fields Attribi lists. They are the same set every CRM connection uses, prefixed cf_mta_. On the free plan this fits inside the twenty-five custom field limit with room to spare. Do this before connecting and the next step passes first time.
Freshsales has no OAuth, so you paste your bundle address, such as acme.myfreshworks.com, and an API key from your Freshsales profile. Choose whether Attribi may create contacts Freshsales does not hold, or should only enrich records you already own. Attribi then verifies the sixteen fields and names any that are missing.
Attribi scans the first deal view whose name says won and does not say lost. That choice no longer decides what counts as revenue, since every deal is checked against its own stage, but it does decide which deals are looked at, so if you keep several views with won in the title confirm the right one is being read or none of your wins are seen. For mid-funnel, create a filter view of the deals you treat as qualified and type its name exactly as Freshsales spells it. Leave it blank and Attribi reports on won deals only. If your won stages are unusual, or you run more than one pipeline, send us those stage names at onboarding: there is no picker for them in the product yet.
Stages Attribi supports for Freshsales.
CRM
Pipedrive attribution that reads won deals by status rather than stage name, uploads the deal value to your ad platforms, and writes campaign data on the person.
CRM
Zoho CRM ad attribution: won Deals become offline conversions carrying their amount, and campaign history is written onto the Contact your reps read.
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.
Because Freshworks has no documented, stable API for creating custom contact fields with a bundle API key. Rather than ship a provisioner that works on some accounts and silently fails on others, Attribi verifies instead: it reads your current contact schema, compares it to the sixteen fields it needs, and if any are missing it stops and lists them by name with the admin path to create them. Click provision again afterwards and it confirms. HubSpot, Salesforce, Zoho and Pipedrive are all one button, so this is the one connection where the setup is genuinely longer.
Seven of the sixteen: visitor id, first touch source, first touch campaign, first touch time, last touch source, last touch campaign, and touchpoint count. Two more, the click ID and click ID type, are meant to be filled by your own forms and read back by Attribi. The remaining seven, including the attribution path, landing page and referrer, exist so the schema is complete but are not written by Attribi today. Create all sixteen anyway, because the verification step checks for the full set.
Yes. The free plan caps custom contact fields at twenty-five and Attribi needs sixteen, which leaves room for your own. Growth, Pro and Enterprise all have more headroom. The API key you connect with is per bundle and works the same on every plan, and there is no OAuth app to approve.
By the deal’s own stage, checked one deal at a time. If you have told us which stages mean won, those are the only ones that count and they are matched exactly, which is the setting to use when a stage is named something like Agreement Signed or when you run more than one pipeline. Otherwise Attribi follows the won and lost designation Freshsales already keeps against each stage, and where a stage carries none it recognises the ordinary won names and refuses anything reading as lost, rejected or cancelled. Where none of that settles it, the sync stops with a message naming the setting to fill in rather than booking the deal, and it moves no watermark, so nothing is skipped once you answer. Two more things: there is no stage picker in the product yet, so unusual stages are configured with us at onboarding, and a won deal with no amount is recorded but sends no revenue conversion.
Not for revenue. Qualified and closed-won outcomes are read out of Freshsales and uploaded to your ad platforms whether or not any script is installed, and a form that fills the click ID fields keeps click-level matching too. Without the script you lose the visit history: no page views and no multi-touch path, only what Freshsales holds.
Updated
Sign up and connect it from the Connections page.
Start FreeNo credit card · Free up to 500 visitors a month