ml-connector
Microsoft Dynamics GPGoogle Sheets

Microsoft Dynamics GP and Google Sheets integration

Microsoft Dynamics GP runs accounting and purchasing on your Windows servers. Google Sheets is where teams collaborate on data. Connecting the two lets finance teams export GL journals, payables, and purchase orders into a shared spreadsheet without manual export and re-keying. New transactions in Dynamics GP appear in your Google Sheets on a schedule you set. Because Sheets has no ERP schema, you define the column structure once, and ml-connector maps Dynamics GP fields to your chosen layout every sync.

How Microsoft Dynamics GP works

Microsoft Dynamics GP exposes financial and purchasing data through REST Service Based Architecture (SBA) endpoints at https://<server>:<port>/GPService or through legacy SOAP Web Services. Authentication uses Windows Active Directory credentials tied to a domain account with GP User permissions; no API keys or OAuth2 support exists. Key entities include GL accounts, GL journal entries, payables invoices, purchase orders, vendors, and payments. Dynamics GP does not support webhooks or push notifications, so all data retrieval is by polling with optional ModifiedDate filters. The SBA endpoint wraps POST/PATCH request bodies in a top-level Payload key and requires concurrent request limits of 2-5 with 100-200ms delays to avoid degrading server performance.

How Google Sheets works

Google Sheets exposes spreadsheet data through REST API v4 over HTTPS at https://sheets.googleapis.com/v4/. Authentication uses OAuth 2.0 either in user-delegated mode or via Service Account for server-to-server access. Google Sheets has no native ERP entities - instead, customers define their data schema by creating sheet tabs with column headers that match the records they want to store. Data is read and written using A1 notation ranges or named ranges. While Google Drive offers watch channels for push notifications, those channels expire hourly with a maximum 24-hour TTL and require manual re-registration, making polling the more reliable method.

What moves between them

Data flows primarily from Microsoft Dynamics GP into Google Sheets. GL journal entries, payables invoices, purchase orders, and vendor records are polled from Dynamics GP on a customer-defined schedule and written into the corresponding sheet tabs in Google Sheets according to your column layout. Because Sheets is primarily a data warehouse with no ERP logic, ml-connector reads from Dynamics GP and writes into Sheets without writing back to the ERP. The schedule is flexible - typical polling intervals are daily or weekly depending on transaction volume and business requirements.

How ml-connector handles it

ml-connector accepts the Windows domain credentials and the Dynamics GP SBA or SOAP endpoint URL from your customer, then authenticates against Active Directory on each poll. It retrieves GL journals, invoices, purchase orders, and vendors using optional ModifiedDate filters to fetch only changed records since the last sync. Because Dynamics GP has no native idempotency mechanism, ml-connector tracks the last synced timestamp and filters by ModifiedDate to avoid duplicate writes to Sheets. Google Sheets requires the spreadsheet ID and the sheet tab names where data should be written; ml-connector uses the A1 notation to append or update rows according to your defined column schema. Because Sheets has no transaction validation, ml-connector validates Dynamics GP data types and amounts before writing - GL amounts are parsed as decimals, dates are formatted as YYYY-MM-DD, and vendor IDs and GL account codes are preserved as text to avoid accidental reformatting by Sheets. Rate limiting is not a concern on the Dynamics GP side provided polling is kept to 2-5 concurrent requests; Google Sheets API has quota limits of 300 requests per minute per user, so ml-connector paces writes to stay within that envelope. Every record carries an audit log entry with the timestamp, the source and target IDs, and the raw data transferred.

A real-world example

A small distribution company uses Dynamics GP on-premises for purchasing and payables management across three regional warehouses. The finance team exports payables register and GL trial balance exports manually each week and uploads them into Google Sheets for reconciliation against daily cash forecasts and supplier performance metrics. With Dynamics GP and Google Sheets connected, every new payables invoice and GL journal entry from Dynamics GP appears in the shared spreadsheet within an hour of posting, eliminating the manual export step and letting the finance team focus on variance analysis instead of data pipeline work. Vendor records and GL account master data sync weekly so the Sheets calculations always reference the correct cost codes and supplier names.

What you can do

  • Sync GL journal entries from Dynamics GP to Google Sheets on a customer-defined schedule with ModifiedDate filters to fetch only new records.
  • Write payables invoices, purchase orders, and vendor master data into Sheets according to your custom column schema without schema migration.
  • Authenticate Dynamics GP with Windows Active Directory credentials and handle SBA or SOAP endpoint routing per customer instance.
  • Map Dynamics GP data types and validate GL amounts and date fields before writing to Sheets to prevent spreadsheet reformatting errors.
  • Track the last synced timestamp and maintain an audit log of every row written, with automatic retry on failed writes to Sheets.

Questions

Does ml-connector require any special setup in Dynamics GP?
Yes. Your Dynamics GP server must expose the SBA REST or SOAP Web Services endpoint through your firewall with a valid SSL certificate or via a local agent, and you must create a Windows domain account dedicated to the integration with GP User role and access to the relevant modules. ml-connector uses your Windows credentials to authenticate against Active Directory, not API keys.
How does ml-connector handle the fact that Google Sheets has no ERP schema?
You define the column layout once in your Google Sheets tabs - for example, Invoice sheet with columns Date, InvoiceNumber, Vendor, Amount, GLCode, and Description. ml-connector maps Dynamics GP field values to your chosen columns on every sync and validates data types before writing so Sheets does not accidentally reformat numbers or dates.
What happens if a Dynamics GP record was already written to Sheets before?
ml-connector uses ModifiedDate filters and the last synced timestamp to avoid fetching records that have not changed. If a record is updated in Dynamics GP, ml-connector sees the new ModifiedDate, re-reads it, and appends or updates the corresponding row in Sheets depending on your schema design.

Related integrations

Connect Microsoft Dynamics GP and Google Sheets

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started