Skip to main content
The Method CRM integration is available on the Pro plan. One Method connection per organization.

Overview

Method CRM is a QuickBooks-native CRM. When connected to Bodha Route Planner, your invoices and sales orders flow automatically into the Orders Inbox — ready to be planned into routes. What this integration does:

How it works

  1. You enter your Method CRM API key in Bodha Route Planner
  2. You pick which table holds your deliverable work (Invoice, SalesOrder, etc.)
  3. You set a filter to narrow the pull to relevant records (e.g. only unpaid invoices, only this week’s orders)
  4. Bodha Route Planner samples a real record from that table and shows you every field
  5. You map Method fields to Bodha Route Planner fields (address, name, phone, etc.)
  6. Bodha Route Planner pulls new and updated records on a schedule (default: every 15 minutes)
  7. Orders land in your inbox, geocoded and ready to add to routes
  8. After delivery, the outcome is written back to your Method record

Setup

1

Get your Method CRM API key

In Method CRM, go to Integrations → API and generate a new API key. Copy it — you’ll paste it in the next step.
The API key gives Bodha Route Planner access to read your records and (optionally) write delivery status back. It does not give access to modify financial data.
2

Connect in Bodha Route Planner

  1. Go to Integrations in the main navigation
  2. Find Method CRM and click Connect
  3. Give the connection a name (e.g. “Method Invoices”)
  4. Paste your Method API key
  5. Click Test Connection — Bodha Route Planner verifies it can reach your account
3

Choose the source table

Select which Method table holds the work you want to deliver:
  • Invoice — Most common. QuickBooks invoices synced through Method.
  • SalesOrder — Sales orders, if your workflow uses those instead.
  • Custom table — Any table you’ve created in Method that holds deliverable work.
You must have at least one record in the selected table. Method has no metadata endpoint, so Bodha Route Planner reads a real record to discover your fields. An empty table can’t be mapped.
4

Set a filter

A filter narrows the pull to records that are actually ready for delivery. Without a filter, the first sync would pull your entire history.Example filters:
  • IsPending eq true — Only open/unpaid invoices
  • DueDate ge 2026-10-01 — Invoices due after a date
  • Status eq 'Open' — Only open records
Filter syntax follows OData conventions. Method’s documentation has the full filter reference for each table.
5

Map your fields

Bodha Route Planner reads a real record from your table and shows you every field with a sample value. Map each one to the corresponding Bodha Route Planner field:
Fallback fields: You can map multiple fields separated by commas, and the first non-empty one wins. For example, map Address to ShipAddressLine1,BillAddressLine1 — if the shipping address is empty, the billing address is used instead.
6

Preview and confirm

Click Preview to see what the first few records will look like as orders. Check that addresses, names, and details look correct. If something is wrong, adjust the mapping and preview again.When you’re happy, click Save. The first sync starts within the configured interval.

Sync settings

You can also trigger a sync manually at any time by clicking Sync Now on the integration page.

Write-back (delivery status)

When write-back is enabled, Bodha Route Planner writes the delivery outcome back to the Method record after a driver completes or fails a stop.

What gets written

Setting up write-back

  1. In the integration settings, map your write-back fields — choose which Method field each value should be written to
  2. Click Verify Write-back — Bodha Route Planner writes a test value to a real record, reads it back to confirm it landed, then restores the original value
  3. If verification passes, write-back is enabled
Why verification is required: Method’s API accepts field names it doesn’t recognize and returns a success response — but writes nothing. A misspelled field name is silently ignored. The verification step catches this by actually checking the value landed. Without it, you could have write-back “working” for months while nothing is actually updated.

Protected fields

Bodha Route Planner refuses to write to fields that belong to your accounting system. These include:
  • Financial fields: Amount, Balance, SubTotal, TaxTotal, Total, Currency
  • Reference fields: RefNumber, InvoiceNumber, DocNumber, DueDate, TxnDate
  • Status fields: IsPending, IsDeleted, IsActive, Status
  • Customer/entity references
  • Ship-to and bill-to address blocks
This protection exists because Method is a two-way QuickBooks front-end. Writing to an accounting-owned field could propagate into your actual QuickBooks file.

Customer enrichment

When a Method record has a Customer_RecordID, Bodha Route Planner looks up that customer’s full contact details (name, phone, email) from Method’s Customer table. This happens automatically during sync. The enrichment fills in gaps — if the invoice itself carries a shipping name and phone, those take priority. The customer lookup only supplies what’s missing. This is batched efficiently: one request per page of records, not one per order — so it won’t burn through your Method API budget.

Rate limits and API budget

Method CRM has a 100 requests per minute budget shared across your entire account — including Method’s own UI, other integrations, and Bodha Route Planner. Bodha Route Planner is designed to work within this:
  • Records are fetched in pages of 100 (Method’s maximum)
  • Up to 2,000 records per sync cycle (20 pages)
  • Customer enrichment is batched (one request per 40 customers)
  • If rate limited, Bodha Route Planner waits and retries automatically
  • Only one Method connection per organization (to prevent double-polling)

Deletion detection

Method has no deletion webhook and no “IsDeleted” field on Invoice records. If someone deletes an invoice in Method, Bodha Route Planner has no way to know through normal polling. To handle this, Bodha Route Planner runs a periodic reconciliation sweep — it reads all current record IDs from Method and compares them against what’s in the inbox. Orders whose source record no longer exists are flagged.
The reconciliation sweep runs hourly, separate from the regular sync. If your table has more than 2,000 records matching the filter, narrow the filter to ensure the sweep can complete.

Troubleshooting

Your API key is invalid or has been regenerated.
  1. Go to Integrations → API in Method CRM
  2. Generate a new API key
  3. In Bodha Route Planner, edit the Method integration and paste the new key
  4. Click Test Connection
The table name in your integration settings doesn’t match any table in your Method account.
  • Table names are case-sensitive in Method
  • Check the exact spelling in Method CRM’s admin panel
  • Common tables: Invoice, SalesOrder, Estimate
Bodha Route Planner discovers fields by reading a real record. If the table has zero records, there’s nothing to read.
  • Create at least one record in Method CRM
  • Or choose a different table that already has records
All fields failed: The field names don’t match what exists in your Method account. Field names are case-sensitive — “deliverystatus” is not the same as “DeliveryStatus”. Use the sample fields to check the exact names.Some fields failed: The ones that failed are misspelled or don’t exist on the selected table. The ones that passed are working correctly.“Fields belong to your accounting system”: You tried to write to a protected field (Amount, Balance, RefNumber, etc.). Choose a custom field for write-back instead.
The address couldn’t be geocoded. Check:
  • Is the address field mapped correctly?
  • Does the record have an actual delivery address (not a billing address or P.O. box)?
  • Are address components (city, state, postcode) mapped?
Open the order, fix the address, and save — it will be re-geocoded.
Check the integration status on the Integrations page:
  • Error state: Click Test Connection to see the error message. Usually an expired or regenerated API key.
  • Connected but no new orders: The filter may be too narrow, or there are no new/updated records since the last sync.
  • Click Sync Now to trigger an immediate pull and check the result count.
Method records are deduplicated by their RecordID. Duplicates should not occur for the same table. If you see duplicates:
  • Check if you have orders from both Invoice and SalesOrder for the same customer (these are separate records with separate IDs)
  • Ensure you’re not importing the same data through a second source (e.g. also importing via CSV)

Limits