Kicklace, an AI-powered CRM for micro SaaS
SaaS identity resolution
An anonymous visitor, an email address, an account and a purchase are usually four rows in four systems. Here they are one record, joined as they arrive.
Four ways in, one record
Most of the work a CRM does for a software product is deciding that these four are the same person. Kicklace does it as they arrive, not in a nightly job.
01
An anonymous visitor
A browser id the tag keeps. No cookie.
02
An email address
A form the tag heard, or a subscribe from your server.
03
An account
A sign-up your server, Clerk or Kinde posts.
04
A purchase
Stripe, GitHub Sponsors, or your own billing.
A stranger reads your pricing page in July. In August they leave an email address on a form. In September they make an account, and in October they pay. Four events, three of them anonymous at the time, and one record at the end of it — with the first touch from July still on it, which is the only way to find out which campaign actually pays for itself.
The tag keeps one random id in the browser's own storage — kl_id, no cookies — and reads the campaign somebody arrived on once per session. Everything after that is your server's, or a door you connected, and every one of them passes through the same resolution.
The four rules
Written out because they decide what your numbers mean, and because a rule you cannot state is one you cannot check.
- 1. The email address is the key across devices. A browser id belongs to one browser. An address belongs to a person, so it is what a laptop and a phone are joined by.
- 2. A known address arriving with a new browser id attaches that browser to them. They signed in somewhere else; now this browser is theirs too, and what it does from here lands on the record they already have.
- 3. A known address arriving on a browser that already belongs to an anonymous person merges that person in. The identities, the timeline, the subscriptions and the links move across, the fields are unioned, the earliest first touch wins, the latest activity wins, and the record that lost is marked as merged, so a link to it still works and takes you to the survivor.
- 4. Two people who both have addresses are never merged automatically. That is a judgement, not a lookup — a shared laptop, an agency signing clients up, a family. Kicklace shows you the pair and lets you decide.
There is a fifth, quieter rule underneath the third: if the browser already belongs to somebody with a different address, a new address starts its own record and the browser stays where it was. Two people who share a computer are two people.
What a record is held by
Every identity a record carries, and what each one is for. A record can hold any number of them.
- The durable one, and the only one that reaches across devices. Everything else is tied to a browser, an account or a provider.
- anon
- The random id the tag keeps in the browser's own storage. One per browser, so a person with a laptop and a phone has two until an address joins them.
- account
- Your own id for them, if you send one. Useful when somebody changes the email address they signed up with.
- stripe_customer
- Written down the first time a Stripe event arrives carrying both the customer id and an address. It is how a subscription event, which has no address at all, still finds them.
- clerk_user · kinde_user
- The same idea at your auth provider, and asked for before the address — so somebody who changes their email over there is one person here with two identities, never two people.
- github_user
- A GitHub handle. A sponsor usually has no public address, so the handle is what the record is held by until one arrives.
- install · domain
- A desktop install, and an organization's email domain, for the products and workspaces that use them.
Somebody with no address at all is a real record: they are named after their browser id, they sit at Visitor, and their page reads are theirs. The moment an address arrives, that record becomes the person — rather than a second one starting beside it.
When it takes a person
Two records that really are one, where no rule can prove it. Kicklace finds the pairs and shows you what a merge would do before it does it.
Every object has a duplicates view that looks for the pairs a rule will not merge on its own: the same name, the same phone number, the same last name at the same email domain, two organizations at one domain. Opening one goes straight to the merge with both records filled in.
The merge itself shows a preview first. You choose which record survives; its values stand and its blanks are filled from the other; the identities, the timeline, the subscriptions with their consent, the links, the tasks, the emails sent and any automation still waiting all move over; the earliest first touch and the further lifecycle stage win. The record that lost is marked, and from then on its page takes you to the survivor rather than 404ing on a link somebody bookmarked. What moved is written down on the survivor, so a merge is a thing you can read afterwards.
What comes back out, and what goes
A record that survives everything a person does has to be a record you can hand back and a record you can destroy.
Export is everything held about one person as one file: their fields, every identity, every subscription with the sentence they agreed to and the day they agreed to it, their whole timeline, the emails sent to them, their links, and the records that were merged into them. Any member can take it.
Delete removes the record, the records merged into it, and everything that refers to any of them. The people who run the workspace are told it happened, in a notice that does not name who it was.
And the visitors nobody ever met go by themselves. Set a number of days under Settings → General and an anonymous person — no address, no identity but a browser — who has done nothing for that long is deleted. Zero keeps them for ever, and it never touches anybody who left an address.
Questions
- Does it use cookies or a fingerprint?
- Neither. The tag keeps one random id in the browser's own storage and sends it with what that browser does. There is nothing to correlate across sites, and a person who clears their storage is a new browser — which is the honest answer rather than a guessed one.
- What happens if the same person uses a laptop and a phone?
- They are two records until an email address turns up on both. The address is the durable key across devices: the moment it arrives on the second browser, that browser is attached to the record the first one made, and their two timelines become one.
- Which first touch is kept when two records join?
- The earliest, always. The campaign that brought somebody in six months before they paid is the one worth knowing about, so a merge keeps it and the later one is discarded. The latest activity wins in the other direction, and blank fields are filled from whichever record has them.
- Will it merge two people who share a computer?
- No. Two records that both have email addresses are never merged automatically, and a new address arriving on a browser that already belongs to somebody else starts its own record while the browser stays where it was. Merging those is a judgement, so Kicklace shows you the pair and lets you decide.
- Can I undo a merge?
- No, and the page says so before you do it: you see a preview of exactly what would move first. What did move is written down on the surviving record afterwards, and the record that lost keeps working as a link — its page takes you to the survivor rather than breaking.
- Can I get everything about one person back out, or delete it?
- Both. Export hands back one file with the fields, every identity, every subscription with the sentence they agreed to, the whole timeline, the emails sent, and the records merged in. Delete removes the record, the records merged into it, and everything referring to any of them.
Read next
Join the waitlist
We are onboarding one company at a time. Leave your email and we will let you know when your workspace is ready.