Skip to main content
Load the roster, rooms, clients, songs, and gigs you already keep in spreadsheets. Map columns once, commit, then open those records and keep working. This is the start-here path for operators. For the shared JSON shape behind imports and partner feeds, see Universal Event Format. To clone a Soundcheck org back into import, see Export a workspace. For contracts and call sheets (not spreadsheets), see AI file ingestion. For a recurring CRM webhook, see n8n CRM sync.
Import wizard empty-state dropzone, then map columns, preview, and commit

Drop a spreadsheet, map columns, preview counts, then commit

Re-importing the same file is safe. The importer is idempotent: rows matched by natural key (or external ID when the target supports it) update in place instead of duplicating. Staffing already on a gig (draft, open, or filled job offers) is skipped when the title, position, day, seats, and call window all match; expired or cancelled offers are holes a later import can fill. Zero new rows on a second pass is the confidence check.

Before you import

  1. Be an organization owner or admin on the org you are loading. Organization → Imports shows for owners and admins when imports are enabled for your workspace.
  2. Select that organization in the web app. Imports always write into the active org.
  3. Confirm imports are available. The feature is gated by the data-import flag. Some environments also set NEXT_PUBLIC_FF_DATA_IMPORT. If you do not see Imports under Organization, ask your contact to enable it.
  4. Download the target template from the wizard when you need a known-good column set (especially for Leads). Prefer the in-app template over guessing headers from an old CRM export.
If you only have a handful of gigs, create them under Gigs → Create gig instead of running a full import.

Where to go

In the web app, open Organization → Imports. Empty-state Imports is drop-first: drop files on the empty state, then review detected targets. Do not lead with an older pick-target-first wizard. There is no Organized / Processing / Queued UI.
Live chrome is Organization → Imports. /assets?tab=imports is a route alias to the same Imports page (not an Assets tab in the sidebar). On some builds, older Settings bookmarks can bounce an owner to /gigs; treat that as a product gap, not a docs typo.
Older links to /imports still work; they redirect into Imports. Prefer Organization → Imports in the sidebar when you share the flow; /assets?tab=imports also opens the same page.
From there you can:
  • Upload a file: .xlsx, .csv, .tsv, or .txt (up to 25 MiB)
  • Paste CSV or TSV (up to 8 MiB)
  • Drop several files at once for a season-style queue (the importer orders them: crew and rooms before gigs)
There is no Google Sheets connector. Export from Sheets (or your CRM) to CSV/XLSX, then upload or paste. Workbooks with more than one sheet show a sheet picker after upload; switching sheets starts a new job from the same file. Each job allows up to 50,000 rows.

What to import, in order

Drop files first. The Imports page reviews each file’s target from the filename and headers, then you confirm and continue into map / preview / commit. Import foundational lists first, then gigs: Optional extras (any time after the lists they depend on): When several crew rows share one gig, set row grouping to group_by_external_id on the Events mapping step so those rows collapse into one event with multiple members.

Coming from another system

There is no native Planning Center, Back On Stage, Master Tour (Eventric), Stagera, or LASSO / Shoflo connector. Export a CSV from that product (or reuse the Google Sheet you already used to load it), then import through Organization → Imports using the order below. There are no in-product Coming-from cards. Full migration checklist and mapping traps: Coming from another system.

Planning Center (churches / house of worship)

There is no Planning Center connector. Export CSVs from Planning Center, then import through Organization → Imports. There is no plan / order-of-service CSV from Planning Center. Build Setlists and Events (services as gigs) from the lists and schedules you already keep, or enter them after Crew and Songs are in. Import order: Crew (Services People) → Songs → Setlists → Events. Practice shape: docs/sample-imports/customers/house-of-worship/ in the repo (volunteer team, worship songs, service schedule).

Back On Stage (bands, bookings, members, setlists)

Back On Stage has no native export and no public API. Leaving BOS usually means reusing the Google Sheet templates you (or they) used to load the product. Download or copy those sheets (File → Make a Copy), then import through Organization → Imports. Template URLs on docs.google.com may require a Google account (not public). Full Coming-from detail: Coming from Back On Stage. Verified Leader / Members headers (htmlview): Import order: Crew → Songs → Events. Academy/help path (not live BOS product UI): Import bookings, Build and share smart setlists. The BOS expense CSV is payouts history, not the gig calendar. Do not treat it as your Events file.

Master Tour / Eventric (touring)

There is no Master Tour connector. Export from Eventric, then import through Organization → Imports. Map the tour-details CSV as Events, plus Venues and Clients (promoters). Import Crew from the Export Personnel CSV when you have it; use the personnel PDF only as a fallback to rebuild a Crew sheet by hand. Practice shape: docs/sample-imports/customers/touring-artist/ in the repo (tour personnel, routing, setlist). Full Coming-from detail: Coming from Master Tour / Eventric.

Stagera (AV / production)

There is no Stagera connector. Prefer UI CSV / XLSX (Crew, Jobs, warehouse inventory template). OpenAPI dumps are a customer export aid, not a Soundcheck connector. Full detail: Coming from Stagera.

LASSO / Shoflo (labor + rundowns)

