Microsoft Dynamics 365
Sync contacts from Microsoft Dynamics 365 (Dataverse) into your event pipeline, push leads back from Pana, and optionally receive inbound updates via webhooks.
What you get
- Import Dynamics 365 contacts (with email) as leads on a chosen Pana event.
- Connect using your Dynamics 365 environment URL (for example
https://yourorg.crm.dynamics.com). - Limit how many contacts to import (all, 100, 200, or a custom number).
- Optional auto-sync to a default event on a schedule.
- Push to Dynamics 365 from the Leads page — single lead or bulk.
- Copy a webhook URL for inbound contact updates.
Microsoft Dynamics 365 is one connection per workspace. Workspace admins enter the environment URL, then approve access with Microsoft.
Before you start
- Access to a Dynamics 365 / Dataverse environment.
- Your Environment URL (also called the organization or instance URL).
- Permission in that environment to authorize the Pana app.
- At least one event in Pana to attach synced contacts to.
- Workspace admin access in Pana.
Find your environment URL
In the Power Platform admin center (or Dynamics 365), open your environment and copy the URL. It usually looks like:
https://yourorg.crm.dynamics.com
You can paste the host with or without https:// — Pana adds https:// if needed.
Connect Microsoft Dynamics 365
- Go to Settings → Integrations.
- Find Microsoft Dynamics 365 under CRM.
- Click Connect.
- Enter your Dynamics 365 Environment URL.
- Continue and sign in with Microsoft.
- Approve access to your Dynamics environment.
- Return to Pana; the card shows as connected.
Sync contacts
- On the Dynamics 365 card, click Sync leads.
- Select a Pana event.
- Optionally set an import limit.
- Optionally enable Use this event for automatic sync.
- Start the sync.
Sync runs in the background. Contacts without an email are skipped. Existing leads matched by Dynamics ID or email are updated.
Fields Pana adds to Dynamics 365
When you connect, Pana sets up these fields on Dynamics 365 Contacts so you never have to create them by hand. Every push fills them with the lead's current values, alongside first name, last name, email, phone, job title and company.
| Dynamics 365 field | Type | What Pana writes |
|---|---|---|
| Lead Source | Choice (Dynamics' own) or text | Always Pana Events, so leads from Pana are easy to identify. When your Contact table has a Lead Source choice, Pana adds a Pana Events option to it. |
| Event Name | Text | The event the lead is mapped to. |
| Event Lead Interest Level | Choice — Cold, Warm, Hot | The lead's interest level from Pana. |
| Event Lead Tags | Choices — Exhibitor, Sponsor, Investor, Partner, High Priority, Decision Maker, Urgent, VIP | The lead's tags. A lead marked as a decision maker always carries Decision Maker. |
| Event Conversation Notes | Multiple lines of text | The latest note on the lead. Each push replaces it with the newest note. |
| Next Follow-up Date | Date and time | When the lead is due a follow-up, with the time of day. |
| LinkedIn Profile | URL | The lead's LinkedIn profile URL. |
| Pana Lead URL | URL | A link back to the lead in Pana. |
New columns use your environment's publisher prefix and are published straight away. The lead's company is set as the contact's Company Name (parent account): Pana links an existing account with that name or creates one. If a field with one of these names already exists, Pana reuses it instead of creating a duplicate — so reconnecting is always safe. Empty values are never sent, so a push never clears something typed in Dynamics 365.
Creating columns needs the connecting user to have the System Customizer or System Administrator role. Without it, pushes still create and update contacts with the standard fields; reconnect after granting the role and the columns are created.
Edits made in Dynamics 365
Event Lead Interest Level, Event Lead Tags, Event Conversation Notes, Next Follow-up Date and LinkedIn Profile come back with the contact, so edits made in Dynamics 365 show up on the Pana lead — on every contact sync, and live through the Dynamics webhook (see Webhooks). This works for leads that came from Dynamics 365 and for leads captured in Pana and pushed to Dynamics 365.
- A note changed in Dynamics 365 joins the lead's notes thread as the newest note.
- Company comes back too: the name of the contact's Company Name account (a parent contact is ignored).
- Tags Pana does not provision are left on the lead untouched; Decision Maker keeps the lead's decision-maker flag in step.
- An empty field in Dynamics 365 never clears the lead.
- Lead Source, Event Name and Pana Lead URL are set by Pana and are not read back.
Re-create the fields
Connecting creates the fields, and a push quietly re-creates a missing one (at most once an hour). To re-run it right away — after someone deleted a field, or after you grant the System Customizer role — call:
POST /api/v1/integrations/microsoft-dynamics-365/provision-fields/
{ "workspace_id": "<workspace id>" }
The response lists the fields created and reused, and any errors Dynamics 365 returned. Existing fields are reused, never duplicated.
Push leads to Dynamics 365
Single lead
- Open Leads.
- On a lead row, use Push to Dynamics 365 (or Microsoft Dynamics 365).
- The lead must have an email address.
Bulk push
- Select one or more leads in Leads.
- Use the Dynamics push action from the toolbar.
Webhooks
Click Copy webhook on the connected card to copy:
https://eventsapi.pana.space/api/v1/integrations/webhooks/microsoft-dynamics-365/{workspace_id}/
Pana registers this webhook in Dynamics for you when you connect: it adds a Pana Events contact sync webhook (a service endpoint with a secret key) and two asynchronous steps that call it whenever a contact is created or updated. From then on, contact edits in Dynamics reach the Pana leads linked to them within moments — standard fields and event fields alike. Pana checks the secret key on every call and ignores anything without it.
Registering the webhook needs the connecting user to have the System Administrator or System Customizer role, and the Pana API to be reachable over https. If it could not be registered at connect, run it again with:
POST /api/v1/integrations/microsoft-dynamics-365/register-webhook/
{ "workspace_id": "<workspace id>", "webhook_base_url": "https://<your Pana API>" }
Registering again is safe: the existing webhook is updated rather than duplicated. To stop live updates, delete Pana Events contact sync under Plug-in Registration (or Service Endpoints) in your Dynamics environment.
Disconnect
Turn off the toggle on the Microsoft Dynamics 365 card. Existing leads in Pana are kept; live sync stops.
Troubleshooting
| Issue | What to try |
|---|---|
| Environment URL required | Enter the full org URL (for example https://yourorg.crm.dynamics.com) before continuing OAuth. |
| Connected to wrong environment | Disconnect, reconnect, and paste the correct environment URL. |
| No events in the sync dialog | Create an event under Events first. |
| Contacts skipped | Contacts need an email address in Dynamics. |
| Consent / access denied | Ask a Dynamics admin to grant consent for the app in your Microsoft tenant. |
| Push failed | Confirm the lead has an email and that Dynamics is still connected. |