Skip to content
Customer profiles

One customer. One profile. Every till, shop and app.

Your till knows a card number, your web shop knows a customer ID, your app knows an email. Vendor Loyalty ties all of them to one member, so the balance, tier and history are the same wherever that person shows up.

Most programmes have three customers where there should be one.

The same person signs up online, gets a plastic card in store and installs the app. Each system creates its own record, the points split three ways, and nobody trusts the balance. Fixing it later means spreadsheets and support tickets.

  • Find a member by anything you already haveLook up a profile by member ID, EAN-13 card barcode, email, phone number or the ID another system uses, written as provider:id (for example pos:000731). Phone numbers match regardless of spaces or dashes.
  • Many IDs, one personAttach as many external IDs as a customer needs: one from the till, one from the web shop, one from the ERP. Each ID belongs to exactly one member, so two profiles can never claim the same card.
  • Create-or-find in one callYour shop sends its customer ID. If the member exists you get it back; if not, it is created. Running the same call twice never creates a second profile, and it never silently attaches to someone else by matching an email.
  • Merge duplicates without losing pointsPick the profile to keep and up to 25 duplicates. Balances, lifetime points and pending points are added together, transactions, IDs, tags, segments and offers move over, and the earliest join date wins. Old identifiers keep working and point to the surviving profile.
  • Let customers link their own cardA customer with a plastic card creates a web account and asks to link them. They receive a 6-digit code by email, valid for 10 minutes with 5 attempts, and the card joins their account. No support call needed.
  • Anonymise on request, keep the booksOne action removes name, email, phone, IDs and tags and replaces the card number. The points history and tier stay, so your liability figures and reports remain correct. It cannot be undone, and the dashboard asks the operator to type a confirmation first.
  • Import the members you already haveUpload a CSV of up to 25 MB. It runs in the background and reports created, skipped and failed rows, with the reason for every failure.
  • Tags for everything elseFree-form, coloured labels such as VIP, staff or press, attached by hand from the member page and usable in offer rules.

One profile, found by anything.

Every ID your systems use.

Card barcode, email, phone and the IDs from your till, shop and ERP, all on one member.

Duplicates become one.

Balances add up, history moves over and old IDs keep working.

What your team sees.

  • Member search by ID, email, phone, barcode or external ID
  • Profile page with balance, lifetime points, pending points and tier progress
  • Full transaction history, issued offers and an activity log per member
  • Tags, segments, memberships and external IDs managed from one page
  • Merge and anonymise in a protected danger zone
  • CSV import with a per-row result table
  • “View as member” to see exactly what the customer sees in the app
For developers

Every write is safe to retry. Get-or-create by external ID is a single idempotent PUT; merged profiles answer with an X-Merged-Into header so your system can update its stored ID.

request.httpHTTP
1PUT /api/v1/members/by-external/webshop/48211
2X-API-Key: vls_••••
3
4{ "first_name": "Ana", "last_name": "Petrova",
5 "email": "ana@example.com" }
6
7→ 200 { "data": { "uuid": "9f3c2a1e-…",
8 "barcode_ean13": "2000004812294", … } }

Who it helps.

  • CustomersOne balance and one card, whether they shop in store, online or in the app.
  • Store staffScan the card or type a phone number. Either finds the right person.
  • MarketingReal member counts with no duplicates inflating them.
  • ComplianceAnonymisation that satisfies an erasure request without breaking the accounts.

At a glance.

Lookup keys
Member ID, EAN-13 barcode, email, phone, provider:external_id
Member statuses
Active, suspended, closed, anonymised
Card types
Digital, physical, both
Merge
Up to 25 duplicates per action; points summed
Account linking
6-digit email code, 10 min, 5 attempts, 3 codes per 15 min
Bulk import
CSV up to 25 MB, processed in the background

Customer profiles questions.

It keeps working. Lookups by the old identifier land on the surviving profile.

See it with your own programme.

Tell us about your members, your tills and your shop, and we’ll show you where Vendor Loyalty fits.

Ready to get started?

Launch a store yourself, or talk to us about connecting ecommerce to the systems you already run.

  • Vendor Standard

    Everything you need to launch, manage and grow an online store. From €39/month.

    Explore Commerce
  • Vendor Pro

    Larger catalogs, advanced pricing, complex operations and deeper integrations.

    Explore Scale