Summary
Alta ships with a native Microsoft Dynamics 365 integration. Once connected, you can reach any part of your Dynamics CRM from inside a Flow using the Custom API Call action — read or write contacts, accounts, leads, opportunities, and more, with authentication handled for you.
Who this is for: Alta users who run their CRM in Microsoft Dynamics 365 and want a Flow to read or update Dynamics records automatically (for example, when a prospect replies, books a meeting, or hits a goal).
Before you start
You need a Microsoft Dynamics 365 account with access to the environment (organization) you want to use.
The connected Dynamics user must have read/write privileges on the entities your Flow will touch (e.g.
contacts,accounts,leads,opportunities). If a call fails with an authorization error, check the user's security role in Dynamics.
Note on sync direction: Dynamics 365 is part of Alta's native bidirectional CRM sync layer (alongside Salesforce, HubSpot, Pipedrive, and Zoho). The Custom API Call action described here is the way to make targeted, on-demand calls to Dynamics from within a Flow — it is not the continuous record mirror. Use the native CRM sync for ongoing mirroring, and Custom API Call for workflow-driven reads and writes.
Step 1 — Connect Microsoft Dynamics 365 to Alta
In Alta, open Settings → Integrations.
Find Microsoft Dynamics 365 under Sales & CRM and click Connect.
Authorize the connection in the dialog that appears. Alta connects through its managed connection layer, so once you approve access to your Dynamics environment, authentication is stored and reused for you — you won't need to paste tokens into each Flow.
Once the connection shows as connected, it's available in any Flow.
Step 2 — Add the Dynamics 365 action to a Flow
Open the Flow you want to extend (or create a new one).
Click the + on the step where Dynamics should run.
Select Microsoft Dynamics 365, then choose Custom API Call.
Fill in the fields below, mapping inputs to variables from earlier steps where needed.
The Custom API Call action
Custom API Call makes an authenticated request to any Microsoft Dynamics 365 Web API endpoint. It has these fields:
URL (required) — Either a full URL or a relative path against your environment's base URL. For example,
/api/data/v9.2/contactsor the fullhttps://yourorg.crm.dynamics.com/api/data/v9.2/contacts. The field is pre-filled with your connection's base URL to start from.Method (required) — The HTTP method:
GETto read,POSTto create,PATCHto update,DELETEto remove.Headers — Any extra request headers as key/value pairs. You do not need to add an Authorization header — Alta injects authentication automatically from your connection. For write calls, Dynamics commonly expects
Content-Type: application/json.Query Parameters — Key/value pairs appended to the URL. Use these for Dynamics OData options such as
$select,$filter, and$top.Body Type —
None(default) orJSON. Set this toJSONfor any call that sends data (create or update).JSON Body — Appears when Body Type is
JSON. The JSON payload to send, e.g. the field values for the record you're creating or updating.
The action returns the API response under a body field, which you can reference in later steps.
Examples
Look up a contact by email: Method GET, URL /api/data/v9.2/contacts, and a Query Parameter $filter set to emailaddress1 eq '[email protected]'.
Create a contact: Method POST, URL /api/data/v9.2/contacts, Body Type JSON, and a JSON Body like { "firstname": "Jane", "lastname": "Doe", "emailaddress1": "[email protected]" }.
Update a contact: Method PATCH, URL /api/data/v9.2/contacts(GUID) (the record's GUID in parentheses), Body Type JSON, and a JSON Body with only the fields you want to change.
Tips and common pitfalls
Don't add an Authorization header. Authentication is injected automatically from your connection. Adding your own auth header can conflict with it.
Use plural entity set names. The Dynamics Web API uses plural, lowercase entity sets —
contacts,accounts,leads,opportunities— not the singular logical name.Set Body Type to JSON for writes. If you leave Body Type as
None, no payload is sent, so aPOSTorPATCHwill fail or do nothing.Reference records by GUID for updates and deletes. Dynamics identifies a record with its GUID in parentheses, e.g.
/api/data/v9.2/contacts(00000000-0000-0000-0000-000000000000). Run aGETwith a$filterfirst if you only have an email or name.Permissions live in Dynamics. A failed call is usually a security-role issue on the connected user, not an Alta setting — confirm the user can perform that operation on that entity in Dynamics.
Native sync vs. Custom API Call. For ongoing two-way mirroring of contacts and leads, use Alta's native Dynamics 365 CRM sync. Reach for Custom API Call when you need a specific, workflow-triggered read or write.
Related
