Documentation Index
Fetch the complete documentation index at: https://docs.routemcp.io/llms.txt
Use this file to discover all available pages before exploring further.
Each CRM provider stores data differently — HubSpot calls it firstname, Zoho uses First_Name, Pipedrive uses first_name. The RouteMCP API normalizes all of these into a unified schema so you always get consistent field names regardless of the provider.
How It Works
When you call GET /crm/contact?provider=hubspot, the API:
- Fetches raw data from HubSpot
- Applies field mappings to transform HubSpot fields to the unified schema
- Returns the data in the unified format
HubSpot: { "firstname": "Jane", "lastname": "Doe" }
↓ field mapping
Unified: { "first_name": "Jane", "last_name": "Doe" }
Viewing Mappings
Retrieve the active field mappings for a provider:
curl https://api.routemcp.io/api/v1/field-mappings?provider=hubspot&resource=contact \
-H "Authorization: Bearer sk_live_your_api_key"
Response:
{
"success": true,
"data": [
{
"standardKey": "contacts:v1:first_name",
"unifiedField": "first_name",
"providerField": "firstname",
"direction": "bidirectional",
"transform": null
},
{
"standardKey": "contacts:v1:email_addresses",
"unifiedField": "email_addresses",
"providerField": "email",
"direction": "bidirectional",
"transform": null
},
{
"standardKey": "contacts:v1:account",
"unifiedField": "account",
"providerField": "company",
"direction": "read",
"transform": null
}
]
}
CRM Unified Schema
| Unified Field | Type | Description |
|---|
id | string | Provider-specific record ID |
first_name | string | First name |
last_name | string | Last name |
account | string | Associated company/account ID (provider-native) |
owner | string | Provider-native ID of the record owner |
addresses | array | List of addresses (street_1, street_2, city, state, postal_code, country, address_type) |
email_addresses | array | List of email addresses (email_address, email_address_type) |
phone_numbers | array | List of phone numbers (phone_number, phone_number_type) |
Leads
| Unified Field | Type | Description |
|---|
id | string | Provider-specific record ID |
first_name | string | First name |
last_name | string | Last name |
title | string | Lead title / job title |
company | string | Company name |
lead_source | string | Lead source |
status | string | Lead status: OPEN, CLOSED, UNQUALIFIED, QUALIFIED |
owner | string | Provider-native owner ID |
addresses | array | List of addresses |
email_addresses | array | List of email addresses |
phone_numbers | array | List of phone numbers |
converted_date | string | ISO 8601 date when lead was converted |
converted_contact | string | Provider-native ID of the converted contact |
converted_account | string | Provider-native ID of the converted account |
Deals
| Unified Field | Type | Description |
|---|
id | string | Provider-specific record ID |
name | string | Deal/opportunity name |
amount | number | Deal value |
currency | string | Currency code |
stage | string | Pipeline stage |
pipeline | string | Pipeline name or ID |
status | string | Deal status: open, won, lost |
probability | number | Win probability (0-100) |
close_date | string | Expected close date (ISO 8601) |
description | string | Deal description |
contact | string | Associated contact ID (provider-native) |
account | string | Associated company/account ID (provider-native) |
owner | string | Provider-native owner ID |
Meetings
| Unified Field | Type | Description |
|---|
id | string | Provider-specific record ID |
title | string | Meeting title |
description | string | Meeting notes/description |
start_time | string | Start time (ISO 8601) |
end_time | string | End time (ISO 8601) |
location | string | Meeting location |
meeting_url | string | Video conference URL |
status | string | Meeting status: scheduled, completed, cancelled, rescheduled |
attendees | array | List of attendees (email, name, status) |
contacts | array | Associated contact IDs (provider-native) |
organizer | string | Organizer name or email |
owner | string | Provider-native owner ID |
Companies
| Unified Field | Type | Description |
|---|
id | string | Provider-specific record ID |
name | string | Company name |
domain | string | Company website domain |
industry | string | Industry vertical |
description | string | Company description |
number_of_employees | number | Employee count |
phone | string | Main phone number |
website | string | Company website URL |
addresses | array | List of addresses (street_1, street_2, city, state, postal_code, country) |
annual_revenue | number | Annual revenue |
owner | string | Provider-native owner ID |
Notes
| Unified Field | Type | Description |
|---|
id | string | Provider-specific record ID |
content | string | Note body text |
contact | string | Associated contact ID (provider-native) |
account | string | Associated company/account ID (provider-native) |
opportunity | string | Associated deal/opportunity ID (provider-native) |
owner | string | Provider-native owner ID |
Tasks
| Unified Field | Type | Description |
|---|
id | string | Provider-specific record ID |
subject | string | Task subject line |
content | string | Task description |
status | string | Status: OPEN, CLOSED |
due_date | string | Due date (ISO 8601) |
completed_date | string | Completion date (ISO 8601, read-only) |
contact | string | Associated contact ID (provider-native) |
account | string | Associated company/account ID (provider-native) |
opportunity | string | Associated deal/opportunity ID (provider-native) |
owner | string | Provider-native owner ID |
Activities
| Unified Field | Type | Description |
|---|
id | string | Provider-specific record ID |
type | string | Activity type: call, email, other |
subject | string | Activity subject |
body | string | Activity description |
status | string | Status: scheduled, completed, cancelled |
start_time | string | Start time (ISO 8601) |
end_time | string | End time (ISO 8601) |
duration | number | Duration in minutes |
direction | string | inbound or outbound (for calls) |
contact | string | Associated contact ID (provider-native) |
account | string | Associated company/account ID (provider-native) |
opportunity | string | Associated deal/opportunity ID (provider-native) |
lead | string | Associated lead ID (provider-native) |
owner | string | Provider-native owner ID |
Pipelines (read-only)
| Unified Field | Type | Description |
|---|
id | string | Provider-specific pipeline ID |
name | string | Pipeline name |
is_active | boolean | Whether pipeline is active |
display_order | number | Display sort order |
stages | array | List of pipeline stages (id, name, display_order, probability, is_closed) |
Owners (read-only)
| Unified Field | Type | Description |
|---|
id | string | Provider-specific owner ID |
first_name | string | First name |
last_name | string | Last name |
name | string | Full name |
email | string | Email address |
is_active | boolean | Whether owner is active |
Appointments
| Unified Field | Type | Description |
|---|
id | string | Provider-specific record ID |
title | string | Appointment name or meeting subject |
description | string | Notes or additional information |
start_time | string (ISO 8601) | Scheduled start date and time |
end_time | string (ISO 8601) | Scheduled end date and time |
duration | number | Duration in minutes |
location | string | Physical address or location description |
meeting_url | string | Video conference link (Zoom, Google Meet, etc.) |
meeting_location_type | string | Location type: custom, zoom, google_meet, microsoft_teams, phone, in_person |
status | string | Appointment status: scheduled, confirmed, cancelled, completed, no_show |
calendar_id | string | Scheduling page or calendar ID |
calendar_name | string | Human-readable calendar/scheduling page name |
contact | string | Associated contact ID (provider-native) |
contact_name | string | Contact display name (enriched) |
contact_email | string | Contact email (enriched) |
owner | string | Provider-native owner ID |
owner_name | string | Owner display name (enriched) |
owner_email | string | Owner email (enriched) |
is_recurring | boolean | Whether the appointment recurs |
recurrence_rule | string | RRULE (RFC 5545) for recurring appointments |
remote_created_at | string (ISO 8601) | Record creation timestamp |
remote_updated_at | string (ISO 8601) | Last modification timestamp |
remote_id | string | Provider-native record ID |
Note: The appointment resource also has a special GET /crm/appointment/slots endpoint for fetching available time slots from scheduling pages. See the API Reference for details.
Mapping Direction
Each mapping has a direction that determines how data flows:
| Direction | Read (GET) | Write (POST/PUT/PATCH) |
|---|
bidirectional | Provider → Unified | Unified → Provider |
read | Provider → Unified | Ignored |
write | Ignored | Unified → Provider |
Custom Overrides
Organization admins can customize field mappings from the dashboard — changing which provider field maps to which unified field, adding custom mappings, or disabling specific fields. These overrides are automatically applied when you call the API.
Use the GET /field-mappings endpoint to see the effective mappings (with your org’s overrides applied).