CLI & MCP
Waymaker migrate
Migrate data into Waymaker from other platforms. Import contacts, tasks, documents, and other data from common business tools.
MigrationData Import
Last updated: January 21, 2026
Overview
Migrate data into Waymaker from other platforms. Import contacts, tasks, documents, and other data from common business tools.
Usage
waymaker migrate <source> [options]
Supported Sources
| Source | Description |
|---|---|
notion | Migrate from Notion workspaces |
asana | Migrate from Asana projects |
trello | Migrate from Trello boards |
monday | Migrate from Monday.com |
airtable | Migrate from Airtable bases |
hubspot | Migrate from HubSpot CRM |
salesforce | Migrate from Salesforce |
csv | Import from CSV files |
json | Import from JSON files |
Notion Migration
waymaker migrate notion \
--workspace <workspace-id> \
--token <notion-integration-token>
Output:
Notion Migration
Connected to: My Notion Workspace
Found: 15 databases, 234 pages
Select what to migrate:
[x] Databases → Tables
[x] Pages → Documents
[ ] Comments
Mapping:
"Projects" database → "Projects" table
"Tasks" database → "Tasks" taskboard
"Notes" pages → Documents
Proceed with migration? (y/n)
Interactive Mode
waymaker migrate notion --interactive
Migrate Specific Database
waymaker migrate notion \
--workspace ws_xxx \
--token $NOTION_TOKEN \
--database "database_id_here"
Asana Migration
waymaker migrate asana \
--workspace <workspace-id> \
--token <asana-token>
Output:
Asana Migration
Connected to: My Asana Workspace
Found: 8 projects, 450 tasks
Mapping:
"Q1 Sprint" project → "Q1 Sprint" taskboard
"Marketing" project → "Marketing" taskboard
Tasks will preserve:
- Assignees (matched by email)
- Due dates
- Subtasks → Checklists
- Comments
- Attachments
Proceed? (y/n)
Migrate Specific Project
waymaker migrate asana \
--workspace ws_xxx \
--token $ASANA_TOKEN \
--project "project_gid"
Trello Migration
waymaker migrate trello \
--workspace <workspace-id> \
--api-key <trello-api-key> \
--token <trello-token>
Output:
Trello Migration
Found: 5 boards
Board Mapping:
"Product Backlog" → "Product Backlog" taskboard
Lists → Statuses (To Do, In Progress, Done)
Cards → Tasks
Checklists → Task checklists
Labels → Task labels
Proceed? (y/n)
Airtable Migration
waymaker migrate airtable \
--workspace <workspace-id> \
--api-key <airtable-api-key> \
--base <base-id>
Output:
Airtable Migration
Connected to: My Base
Found: 6 tables
Field Type Mapping:
Single line text → text
Long text → longtext
Single select → select
Multiple select → multiselect
Number → number
Currency → currency
Date → date
Checkbox → checkbox
Link to another record → link
Attachment → attachment
Tables to migrate:
[x] Contacts (1,250 records)
[x] Companies (340 records)
[x] Deals (89 records)
Proceed? (y/n)
CSV Import
waymaker migrate csv \
--workspace <workspace-id> \
--file ./data.csv \
--table "Imported Data"
Output:
CSV Import
File: data.csv
Rows: 1,250
Columns: 8
Column Mapping:
"Name" → name (text)
"Email" → email (email)
"Phone" → phone (phone)
"Company" → company (text)
"Status" → status (select)
"Value" → value (currency)
"Created" → created_at (datetime)
"Notes" → notes (longtext)
Creating table: Imported Data
Proceed? (y/n)
Import to Existing Table
waymaker migrate csv \
--workspace ws_xxx \
--file ./new_contacts.csv \
--target-table tbl_contacts
Custom Column Mapping
waymaker migrate csv \
--workspace ws_xxx \
--file ./data.csv \
--table "Contacts" \
--mapping '{
"full_name": "name",
"email_address": "email",
"phone_number": "phone"
}'
JSON Import
waymaker migrate json \
--workspace <workspace-id> \
--file ./data.json \
--table "Imported Data"
JSON Format
[
{
"name": "John Smith",
"email": "john@company.com",
"status": "active"
},
{
"name": "Jane Doe",
"email": "jane@company.com",
"status": "lead"
}
]
HubSpot Migration
waymaker migrate hubspot \
--workspace <workspace-id> \
--api-key <hubspot-api-key>
Output:
HubSpot Migration
Connected to: My HubSpot Portal
Available Objects:
[x] Contacts (5,230 records) → Contacts table
[x] Companies (890 records) → Companies table
[x] Deals (234 records) → Deals table
[ ] Tickets (1,200 records)
Property Mapping:
HubSpot properties will be mapped to table fields
Custom properties will be preserved
Proceed? (y/n)
Salesforce Migration
waymaker migrate salesforce \
--workspace <workspace-id> \
--instance <salesforce-instance-url> \
--token <salesforce-token>
Migration Options
Dry Run
Preview migration without making changes:
waymaker migrate notion \
--workspace ws_xxx \
--token $NOTION_TOKEN \
--dry-run
Output:
DRY RUN - No changes will be made
Would create:
- 3 tables
- 15 documents
- 1,250 records total
Run without --dry-run to proceed.
Verbose Output
waymaker migrate csv \
--workspace ws_xxx \
--file ./data.csv \
--verbose
Skip Errors
Continue migration even if some records fail:
waymaker migrate airtable \
--workspace ws_xxx \
--api-key $AIRTABLE_KEY \
--base base_xxx \
--skip-errors
Options Reference
Common Options
| Option | Type | Description |
|---|---|---|
--workspace | string | Required. Target workspace ID |
--dry-run | flag | Preview migration without changes |
--verbose | flag | Show detailed progress |
--skip-errors | flag | Continue on record errors |
--interactive | flag | Interactive mapping mode |
--json | flag | Output results as JSON |
Source-Specific Options
notion
| Option | Type | Description |
|---|---|---|
--token | string | Required. Notion integration token |
--database | string | Specific database ID to migrate |
asana
| Option | Type | Description |
|---|---|---|
--token | string | Required. Asana personal access token |
--project | string | Specific project GID to migrate |
trello
| Option | Type | Description |
|---|---|---|
--api-key | string | Required. Trello API key |
--token | string | Required. Trello token |
--board | string | Specific board ID to migrate |
airtable
| Option | Type | Description |
|---|---|---|
--api-key | string | Required. Airtable API key |
--base | string | Required. Base ID to migrate |
--table | string | Specific table to migrate |
csv/json
| Option | Type | Description |
|---|---|---|
--file | string | Required. Path to import file |
--table | string | New table name |
--target-table | string | Existing table ID to import into |
--mapping | string | Column mapping as JSON |
AI Agent Workflow
# Analyze source data
waymaker migrate csv \
--workspace ws_xxx \
--file ./data.csv \
--dry-run \
--json
# Migrate with AI-generated mapping
MAPPING=$(echo "$AI_COLUMN_ANALYSIS")
waymaker migrate csv \
--workspace ws_xxx \
--file ./data.csv \
--table "AI Imported" \
--mapping "$MAPPING"
# Batch migration
for file in ./exports/*.csv; do
TABLE_NAME=$(basename "$file" .csv)
waymaker migrate csv \
--workspace ws_xxx \
--file "$file" \
--table "$TABLE_NAME" \
--skip-errors
done
# Verify migration
TABLES=$(waymaker tables list --workspace ws_xxx --json)
echo "Migrated $(echo $TABLES | jq 'length') tables"
Post-Migration Steps
After migration, verify your data:
# Check table record counts
waymaker tables list --workspace ws_xxx
# Verify specific table
waymaker tables get tbl_xxx --json | jq '.record_count'
# Query migrated data
waymaker tables query tbl_xxx --filter '{}' --limit 10
Related Commands
- tables - Manage tables after migration
- taskboards - Manage migrated taskboards
- docs - Manage migrated documents
- connections - Set up ongoing integrations