Skip to main content

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:
  1. Fetches raw data from HubSpot
  2. Applies field mappings to transform HubSpot fields to the unified schema
  3. 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

Contacts

Unified FieldTypeDescription
idstringProvider-specific record ID
first_namestringFirst name
last_namestringLast name
accountstringAssociated company/account ID (provider-native)
ownerstringProvider-native ID of the record owner
addressesarrayList of addresses (street_1, street_2, city, state, postal_code, country, address_type)
email_addressesarrayList of email addresses (email_address, email_address_type)
phone_numbersarrayList of phone numbers (phone_number, phone_number_type)

Leads

Unified FieldTypeDescription
idstringProvider-specific record ID
first_namestringFirst name
last_namestringLast name
titlestringLead title / job title
companystringCompany name
lead_sourcestringLead source
statusstringLead status: OPEN, CLOSED, UNQUALIFIED, QUALIFIED
ownerstringProvider-native owner ID
addressesarrayList of addresses
email_addressesarrayList of email addresses
phone_numbersarrayList of phone numbers
converted_datestringISO 8601 date when lead was converted
converted_contactstringProvider-native ID of the converted contact
converted_accountstringProvider-native ID of the converted account

Deals

Unified FieldTypeDescription
idstringProvider-specific record ID
namestringDeal/opportunity name
amountnumberDeal value
currencystringCurrency code
stagestringPipeline stage
pipelinestringPipeline name or ID
statusstringDeal status: open, won, lost
probabilitynumberWin probability (0-100)
close_datestringExpected close date (ISO 8601)
descriptionstringDeal description
contactstringAssociated contact ID (provider-native)
accountstringAssociated company/account ID (provider-native)
ownerstringProvider-native owner ID

Meetings

Unified FieldTypeDescription
idstringProvider-specific record ID
titlestringMeeting title
descriptionstringMeeting notes/description
start_timestringStart time (ISO 8601)
end_timestringEnd time (ISO 8601)
locationstringMeeting location
meeting_urlstringVideo conference URL
statusstringMeeting status: scheduled, completed, cancelled, rescheduled
attendeesarrayList of attendees (email, name, status)
contactsarrayAssociated contact IDs (provider-native)
organizerstringOrganizer name or email
ownerstringProvider-native owner ID

Companies

Unified FieldTypeDescription
idstringProvider-specific record ID
namestringCompany name
domainstringCompany website domain
industrystringIndustry vertical
descriptionstringCompany description
number_of_employeesnumberEmployee count
phonestringMain phone number
websitestringCompany website URL
addressesarrayList of addresses (street_1, street_2, city, state, postal_code, country)
annual_revenuenumberAnnual revenue
ownerstringProvider-native owner ID

Notes

Unified FieldTypeDescription
idstringProvider-specific record ID
contentstringNote body text
contactstringAssociated contact ID (provider-native)
accountstringAssociated company/account ID (provider-native)
opportunitystringAssociated deal/opportunity ID (provider-native)
ownerstringProvider-native owner ID

Tasks

Unified FieldTypeDescription
idstringProvider-specific record ID
subjectstringTask subject line
contentstringTask description
statusstringStatus: OPEN, CLOSED
due_datestringDue date (ISO 8601)
completed_datestringCompletion date (ISO 8601, read-only)
contactstringAssociated contact ID (provider-native)
accountstringAssociated company/account ID (provider-native)
opportunitystringAssociated deal/opportunity ID (provider-native)
ownerstringProvider-native owner ID

Activities

Unified FieldTypeDescription
idstringProvider-specific record ID
typestringActivity type: call, email, other
subjectstringActivity subject
bodystringActivity description
statusstringStatus: scheduled, completed, cancelled
start_timestringStart time (ISO 8601)
end_timestringEnd time (ISO 8601)
durationnumberDuration in minutes
directionstringinbound or outbound (for calls)
contactstringAssociated contact ID (provider-native)
accountstringAssociated company/account ID (provider-native)
opportunitystringAssociated deal/opportunity ID (provider-native)
leadstringAssociated lead ID (provider-native)
ownerstringProvider-native owner ID

Pipelines (read-only)

Unified FieldTypeDescription
idstringProvider-specific pipeline ID
namestringPipeline name
is_activebooleanWhether pipeline is active
display_ordernumberDisplay sort order
stagesarrayList of pipeline stages (id, name, display_order, probability, is_closed)

Owners (read-only)

Unified FieldTypeDescription
idstringProvider-specific owner ID
first_namestringFirst name
last_namestringLast name
namestringFull name
emailstringEmail address
is_activebooleanWhether owner is active

Appointments

Unified FieldTypeDescription
idstringProvider-specific record ID
titlestringAppointment name or meeting subject
descriptionstringNotes or additional information
start_timestring (ISO 8601)Scheduled start date and time
end_timestring (ISO 8601)Scheduled end date and time
durationnumberDuration in minutes
locationstringPhysical address or location description
meeting_urlstringVideo conference link (Zoom, Google Meet, etc.)
meeting_location_typestringLocation type: custom, zoom, google_meet, microsoft_teams, phone, in_person
statusstringAppointment status: scheduled, confirmed, cancelled, completed, no_show
calendar_idstringScheduling page or calendar ID
calendar_namestringHuman-readable calendar/scheduling page name
contactstringAssociated contact ID (provider-native)
contact_namestringContact display name (enriched)
contact_emailstringContact email (enriched)
ownerstringProvider-native owner ID
owner_namestringOwner display name (enriched)
owner_emailstringOwner email (enriched)
is_recurringbooleanWhether the appointment recurs
recurrence_rulestringRRULE (RFC 5545) for recurring appointments
remote_created_atstring (ISO 8601)Record creation timestamp
remote_updated_atstring (ISO 8601)Last modification timestamp
remote_idstringProvider-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:
DirectionRead (GET)Write (POST/PUT/PATCH)
bidirectionalProvider → UnifiedUnified → Provider
readProvider → UnifiedIgnored
writeIgnoredUnified → 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).