Integrations overview

Every external system CargoSurge connects to and how to wire each one up.

3 min readLast updated 13 Apr 2026

CargoSurge integrates with the external systems most forwarders already run — accounting, e-commerce, carrier tracking, email, payments. Integrations live under Settings → Integrations.

Overview

Supported integrations in the current version:

  • Stripe — platform billing (your CargoSurge subscription) and customer payments (collect from your customers via public quote links).
  • Zoho Books — two-way sync of customers, vendors, invoices, payments.
  • QuickBooks Online — same scope as Zoho, US/UK/CA variant.
  • Shopify — inbound orders become WMS outbound requests.
  • WooCommerce — same as Shopify for the WP ecosystem.
  • Microsoft 365 / Google Workspace — inbox ingestion for Smart Quotes (emails → draft quotations via AI).
  • Terminal49 — ocean carrier tracking (MBL / container-level events).
  • CargoAi — air cargo tracking (MAWB-level events).
  • Teltonika — driver telematics (GPS, speed, fuel).
  • Resend — outgoing email deliverability (used by the platform itself; tenant-level email uses your own Microsoft / Google account).

Each integration has an on/off toggle, a credential form, a sync preview, and a run-log.

Common setup pattern

  1. Go to Settings → Integrations and pick the integration you want.
  2. Follow the OAuth / API-key flow specific to that provider (each integration page has per-provider instructions).
  3. Run a Sync Preview — dry-runs the first sync and shows what would happen without actually writing data.
  4. Review the preview carefully. Correct any mapping issues (e.g. unmatched tax codes, missing charge-code equivalents).
  5. Start Sync — commits the first sync. Subsequent syncs run incrementally on schedule.
  6. Watch the Run Log for errors. Most first-sync issues are mapping-related and resolved by adjusting master data.

Data flow direction

Each integration has a default direction:

  • Zoho / QuickBooks — two-way. Customers and invoices flow in both directions. Payment allocations flow from the accounting system back to CargoSurge.
  • Stripe (tenant billing) — inbound only. CargoSurge doesn't push anything to Stripe other than subscription changes; Stripe pushes webhook events.
  • Stripe (customer payments) — outbound (we create Stripe customers / payment intents on your behalf) and inbound (webhook events).
  • Shopify / WooCommerce — inbound only. Orders come in; CargoSurge doesn't push back fulfilment status (that's a Tier 2 follow-up).
  • Terminal49 / CargoAi — inbound only. Carrier events arrive as webhooks and update your bookings / shipments.
  • Microsoft / Google email — inbound only. The platform reads new emails; never sends on your behalf.

Mapping setup

Before the first sync, map:

  • Customers — by email or legal name. Typically auto-matches; CargoSurge flags ambiguous ones for your review.
  • Vendors — similar.
  • Chart of accounts — map your CargoSurge ledger accounts to the external system's account IDs. Required for accurate sync.
  • Tax codes — match your CargoSurge tax codes to the external system's names (e.g. "VAT 5%" → Zoho's "Standard Rate (5%)").
  • Currencies — 1:1 map; foreign currencies already in your external system carry over.

The mapping UI lives on each integration's detail page — you can rework it anytime.

Run logs & drift detection

After each sync, the Run Log shows:

  • How many records were created / updated / skipped.
  • Any errors, with actionable messages (e.g. "customer 'Acme Trading' has two matches in Zoho; disambiguate in mapping").
  • Drift detection — rows that changed in both systems since last sync, where the platform isn't sure who's right. You resolve these manually.

Set up notifications so run failures page you automatically (Settings → Notifications → Integration Errors).

Common pitfalls

Disabling an integration

Toggle off on the integration's detail page. Existing synced data stays; no more syncs run. You can re-enable anytime. Credentials are retained; if you want them purged, click Revoke Access explicitly.

Was this article helpful?