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.
- 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
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' })import { MaqetinServer } from '@maqetin/sdk-js/server'
const mq = new MaqetinServer({ secretKey: process.env.MAQETIN_SECRET_KEY })
// A transactional email, sent by your server
await mq.messages.send({
channel: 'email',
templateId: 'tpl_loan_approved',
to: { userId: 'cust_90314' },
from: 'Harbour Money <hello@mail.harbourmoney.co.uk>',
data: { amount: 1500, 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'sidentify()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.
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.
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.
| Event | Today | Properties | Last seen |
|---|---|---|---|
| transfer.completed | 18,402 | amount, currency, to | just now |
| kyc.completed | 1,206 | tier, method | 12 s ago |
| card.activated | 640 | card_type | 1 min ago |
| loan.approved | 88 | amount, currency, term_months | 9 min ago |
| app.opened | 41,930 | version, build | just now |
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 →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 →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.