Skip to main content
Each provider stores data differently — HubSpot calls it firstname, Zoho uses First_Name, Pipedrive uses first_name. On the accounting side, QBO calls an invoice number DocNumber while another provider uses invoiceNumber. 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 (or GET /accounting/invoice?provider=quickbooks-online), the API:
  1. Fetches raw data from the provider
  2. Applies field mappings to transform provider fields to the unified schema
  3. Returns the data in the unified format

Viewing Mappings

Retrieve the active field mappings for a provider:
Response:

Provider-specific fields via integration_params

The unified schema covers the canonical surface — fields that map cleanly across every supported provider. But many providers expose extra fields that only matter in their own ecosystem (QBO’s Type discriminator on Item creates, Zoho’s ignore_auto_number_generation query flag, Zoho’s billing_type + rate on Project, etc.). Those don’t belong in the canonical schema, but you still need a way to set them. integration_params is the escape hatch: a free-form object on any write body that merges directly onto the provider request alongside the field-mapped fields. Provider-specific keys win over any canonically-derived field with the same name.
Some keys are URL-bound rather than body-bound (Zoho’s ignore_auto_number_generation is a query flag). The adapter lifts those out of integration_params and onto the URL automatically — you pass them the same way regardless. URN-shaped values inside integration_params are stripped down to bare provider ids before the outbound request, so it’s safe to round-trip URNs from list/get responses. See each integration’s provider page for the list of supported integration_params keys.

CRM Unified Schema

Contacts

Leads

Deals

Meetings

Companies

Notes

Tasks

Activities

Pipelines (read-only)

Owners (read-only)

Appointments

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.

Accounting Unified Schema

Every accounting resource carries a standard envelope (id, remote_id, created_at, modified_at, remote_was_deleted) plus its resource-specific fields. Embedded sub-types like Address and Phone Number drop the envelope when nested.

Invoice

Contact (Accounting)

Account

Payment

Item

Journal Entry

Expense

Purchase Order

Sales Order

Credit Note

Vendor Credit

Tax Rate

Tracking Category

Accounting Period

Payment Method

Payment Term

Company Info

Employee

Project

Attachment

Expense Report

Item Fulfillment

Financial reports (read-only)

The three financial-report resources are generated on-demand from the provider — they are read-only and do not have stored records. Pass created_after / created_before query params to drive the report’s start/end dates.

Balance Sheet

Income Statement

Cash Flow Statement

Other read-only accounting resources

general_ledger_transaction, transaction, bank_feed_account, bank_feed_transaction, address, phone_number — see the API Reference for full field details. These are list/get-only.

Mapping Direction

Each mapping has a direction that determines how data flows:

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).