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 callGET /crm/contact?provider=hubspot (or GET /accounting/invoice?provider=quickbooks-online), the API:
- Fetches raw data from the provider
- Applies field mappings to transform provider fields to the unified schema
- Returns the data in the unified format
Viewing Mappings
Retrieve the active field mappings for a provider: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.
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. Passcreated_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 adirection 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 theGET /field-mappings endpoint to see the effective mappings (with your org’s overrides applied).