AFI AFI

Dynamics 365 Marketing

Estimated reading: 4 minutes Updated August 1, 2026

Dynamics 365 Marketing (now part of Dynamics 365 Customer Insights) is Microsoft’s marketing automation platform built on Dataverse. It manages marketing contacts, consent, lead scoring, segments, and outbound marketing journeys. Advanced Form Integration creates or updates marketing contacts from your WordPress form submissions, with GDPR consent flags and optional marketing list membership.

Shared connection with Dynamics 365 CRM

Dynamics 365 Marketing 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 Newsletter signup to Dynamics 365 Marketing.
  3. Under Trigger, pick the form plugin and the specific form.
  4. Under Action → Platform, select Dynamics 365 Marketing.
  5. In Task, choose Create / Update Marketing Contact.
  6. Pick the same Dynamics 365 Account you configured for CRM.
  7. Optional: select a Marketing List to add the contact to. AFI loads your static contact lists from Dataverse.
  8. Map your form fields onto the marketing fields listed below.
  9. Optional: open Conditional Logic to limit which submissions are sent.
  10. Click Save Integration.

Screenshot: AFI field-mapping screen with Dynamics 365 Marketing lead fields visible

Tasks supported

Create / Update Marketing Contact (by email)

Creates or updates a contact in Dataverse, optimized for marketing use cases. If a contact with the same emailaddress1 already exists, AFI patches their fields instead of creating a duplicate.

When a Marketing List is selected, AFI adds the contact to that list via the OData /Members/$ref association after creating or updating the contact. Only static contact lists appear in the dropdown; dynamic segments are populated by query and cannot accept members via the API.

Field Field key Required Notes
First Name firstname No
Last Name lastname No
Email emailaddress1 Yes Used for dedupe / upsert matching
Business Phone telephone1 No
Mobile Phone mobilephone No
Company Name companyname No
Job Title jobtitle No
City address1_city No
Country address1_country No
Lead Source leadsourcecode No Numeric option set value (e.g. 1 = Advertisement)
Do Not Email donotemail No Boolean: true/false. GDPR consent flag.
Do Not Bulk Email donotbulkemail No Boolean: true/false
Do Not Phone donotphone No Boolean: true/false

Consent flags (Do Not Email, Do Not Bulk Email, Do Not Phone) are available in the free version so GDPR-aware sites can honour unsubscribe and preference choices without upgrading.

Pro features

The Pro integration extends the free version with a full field map, custom Dataverse fields, and Account linking. Pro uses the same Dynamics 365 CRM connection.

Extended field map

Pro adds: secondary email, fax, full address block (address lines, state, postal code), Account name lookup (links contact to existing Account via parentcustomerid), department, website, preferred contact method, gender, birth date, description, and additional consent flags (Do Not Postal Mail, Do Not Send Marketing Materials, Do Not Fax).

Custom fields

Pro adds a Custom Fields repeater where you can map any custom Dataverse column on the Contact entity using the schema (logical) name as the key, for example new_lifecyclestage or prefix_segment.

Feature comparison

Feature Free Pro
Create/update marketing contact (email upsert)
Basic fields (name, email, phone, company, job title)
GDPR consent flags (email, bulk email, phone)
Marketing list membership
Extended fields (address, secondary email, demographics) No
Account linking (parentcustomerid) No
Extended consent flags (postal mail, fax, marketing materials) No
Custom Dataverse fields No

Conditional logic example

Only add contacts to your “Webinar Attendees” marketing list when the form’s event_type field is “webinar”. Other signups still create the contact but skip list membership via a separate integration that leaves the Marketing List unselected.

Troubleshooting

Contact not added to marketing list

Only static contact lists appear in the dropdown (filtered by createdfromcode eq 2 and type eq false). Dynamic segments cannot accept members via the API. If your list does not appear, verify in Dynamics that it is a static list with Contact-type members.

Contact created but fields not updated

When updating an existing contact, AFI sends a PATCH with only the mapped fields. If the contact was originally created by another system, some fields may be locked or read-only in Dynamics. Check the AFI log for any PATCH error responses.

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. Also verify that the email field is mapped, since the upsert requires it.

Related docs