AFI AFI

Dynamics 365 Customer Service

Estimated reading: 3 minutes Updated July 31, 2026

Dynamics 365 Customer Service is Microsoft’s support and case management platform built on Dataverse. Advanced Form Integration creates Cases (incidents) and adds Notes (annotations) from your WordPress form submissions, turning support requests, bug reports, and enquiry forms into trackable tickets.

Shared connection with Dynamics 365 CRM

Customer Service runs on the same Dataverse instance as Dynamics 365 CRM. It reuses the connection you configure under AFI → Settings → Dynamics 365 CRM. No separate credentials are needed.

If you have not yet set up the Dynamics 365 CRM connection, follow the steps in the Dynamics 365 & Dataverse doc first.

Create the integration

  1. Go to AFI → Add New.
  2. Give the integration a name, for example Support form to Dynamics 365.
  3. Under Trigger, pick the form plugin and the specific form.
  4. Under Action → Platform, select Dynamics 365 Customer Service.
  5. In Task, choose Create Case (incident) or Add Note to existing Case.
  6. Pick the same Dynamics 365 Account you configured for CRM.
  7. Map your form fields onto the case fields listed below.
  8. Optional: open Conditional Logic to limit which submissions are sent.
  9. Click Save Integration.

Tasks supported

Create Case (incident)

Creates a case on the incidents entity. The case title is required. AFI resolves the customer automatically:

  1. If a Contact Email is mapped, AFI searches for a matching contact by email. If no contact exists, AFI auto-creates a minimal contact (first name, last name, email) so the case has a customer to attach to.
  2. If no contact is found or created, AFI falls back to Account Name and looks up the account by name.
  3. The case is linked via a polymorphic customerid OData binding.
Field Field key Required Notes
Contact Email contact_email Recommended Looks up or creates a Contact
Contact First Name contact_first No Used if contact must be created
Contact Last Name contact_last No Used if contact must be created
Account Name account_name Fallback Used if no contact matches
Case Title title Yes
Description description No
Case Type casetypecode No 1=Question, 2=Problem, 3=Request
Origin caseorigincode No 1=Phone, 2=Email, 3=Web, 2483=Facebook, 3986=Twitter
Priority prioritycode No 1=High, 2=Normal, 3=Low
Severity severitycode No Option set value
Product Serial Number productserialnumber No
Customer Contacted customercontacted No Boolean: true/false
First Response Sent firstresponsesent No Boolean: true/false
Owner ID ownerid No Systemuser or team GUID

Add Note to existing Case

Attaches a note (annotation) to an existing case. Use this for follow-up forms or additional information submissions on an open ticket.

Field Field key Required Notes
Case GUID case_id Yes The incidentid of the case
Note Subject subject Yes
Note Text notetext No

Pro features

The Pro integration adds a Custom Fields repeater to both tasks. Map any custom Dataverse column on the Case (incident) or Annotation entity using the schema (logical) name as the key, for example new_supportchannel or prefix_severityreason.

Feature comparison

Feature Free Pro
Create case (incident)
Customer auto-resolution (Contact by email, Account by name)
Auto-create minimal contact if none exists
Add note to existing case
Standard case fields
Custom Dataverse fields on Case and Annotation No

Conditional logic example

Only create cases for urgent enquiries. Add a condition on priority being “urgent” so routine questions go to a different integration that creates a lower-priority case or simply sends an email notification.

Troubleshooting

Case not created even though contact exists

The Application User’s security role must include write access to the incident entity. In Power Platform, check Settings → Security Roles → your role → Core Records → Case.

Customer not linked to case

The case requires a customerid binding. If neither a contact nor an account can be resolved, AFI will not send the request (Dynamics would reject it without a customer). Verify the email or account name in the form submission matches a record in Dataverse.

Nothing in the log

If there is no log entry at all, the trigger never fired. Submit a real test entry from the front end, not a preview.

Related docs