Contacts

Contacts are the users of your product who receive your in-app messages. They're automatically created when users interact with your app through the embed script.

How Contacts are Created

Contacts are created automatically when you call Cueflow.init() in your app:

Cueflow.init({
  id: 'user-123',           // Creates or updates contact
  email: '[email protected]',
  name: 'Jane Smith',
  plan: 'pro'
});

Each unique id creates a new contact. If the ID already exists, the contact is updated with new data.

Viewing Contacts

Contact List

Go to Contacts in the sidebar to see all contacts:

  • Search by name, email, or ID

  • Sort by last seen, signup date, or name

  • Filter by properties

  • Paginate through large lists

Contact Details

Click any contact to see:

  • Profile - Name, email, avatar, and properties

  • Attributes - Standard and custom properties

  • Events - Actions they've taken

  • Messages - What they've seen and interacted with

Contact Properties

Standard Properties

These properties are built-in and available for all contacts:

Property
Type
Description

id

String

Required. Your unique user identifier

email

String

User's email address

name

String

Display name

phone

String

Phone number

avatarUrl

String

Profile image URL

role

String

User role (e.g., "admin", "member")

plan

String

Subscription plan

signedUpAt

Date

When they signed up

lastSeenAt

Date

Last activity (auto-updated)

Custom Attributes

Create your own properties for any data you need. See Custom Attributes.

Updating Contacts

Via Embed Script

Update contacts when their data changes:

Via API

Use the server-side API to update contacts programmatically:

Via Dashboard

  1. Go to Contacts

  2. Click on a contact

  3. Edit properties directly

  4. Changes apply immediately

Searching and Filtering

Search contacts by:

  • Email address

  • Name

  • External ID

Filters

Filter the contact list by any property:

  • Plan equals "pro"

  • Signed up in last 7 days

  • Has custom attribute

Exporting Contacts

Export your contact list:

  1. Go to Contacts

  2. Apply any filters

  3. Click Export

  4. Download CSV file

Deleting Contacts

To remove a contact:

  1. Go to Contacts

  2. Click on the contact

  3. Click Delete in the menu

  4. Confirm deletion

Contact Identification

The ID Field

The id field is the most important property. It must be:

  • Unique - One ID per user

  • Consistent - Same ID across sessions

  • Persistent - Doesn't change over time

Good ID examples:

  • Database user ID: usr_a1b2c3d4

  • UUID: 550e8400-e29b-41d4-a716-446655440000

  • Email (if unique): [email protected]

Bad ID examples:

  • Session ID (changes each visit)

  • Random numbers

  • Temporary identifiers

Anonymous Users

If you need to identify users before they sign up:

  1. Generate a persistent anonymous ID

  2. Store it in localStorage or a cookie

  3. After signup, update with their real ID

Best Practices

Data Quality

  • Send accurate, up-to-date information

  • Include email for better contact profiles

  • Update contacts when data changes

Privacy

  • Only collect necessary data

  • Respect user privacy preferences

  • Provide deletion options

Identification

  • Use stable, unique IDs

  • Keep ID consistent across platforms

  • Document your ID strategy

Segmentation

  • Use standard properties consistently

  • Define custom attributes for your needs

  • Plan attributes before implementing

Last updated