Skip to main content

User Sync

Import and synchronize users from external data sources like Airtable, Google Sheets, and CSV files.

Overview

User Sync allows you to:

  • Import users from external registration systems
  • Keep user data synchronized automatically
  • Map external fields to DMS attributes
  • Handle conflicts between sources

Supported Sources

Airtable

Connect to an Airtable base to sync users from a table.

Requirements:

  • Airtable account with API access
  • OAuth authorization (one-time setup)

Setup:

  1. Go to Sync Sources > Add Source
  2. Select Airtable
  3. Click Connect with Airtable
  4. Authorize DMS to access your bases
  5. Select the base and table
  6. Configure field mappings

Google Sheets

Sync users from a Google Spreadsheet.

Requirements:

  • Google account
  • OAuth authorization (one-time setup)

Setup:

  1. Go to Sync Sources > Add Source
  2. Select Google Sheets
  3. Click Connect with Google
  4. Authorize DMS to access your spreadsheets
  5. Select the spreadsheet and sheet
  6. Configure field mappings

CSV Upload

Upload a CSV file for one-time or periodic imports.

Setup:

  1. Go to Sync Sources > Add Source
  2. Select CSV Upload
  3. Upload your CSV file
  4. Map columns to DMS fields
  5. Run the import

Field Mappings

Map source columns to DMS fields.

Required Mappings

DMS FieldDescriptionExample Source Field
emailUser's email (unique identifier)"Email", "Email Address"

Standard Mappings

DMS FieldDescriptionExample Source Field
first_nameFirst name"First Name", "Name"
last_nameLast name"Last Name", "Surname"

Custom Attributes

Any unmapped field becomes a custom attribute:

Source FieldDMS Attribute
"Ticket Type"ticket_type
"Company"company
"Registration Status"registration_status

Example Configuration

{
"field_mappings": {
"Email Address": "email",
"First Name": "first_name",
"Last Name": "last_name",
"Ticket Type": "ticket_type",
"Company Name": "company",
"Dietary Needs": "dietary_restrictions"
}
}

Sync Settings

Sync Frequency

OptionDescription
ManualOnly sync when triggered
HourlySync every hour
DailySync once per day
Real-timeSync immediately on changes*

*Real-time requires webhook support from the source.

Conflict Resolution

When a user exists in both DMS and the source:

StrategyBehavior
source_winsExternal source overwrites DMS
dms_winsDMS values are preserved

Recommendation: Use source_wins when the external system is the source of truth.

Running a Sync

Manual Sync

  1. Go to Sync Sources
  2. Find your source
  3. Click Sync Now

Dry Run

Preview changes before applying:

  1. Click Sync Now
  2. Enable Dry Run option
  3. Review the preview:
    • New users to create
    • Existing users to update
    • Records with errors
  4. If satisfied, run the actual sync

Sync Results

After a sync completes:

Sync completed successfully

Processed: 150 records
Created: 10 new users
Updated: 25 existing users
Skipped: 115 unchanged
Errors: 0

Deduplication

DMS prevents duplicate users during sync.

By Platform

SourceDeduplication Key
Airtablesource_id + email
Google Sheetsemail
CSVemail

Handling Duplicates

If a sync finds a duplicate:

  1. Existing user is updated (based on conflict resolution)
  2. Activity is logged
  3. No new user is created

Error Handling

Common Errors

Missing Email:

Row 15: Missing required field 'email'

Solution: Ensure all rows have email addresses.

Invalid Email Format:

Row 23: Invalid email format 'not-an-email'

Solution: Fix the email in the source data.

Connection Failed:

Failed to connect to Airtable: Invalid API key

Solution: Re-authorize the OAuth connection.

Viewing Errors

  1. Go to Sync Sources > Sync History
  2. Click on a failed or partial sync
  3. View error details for each problem row

OAuth Connections

Initial Setup

  1. Click Connect for the source type
  2. Sign in to the external service
  3. Grant DMS permission to access your data
  4. Return to DMS

Refreshing Connections

OAuth tokens expire periodically:

  1. Go to Sync Sources
  2. If connection shows "Expired", click Reconnect
  3. Re-authorize access

Revoking Access

To disconnect a source:

  1. Delete the sync source in DMS
  2. Optionally, revoke access in the external service's settings

Best Practices

Data Quality

  • Clean source data before syncing
  • Use consistent field names
  • Validate email addresses at the source

Field Mapping

  • Map all useful fields, not just required ones
  • Use consistent attribute names across sources
  • Document your mappings

Monitoring

  • Review sync history regularly
  • Set up notifications for sync failures
  • Verify user counts match expectations

Multiple Sources

If using multiple sync sources:

  • Avoid syncing the same users from different sources
  • Use consistent field mappings across sources
  • Choose one source as the "primary" for conflict resolution

Troubleshooting

Users Not Appearing

  1. Check sync status in Sync History
  2. Verify field mappings include email
  3. Check for errors in the sync log
  4. Ensure source data has valid emails

Attributes Not Updating

  1. Check conflict resolution setting
  2. Verify the field is mapped
  3. Check if the value actually changed in source

OAuth Errors

  1. Try re-authorizing the connection
  2. Check if the external service is accessible
  3. Verify you have permission to the specific base/sheet