iSales

Every lead, traced to what brought it

Capture enquiries from every channel into one record per student, and see spend, leads, and revenue per campaign — with anything unmatched shown as Unattributed, not guessed.

Public APIInbound webhooks, any sourceCSV & Excel importWebsite chat widgetBuyer micrositesMeta Lead Ads & publisher feeds· coming soonWhatsApp inbox· coming soon

Capture to enrolment

Know which spend actually enrolled students

One record, however they arrive

Every channel runs the same dedup, SLA, allocation, and scoring path — a student who enquires from an ad and again from your website is one lead with two touches, not two leads.

Attribution that doesn't rewrite history

The first source is fixed at first touch and never changes; later, different sources fill a second and third slot. The campaign is matched once, at ingest, from utm_campaign, campaign, or ad ID — so a later touch can't take the original enrolment's credit.

Campaign ROI, honestly bucketed

Spend, leads, revenue, ROAS, and cost per acquisition for every campaign. Leads that match no campaign show up as Unattributed instead of being spread across the ones that do.

Spend is logged per campaign per day for now — Google and Meta Ads spend sync is coming soon.

Consent on the record

Every consent is stored with its source and exact wording. A withdrawal flags the lead do-not-disturb, checked before a call or message goes out — org-captured consent, not an NDNC registry lookup.

See your own campaigns attributed

Bring last month's leads and spend, and we'll walk through where your enrolments actually came from.