Skip to main content
You’re moving to Soundcheck with a season already on the books: thirty gigs in a spreadsheet, a folder of signed contracts, a CRM you’re leaving behind, or a sandbox org you want to clone. Don’t re-type any of it. This recipe covers the four intake paths and when to use each.

Pick your path

The spreadsheet, paperwork, and sync paths land in the same normalized data via the Universal Event Format, so mixing those is safe. A gig imported from a spreadsheet and one extracted from a contract behave the same afterward. Workspace clone uses that same UEF/CSV shape; see below.

The spreadsheet season

Prefer loading Crew → Venues → Clients → Songs → Setlists → Events so gigs match real rooms and clients instead of creating name-only stubs. Open Assets → Imports (/assets?tab=imports) and drop files first. Full wizard: Import your data and start running. Leaving Planning Center, Back On Stage, Master Tour, Stagera, or LASSO / Shoflo? Use Coming from another system for export steps and zip shapes (ShowOps / Umbrella stay BYO until a dump exists).
1

Shape the export

One row per gig (or per crew member per gig; see grouping below) with columns for name, date, venue, customer, and crew contacts. If your old system has stable IDs, keep the ID column. Mapped external IDs make re-imports update in place instead of duplicating.
2

Parse

Open Assets → Imports (/assets?tab=imports). Older bookmark Settings → Organization → Imports can bounce an owner to /gigs on some builds (including DEV); treat that as a product gap. Upload the file (.xlsx / .csv / .tsv / .txt, up to 25 MiB) or paste CSV/TSV (up to 8 MiB). Soundcheck normalizes the headers and samples the rows. There is no Google Sheets connector. Export first.
3

Map

Mapping is required. Review the proposed column → field mappings and adjust. Several crew rows for the same gig? Set row grouping to group_by_external_id so they collapse into one event with multiple members. Save the mapping as a template if you’ll import this shape again.
4

Preview: the dry run

The preview shows create vs update vs skip counts for your target, plus row-level errors and notes. Nothing is written yet.
5

Commit

Write the records. Every row gets an outcome so you can audit the run. Re-running the same file later produces updates, not duplicates. Use that as your confidence check.
Until partial-commit shipping is live in your environment (pull request 1446), Import now stays disabled while any blocking row error remains. A single bad row can block the whole file (“Fix the row errors above before importing.”). After that ships, valid rows can commit, jobs may land as PARTIAL, and you can download an error CSV to fix and re-import. See When a row is bad.
Import venues-and-clients-heavy data early. Once your venue directory is populated, every future gig at those rooms auto-fills its logistics, and the season you just imported can be grouped into tours for per-run financial roll-ups.

After you commit

Do not stop in the import history tab:
  1. Open Gigs and confirm the season list.
  2. Ask crew to accept org invitations from imported members.
  3. Spot-check venues, clients, and Show Prep (songs / setlists).
  4. Re-import the same file once. Expect 0 new rows.

The paperwork pile (CheckAI Private Preview)

CheckAI beta is Private Preview, available only to the existing beta tester group. Signing up, choosing a paid plan, upgrading, contacting support, or viewing a public demo does not grant access. Other organizations can attach their files for reference and enter or import structured records manually. For gigs that exist only as documents (a signed contract, a forwarded email thread, a call sheet PDF), use AI file ingestion:
  1. Open the enabled Files preview on a gig and add the documents. Source files attach immediately; extracted records are reviewed separately.
  2. CheckAI reads each file and proposes structured records: schedule items, crew with fees, ledger items, leads, and event fields.
  3. Review the proposals and matches against existing data. Select the correct records; leave uncertain or incorrect rows unselected.
  4. Review combined proposals across files, checking overlapping or conflicting details against the originals.
  5. Select Commit selected to apply the chosen records in the web app. Crew records are added without sending invitations. External AI clients use a separate confirmation flow; see the ingestion guide.
This pairs with the spreadsheet path: import the season’s skeleton from the export, then drop each gig’s contract on it to fill in schedules, fees, and money.

Clone a sandbox workspace

Use this when you already have a Soundcheck org (sandbox or golden fixture) and want another org to start from the same catalogs.
  1. On the source org, open Settings → Organization → Data and download the workspace zip (UEF JSON plus wizard-ready CSVs for crew, clients, inventory, venues, songs, setlists, events, and leads).
  2. On the destination org, either:
    • Drop csv/*.csv on Settings → Organization → Imports (drop-first), or
    • On Data, use Import UEF bundle with uef/*.json (or the zip).
  3. Crew rematches on email. Clerk memberships are not copied. Skip only happens when that email is already a claimed member on the destination. An unmatched exported Owner is written as an unclaimed OWNER roster row and gets a Clerk org:admin invitation (accepting grants financial/admin/owner-only access). Do not clone a sandbox into a real org if you do not want that person as an admin. Other unmatched members land as unclaimed roster entries with a Clerk invite for their exported role. Duplicate setlist titles rematch. A second pass is updates only (0 new). Money, files, branding, and integration tokens stay out of the zip.
Member MCP can clone a workspace (export_workspace → preview_uef_import → import_uef). Public MCP cannot. The Data page and Imports still work. Full detail: Export a workspace.

Common pitfalls

An invitation needs a way to reach the person. Each crew row must have an email or a phone number. Rows without either are skipped, and the Preview counts reflect that before you commit.
The importer is idempotent: rows matched by external ID or natural key (like title + date for events) update in place. Re-importing a corrected file is the intended fix loop, not a hazard.
Imports need the data-import feature flag and an organization owner or admin signed into the right org. If the page is missing, ask your Soundcheck contact to enable the flag, or confirm you are an owner or admin on that organization. On some environments (including DEV), that route can bounce an owner to /gigs instead of the importer. Treat that as a product gap, not a permissions typo. See roles & permissions.
Use both paths: import the gigs from the spreadsheet first, then drop each contract onto its gig and let ingestion propose the ledger items and crew fees.
If you want history and reporting, yes. Imported past gigs can be marked Completed/Settled so your books reflect them. If you only care about what’s ahead, importing just the upcoming season keeps things lighter.

Import your data and start running

Start-here path: order, wizard, bad rows, and what to do after commit.

AI file ingestion

Extract records from contracts and call sheets.

Universal Event Format

The shared schema behind every intake path.

n8n CRM sync

Recurring sync for sources with a webhook.

Export a workspace

Clone a sandbox: download the zip, restore CSVs or UEF on the destination org.