Bringing your data into Wedding Computer
For a whole contact list, start with a CSV, TSV or JSON export: confirm the column mapping and preview before anything is written. You can also paste text for AI-assisted extraction, post one lead at a time to the API, or use a supervised MCP assistant for individual dated bookings. This guide explains the limits of each path.
Imported contacts become plain-text Markdown records you can access through supported sync paths. Account exports can include authorised Markdown and JSON as a portable reference archive, but the ZIP is not a one-click restore format.
Let an AI agent read your old CRM (no export needed)
If an AI assistant can see your browser and connect to Wedding Computer’s MCP server, it can help move one dated booking at a time. Have it show you the names, participant email, wedding date and other fields before you approve add_or_import_booking. This is a supervised Pro workflow, not an unattended bulk importer.
Screen reading can be slower and less reliable than a reviewed file export, so use it when the old system has no useful export or when you need detail that the export omits. Keep the source account signed in yourself, review every proposed write, and check the result in Wedding Computer before continuing.
1. Connect the MCP server
In your assistant, add Wedding Computer’s MCP server (https://wedding.computer/mcp) with your integration token from Settings → Calendar & contacts → Advanced integrations. MCP is a Pro feature.
2. Open your old CRM
Log into your existing CRM in a browser the agent can control — for example Claude in Chrome, or ChatGPT in agent mode — and leave your client list open.
3. Review one booking
Ask it to read the first dated booking, show you the parsed record, and wait. After you approve it, it can call add_or_import_booking. Check the contact and wedding before starting the next one.
Example prompt
I’m logged into my old CRM in this browser tab. Start with the first booking
only. Read the names, participant emails, phone numbers, wedding date, venue
and status, then show me exactly what you plan to send. After I approve it,
use add_or_import_booking. Stop on any conflict or ambiguous field. Do not move
to the next booking until I have checked the result in Wedding Computer.Start with one booking, not a whole page. Confirm the primary email and real wedding date before approving the write.
The booking tool accepts booked or completed. It matches within your business using the wedding date plus either participant email and stops for review when existing details conflict.
For run sheets, packages or notes on a specific wedding, point it at the relevant page and the other MCP tools below.
Import a file (contacts)
The file importer brings in contacts from CSV, TSV or JSON, including supported contact and project-list exports from major wedding CRMs. It can optionally create a basic wedding workspace and calendar booking for booked or completed contacts with a valid date. It does not import invoices, payments, contracts or timelines.
Open Contacts → Import (or /app/import), pick where the data is coming from, and follow four steps:
1. Upload
Drop in a CSV, TSV or JSON file up to 10 MB. We auto-detect the delimiter and strip stray spaces and byte-order marks.
2. Map columns
We match your column headers to our fields automatically (with built-in presets for common CRMs). You confirm or adjust each one. Columns we don’t recognise are kept as extra detail, never silently dropped.
3. Preview
See the first few rows exactly as they’ll be saved before anything is written. You can also tick a box to auto-create a wedding for any booked or completed contact that has a date.
4. Import
We create the contacts and show you a summary: how many imported, skipped, or failed — with the row number and reason for anything that didn’t go through.
What we accept
Your file can use any column names — the importer maps them to the fields below. A row needs at least a first name; everything else is optional but maps cleanly when present.
These match the core fields used by contact Markdown, so individual files can round-trip through vault sync. The account ZIP itself is a reference archive, not an importer input.
Required fields
| Field | Type | Description |
|---|---|---|
| first_name | text | Required. The contact’s first name. |
| last_name | text | Strongly recommended. The contact’s last name (or family name). |
Optional fields
| Field | Type | Description |
|---|---|---|
| text | Email address. Syntax is validated before import; invalid rows are shown in preflight and are not written. | |
| phone | text | Phone number, in any format (+, spaces, brackets all fine). |
| partner_first_name | text | The partner’s first name. |
| partner_last_name | text | The partner’s last name. |
| partner_email | text | The partner’s email address. |
| partner_phone | text | The partner’s phone number. |
| address | text | Postal or street address. |
| text | Instagram handle (with or without the @). | |
| text | Facebook profile or page. | |
| tiktok | text | TikTok handle. |
| website | text | Website URL. |
| wedding_date | date | Wedding date — see the date formats we accept below. |
| wedding_location | text | Wedding venue or town. |
| source | text | Where the lead came from (e.g. website, referral, expo). Defaults to “import”. |
| status | enum | Pipeline status — normalised to our set, see below. |
| notes | text | Free-text notes — kept as the body of the contact file. |
| created_at | date/time | The original date the lead was created, so your history is preserved. Accepts an ISO timestamp or a plain date. |
Only a first name is strictly required — a row with no last name still imports. Any column you don’t map to a field below is preserved as “extra detail” on the contact rather than discarded.
A sample CSV
Headers can be in any order and any wording — these are just clear examples. Wrap any value that contains a comma in quotes.
First name,Last name,Email,Phone,Partner first name,Wedding date,Wedding location,Status,Instagram,Notes
Sarah,Smith,sarah@example.com,0400 123 456,James,2026-12-15,"Byron Bay, NSW",Booked,@sarahandjames,"Met at the expo — wants an elopement"
Tom,Nguyen,tom@example.com,0400 222 333,,2026-09-05,Melbourne,Enquiry,,"Asked about pricing"Two contacts: one booked with a wedding date, one new enquiry.
Status values
We store one of eight statuses. Whatever your CRM calls a stage, we map common wordings to ours:
new ← lead, inquiry, enquiry, prospect, pending
contacted ← follow up, responded, replied
meeting ← in progress, consultation
quoted ← proposal, proposal sent, quote, quote sent
booked ← confirmed, hired, active, won
completed ← closed, done, finished, delivered
lost ← declined, rejected, not booked, cancelled
archived ← inactive, old
Anything we don’t recognise is flagged in preview, safely normalised to "new", and preserved as the original pipeline status.Dates
Wedding and birthday dates accept ISO (2026-12-15), numeric dates, month names (15 December 2026), and two-digit years. For ambiguous numeric dates, choose DMY or MDY on the mapping screen and confirm the interpretation in the preview.
Unparseable wedding or birthday text remains visible in the preview but is saved as a blank date. An invalid original-created timestamp uses the import time instead. Impossible dates never create a wedding workspace or calendar booking.
Coming from another CRM
Pick your CRM on the import screen and we apply a tailored column map. Here’s how to get the export file out of each:
Dubsado
Projects → choose a status or filter → Export / Export CSV → select client and project fields → download CSV. Review custom field headings during mapping.
Studio Ninja
Clients → Export clients downloads a supported CSV. Leads/Jobs exports are broader ZIP archives and cannot be imported directly; prepare a standalone CSV first.
HoneyBook
Clients → Contacts tab → ⋯ menu → Download spreadsheet. Column names vary by account; our fuzzy matcher handles it.
VSCO Workspace (formerly Táve)
Any list (Leads, Jobs, or Address Book) → Export, choosing “all columns” for the best result.
Any CSV / JSON
Any spreadsheet works — export to CSV or JSON, upload, and map the columns yourself. We remember nothing proprietary; it’s just your data.
Good to know
Files up to 10 MB. Large files import in batches with a progress bar.
Imports detect existing contacts by email, phone, or matching names and wedding date, then skip them for review rather than overwriting them. Imports never update existing contacts automatically.
The file importer handles contacts and, when you opt in, basic wedding workspaces for eligible booked or completed rows. Invoices, payments, contracts, forms and timelines still need to be recreated or brought in through their supported app workflows.
Paste text and let AI extract it
Don’t have a clean spreadsheet? On the import screen choose “Paste text”, then paste copied text from an email, a list, a web page, or another source. Our AI pulls names, emails, phones, dates, and venues into structured contacts.
The extracted columns go through the same mapping and preview flow before anything is saved. Check ambiguous names, dates and statuses carefully; use the non-AI file path whenever you already have a clean export.
Import via MCP (AI agents & automations)
Wedding Computer runs an MCP server at https://wedding.computer/mcp. Connect Claude or any MCP client with your integration token (Settings → Calendar & contacts → Advanced integrations) and an agent can create data on your behalf in natural language. MCP is a Pro feature.
These are the write tools an agent uses to bring data in:
add_or_import_booking
Create or safely match one dated booking with add_or_import_booking. It requires first name, last name, primary email and wedding date; existing non-empty details are preserved and conflicts are returned for review.
update_run_sheet
Replace or upsert a whole run sheet for a wedding in one call — a list of timeline items with times, locations, who, and category.
save_timeline_item
Add or edit a single timeline item, including relative timing like “30 minutes before sunset”.
update_wedding_todo
Set a wedding’s checklist from a markdown task list.
append_wedding_note
Append to the shared, vendors-only, or private note on a wedding.
propose_timeline_change
Change core wedding fields (date, times, locations). Applied immediately if you control the timeline, otherwise sent for the planner’s approval.
Example prompts
Talk to your agent in plain language — it picks the right tool. A few that work well:
Review dated bookings one at a time → add_or_import_booking
Review and import these bookings one at a time with add_or_import_booking. Show me each parsed record before writing it:
1. Sarah & James Smith — sarah@example.com — 0400 123 456 — wedding 15 Dec 2026, Byron Bay
2. Tom Nguyen & Riley Chen — tom@example.com — wedding 8 Nov 2026, Daylesford
3. Alex Lee & Morgan Jones — alex@example.com — wedding 24 Oct 2026, MelbourneBuild a run sheet from a venue email → update_run_sheet
Here's the run sheet the venue sent for the Smith wedding (id abc123). Update the timeline:
- 12:00 Guest arrival — The Old Chapel
- 14:30 Ceremony — The Old Chapel — category ceremony
- 16:00 Couple portraits — East Garden — category portraits
- 17:30 Reception dinner — The Marquee — category receptionAdd an item timed to the sun → save_timeline_item
For the Smith wedding (abc123), add "Golden hour portraits":
30 minutes before sunset, 60 minutes long, at the East Garden, assigned to me.Set a checklist → update_wedding_todo
Set the checklist for the Smith wedding (abc123):
- [ ] Confirm coverage hours
- [x] Send deposit invoice
- [ ] Final timeline review 3 days beforeApply a date change → propose_timeline_change
The Smith wedding moved a week. For abc123 set date 2026-12-22 and ceremony time 15:00.
(I'm the planner, so apply it.)The JSON intake API
For webhooks, Zapier, or your own forms, POST a lead to /api/v1/enquiries with your enquiry intake key (Settings → Enquiry form). Same fields as a contact; a Pro feature.
Each call creates one lead and returns its id and status.
curl -X POST https://wedding.computer/api/v1/enquiries \
-H "Authorization: Bearer YOUR_ENQUIRY_KEY" \
-H "Content-Type: application/json" \
-d '{
"first_name": "Sarah",
"last_name": "Smith",
"email": "sarah@example.com",
"phone": "0400 123 456",
"partner_first_name": "James",
"wedding_date": "2026-12-15",
"wedding_location": "Byron Bay, NSW",
"notes": "Wants an elopement"
}'Import via the open markdown format
Because your data lives as plain-text markdown, you can write contact and wedding files directly — by hand, from a script, or through the Obsidian plugin — and sync them in via the vault API (PUT /vault/v1/file/…). This is the highest-fidelity path: every field round-trips exactly.
The file format is documented field-by-field on the open standard page. An individual contact Markdown file can round-trip through the vault API with its supported fields intact; this is separate from downloading the account reference ZIP.
Does this line up with exporting?
Individual Markdown files can be edited and written back through the vault API with their supported fields intact. Account → Export instead downloads a portable reference ZIP with JSON, authorised Markdown, and uploads; it is not a one-click restore package.
The CSV file importer is a little different on purpose — it’s built for moving in from another CRM, so it focuses on contacts and the fields above. It now accepts the same core contact fields the export emits (including address and social handles), with anything else preserved as extra detail.
Weddings, invoices, and calendar events are included as reference data where you are authorised to access them. Restoring or importing them requires a supported app or vault path; calendar feeds (iCal, CalDAV, and CardDAV) are read-only by design.
Ready to bring your data over?
Start free, import your contacts in minutes, and keep every byte as plain text you own.