Maqetin keeps one live record of every customer.

Every sign-up, transfer, order and login lands on the person's profile as it happens, next to every email you sent them. Segments and journeys read from that profile; reports are planned.

MR
Mary Roe
mary.roe@example.com+44 7700 900193London, United Kingdom
userIdcust_90314contactIdctc_01JA7KQ2N5VD
Their local time10:12Europe/London (BST, UTC+1) · from deviceActive now
marketing: yes
Activity388Messages9
Today · Sunday 18 October
10:12:40
transfer.completedios
amount: 250currency: GBPto: savings
10:05:13
kyc.completedios
tier: 2method: passport + selfie
09:40:00
Finish verifying in two minutesOpened
KYC nudge · template tpl_kyc_reminder
Yesterday
09:39:51
kyc.startedios
tier: 2
09:31:07
user.signed_upios
referral: tiktok
Traits
kyc_tier
2
account_type
Personal
first_transfer_at
18 Oct 2026, 10:12 BST
lifetime_transfers
£18,400.00
timezone
Europe/Londonfrom device
locale
en-GB
22 Jul: 3 events23 Jul: 3 events27 Jul: 3 events29 Jul: 3 events30 Jul: 1 event31 Jul: 5 events5 Aug: 5 events6 Aug: 3 events7 Aug: 4 events8 Aug: 5 events10 Aug: 5 events11 Aug: 5 events, 1 message12 Aug: 5 events13 Aug: 4 events14 Aug: 3 events17 Aug: 3 events22 Aug: 5 events24 Aug: 4 events26 Aug: 6 events2 Sep: 4 events3 Sep: 4 events5 Sep: 4 events6 Sep: 2 events10 Sep: 5 events14 Sep: 1 event, 1 message15 Sep: 1 event16 Sep: 2 events19 Sep: 1 event21 Sep: 1 event25 Sep: 2 events4 Oct: 3 events5 Oct: 4 events7 Oct: 5 events8 Oct: 6 events10 Oct: 4 events11 Oct: 12 events12 Oct: 12 events13 Oct: 4 eventstoday: 7 events, 1 message
21 Jul388 events · 9 messages · 90 daysToday

Sample workspace: Harbour Money, a digital bank in London.

The integration is two calls.

identify() tells Maqetin who someone is and track() records what they did. Call them from your web app or your servers.

  • Context from the first event. Timezone, locale, device and the campaign in the URL are recorded automatically, because an event can't be changed after it lands.
  • Wrong phone clocks fixed. Every batch carries the time it was sent, so a phone set to last year doesn't scramble someone's history.
import { MaqetinClient } from '@maqetin/sdk-js'

const mq = new MaqetinClient({ publicKey: 'mq_live_4c2e…' })

mq.identify('cust_90314', { email: 'mary.roe@example.com', kyc_tier: 2 })
mq.track('transfer.completed', { amount: 250, currency: 'GBP' })

Visits from before sign-up join the customer's profile.

Maqetin records those visits as events under an anonymous id and shows them on the person's profile when you call identify(). The campaign values in the page's URL come with them.

  • Call reset() on logout. On a shared browser the next person's identify() would otherwise pick up the earlier visits.
  • Two known people stay separate. Maqetin joins anonymous visits to a profile; it does not merge two identified profiles.
  • Malformed ids refused. A user id that is empty or longer than 256 characters is refused before it is stored.
John Doe
Harbour Money · Manchester · 13:31 BST
Today
13:31:02
account.openedweb
product: Savings
13:30:40
Anonymous visitor identified
anon_4be19c on identify(). 6 earlier events now show on this profile.
13:29:58
user.signed_upweb
method: phone
Tuesday · before sign-up
20:14:11
page.viewedweb
path: /savings
20:13:47
page.viewedweb
path: /utm_source: instagram

Segments written as sentences.

Find people by what they did and what they didn't do, in any window from 1 to 365 days. A journey can use the same filter to decide who enters. Campaigns and ad audiences are planned.

  • Traits as well as events: plan, country, KYC tier, lifetime value, anything you send.
  • The count is always on screen, so you tune a segment by watching it move.
People who match
all rulesany rule
WhereDidkyc.completedin the last30 days
andDid not dotransfer.completedin the last30 days
andTraitkyc_tieris greater than1
3,120people match · counted 1 minute ago
Add rule
Planned

You will see every event your apps send.

Each event and trait will show today's count, its properties and when it last arrived, so you see when a release stops sending one.

EventTodayPropertiesLast seen
transfer.completed18,402amount, currency, tojust now
kyc.completed1,206tier, method12 s ago
card.activated640card_type1 min ago
loan.approved88amount, currency, term_months9 min ago
app.opened41,930version, buildjust now
Planned

Maqetin will record where every customer came from.

The first ad, post or link that brought someone in will stay on their profile for good, next to every touch since. Click ids from Meta, Google, TikTok and others will be kept exactly as they arrived, ready for attribution and for sending conversions back.

Analytics →
First touchInstagram ad · Save every payday14 Oct, 20:13utm_source=instagram utm_medium=paid_social fbclid=IwAR0pQ7vK2x
TouchTikTok creator link15 Oct, 18:40maqetin.link/l/hm-sav · ttclid=E.C.P.v9Kq2
TouchGoogle search17 Oct, 07:55gclid=Cj0KCQjw · utm_campaign=brand
Last touchEmail · KYC remindertoday, 09:58utm_source=maqetin utm_medium=email

Delete or export a person in one action.

Every profile keeps a marketing-email flag. Your app sets it when it identifies the person, and an unsubscribe, a complaint or a hard bounce turns it off. A deletion or an export covers the profile, its events and every message record.

Security and privacy →
Delete John Doe?

This removes his profile, 214 events and 6 message records from the profile, event and message stores, and ends his journey enrollments. Copies in backups age out within 35 days. The address stays on the suppression list, so mail to it stays blocked.

Type acct_70218 to confirm
CancelDelete contact

Start by sending events from one app.