There is no LASSO / Shoflo connector. LASSO ops CSVs have no fixed public column dictionary (use customer headers, Zapier, or swagger). Shoflo: rundown Export → CSV (Default Rundown headers documented on the Coming-from page). Full detail: Coming from LASSO / Shoflo. ShowOps / Umbrella stay BYO until a dump exists.

Wizard steps

1

Parse

Upload or paste. The wizard detects the format, normalizes headers, and samples rows for mapping. While a commit is in flight, the job is locked. Re-parses wait until commit finishes.
2

Map

Mapping is required before preview. The wizard proposes column → field mappings (heuristic match, or optional AI mapping with PII scrubbed before any model call). Review every required field, ignore columns you do not need, and save a template if you will reuse this shape. For Events with one gig across several crew rows, set Row grouping = group_by_external_id.
3

Preview

Dry-run before anything is written. You can search, filter, and page through every row to see create vs update vs duplicate vs error (including row-level notes). Counts here match what Commit will attempt for that target. Notes such as “crew without email or phone” do not block the gig itself. The invitation is simply skipped.
4

Commit

Write the records. Each row gets an outcome you can audit (IMPORTED, UPDATED, DUPLICATE, FAILED, and related statuses).

When a row is bad

Behavior depends on whether partial-commit shipping (pull request 1446) is live in your environment.

Until partial commit is on DEV / production

Today on environments that have not shipped that change yet:
  • Preview treats blocking row errors as a hard stop.
  • Import now stays disabled with “Fix the row errors above before importing.”
  • A single bad row blocks the whole file. Fix or remove the bad rows, then preview again.

After partial commit ships

Once that release is on your environment, expect:
  • Valid rows can commit even when other rows fail validation.
  • Rows the preview flagged as errors are skipped, and the job still finishes as committed. The Done step shows how many rows were imported, skipped, and failed.
  • The job finishes as PARTIAL only when a row the preview accepted could not be written during the import. A PARTIAL job cannot be imported again; its written rows stay as they are.
  • You can download an error CSV with the original cells plus a reason, fix those rows, and upload it as a new import with just the corrections.
Do not assume partial commit is live yet. Confirm with your contact or check whether Import now still requires a clean preview. Until then, treat one bad row as blocking the whole upload.

Leads

A HubSpot-style export with only name / email / date / company is not enough for leads here. Required fields include:
  • Event type
  • Location
  • Deal stage
(plus the usual contact and date fields the mapper marks required) If required columns are missing, use the mapping step to:
  • Set a default for a required Soft field when every row should share a value
  • Choose Don’t import / ignore for columns you intentionally skip
  • Download the lead template CSV from the wizard and reshape your file
Re-importing the same email + event date updates the existing lead instead of creating a duplicate.
Working the Leads pipeline after import requires a Team or Enterprise plan. Pro and Free do not include Leads in the product UI.

After commit: start running

Imports are only useful if you leave the wizard and run the business. After a successful commit:

Events → gigs

Open Gigs (/gigs). Your imported shows appear in the list. Open a gig to see team, venue, client, and dates: the same detail surface as a hand-created gig. Continue with Creating gigs and Team building for day-to-day changes.

Crew → invitations

Imported crew become organization members. New emails receive org invitations; people accept in the app (web or mobile). Claimed emails are left alone on re-import. See Staff and Invitations. Crew (MEMBER) import requires email in the spreadsheet wizard today. Phone-only roster rows fail. On an Events import, nested invitations may still note “crew without email or phone” without blocking the gig itself.

Venues and clients

Imported rooms and customers are available when you create or edit gigs, and when a later Events import matches names. Manage them under Venues and Clients.

Songs and setlists → Show Prep

Imported songs land in the song library; setlists attach to your catalog. Use them from Song library and Setlists / Show Prep on the gig. Spreadsheet Songs mapping has no live CCLI column today.

Leads → pipeline

Open Business → Leads (Team / Enterprise) to work stages and convert bookings. See Lead tracking and Converting leads.

Confidence check: re-import the same file

Upload the same spreadsheet again. Preview should show 0 new rows and only updates (or unchanged). That proves natural keys held. Safe to re-send a corrected export later without forking your data.

Sample files (in the repo)

These live under docs/sample-imports/ in the repository. Filenames below are repo paths, not necessarily the download names shown in the in-app template buttons. Import org lists first (Crew → Venues → Clients → Songs → Setlists), then events. Several of the primitive samples include intentional bad rows so you can practice the error path.

Addressable channel requirement

An invitation needs a way to reach the person: at least one of email or phone. Missing both does not block writing the gig; the invitation is skipped and Preview calls that out as a note. Standalone Crew import still requires email on each roster row.

Export this organization

Owners and admins with imports enabled can download the eight catalogs from Settings → Organization → Data. The zip has UEF JSON plus wizard-ready CSVs. Restore the CSVs by dropping csv/*.csv on Organization → Imports. Commit the JSON from Settings → Organization → Data. See Export a workspace.

Export a workspace

Soundcheck → Soundcheck zip: UEF JSON plus drop-first CSVs

Coming from another system

Planning Center, Back On Stage, Master Tour, Stagera, or LASSO: export CSV, then Organization → Imports

Importing your season

Spreadsheet + paperwork + sync recipe for a full book of business

Assets

Organization documents

Universal Event Format

Schema reference for partner feeds. Not required for spreadsheet operators

AI file ingestion

Extract records from contracts and call sheets