Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.soundchecklive.io/llms.txt

Use this file to discover all available pages before exploring further.

The operator data importer lets you bring legacy bookings into Soundcheck in bulk — gigs, venues, customers, and crew invitations — without re-typing each row. It lives at /imports and is available to CRM managers and owners.
Re-importing the same file is safe. The importer is idempotent: rows matched by external ID or natural key are updated in place rather than duplicated.

When to use it

  • Migrating from a spreadsheet, paper records, or another CRM.
  • Loading a season of advance bookings in one pass.
  • Pulling in a partner’s gig feed before the n8n CRM sync is wired up.
If you only have a handful of events, create them directly under Gigs → Create gig.

What you can import

SourceFormatLimit
File upload.xlsx, .csv25 MiB
PasteCSV or TSV8 MiB
Rows per job50,000
Each row produces — at most — one event (and its venue, customer, and one crew invitation). When you have several crew on the same gig, use row grouping so multiple rows collapse into one event with multiple members.

The four-step wizard

1

Parse

Upload a file or paste your data. Soundcheck detects the format, normalizes the headers, and pulls a 20-row sample for the next step. While a commit is in flight the job is locked — re-parses are blocked until the commit finishes.
2

Map

Soundcheck proposes column → field mappings, either with the AI mapper (opt-in, PII scrubbed before any model call) or by heuristic match. Review the mapping, adjust as needed, and optionally save it as a template for future imports. If a single gig spans multiple rows, set Row grouping = group_by_external_id.
3

Preview

Dry-run the import. You’ll see exact counts of what would be created vs. updated for events, venues, customers, and invitations — plus row-level errors (missing required fields, invalid dates, members without a contact channel). The counts here match exactly what Commit will write.
4

Commit

Write the records. Events, venues, and customers go through in a single transaction; invitations follow in a deduped second phase. You get a per-row outcome (IMPORTED, UPDATED, DUPLICATE, FAILED) so you can audit what happened.

What gets created

The importer can write to four entity types:
  • Events — matched by external_id first, then by (title, event_date).
  • Venues — matched by name within the organization.
  • Customers — matched by name within the organization.
  • Invitations — one per crew member row that has a contact channel.
External IDs are stable across runs. If your source system has a gig ID, customer ID, or venue ID, map it — re-importing then produces zero new rows, only updates.

Addressable channel requirement

An invitation can only be sent if Soundcheck can reach the person. So a member row needs at least one of:
  • Email address
  • Phone number
Rows without either are silently skipped during commit. The Preview step mirrors this rule, so the count you see is exactly the count Commit will write.

Permissions

The importer requires the CRM manager capability on the organization. Owners always have this; admins can be granted it through roles & permissions.

Sample file

A 14-row sample lives at docs/sample-imports/operator-business-import.csv. It exercises the full pipeline:
  • 5 events — Acme Holiday Party, Smith-Johnson Wedding, Riverside Festival, Westside Brunch Set, Mercer Birthday.
  • 5 venues and 5 customers.
  • 14 invitations across 5 distinct performers with mixed positions.
  • Re-running the file produces zero new rows.
After importing the sample, edit one Gig Name and re-import. The Preview should show 1 updated, 4 unchanged for events.

Universal Event Format

Schema reference for partner feeds and advanced mappings

n8n CRM sync

Recurring sync for sources with a webhook