Dynamics 365 Integration


This plugin directly connects WordPress and Microsoft Dynamics 365 or Dynamics CRM, creating powerful portal solutions for your business.


  • Support for Dynamics 365 Online, Dynamics 365 On-Premises, and Dynamics CRM 2011, 2013, 2015, and 2016.
  • Design forms in the Dynamics 365 / CRM and insert them on your site with a form shortcode.
  • Write data from the forms directly to Dynamics 365 / CRM.
  • Collect leads, contact requests, support queries and much more without any coding.
  • Display records using Dynamics 365 / CRM views with a shortcode. Give your customers direct access to product catalogs, event lists, knowledge base articles.
  • Bind WordPress posts and pages to Dynamics 365 / CRM records. Build a customized record view in WordPress like product information sheets
  • Support for entity images and attached images with dynamic resizing and caching.
  • Extensible through WordPress actions and filters.

Minimum PHP version

This plugin requires at least PHP 7.2.5.


For this plugin to work, access to a working instance of Dynamics 365 Online, or Dynamics 365 / CRM On-Premises with IFD (Internet Facing Deployment) is required. Without an instance of Dynamics 365 / CRM the plugin is absolutely useless. Please, do not raise issues related to that fact. If you are curious to try, you can always sign up for a free trial of Dynamics 365.


Plugin documentation is available at docs.alexacrm.com/wpcrm/.

Reporting issues

Development of this plugin takes place at the GitHub repository. Please address all questions and issues there.


As communicated by Microsoft, effective April 04, 2022, Microsoft Dataverse is retiring the WS-Trust authentication protocol. Dynamics 365 Integration plugin uses WS-Trust protocol when authenticating using username and password. Beginning from version 1.2.32, the plugin includes app id / secret authentication method. This method uses OAuth protocol and will continue to operate as normal.

How does this affect me?

On April 04, 2022, any instance of Dynamics 365 Integration plugin that uses username / password authentication will no longer connect to Microsoft Dataverse / Dynamics 365.

What action do I need to take?

Existing users: To avoid impact to your operations when this is enforced, please switch plugin authentication method from username / password to app id / secret by following Quick Start instructions in the product documentation.

New users: follow Quick Start steps and use app id / secret to connect to your Dataverse / Dynamics 365 instance.


Installing Dynamics 365 Integration is just like any other WordPress plugin:

  • Inside your WordPress dashboard navigate to your WordPress Plugins page
  • In the search field enter Dynamics CRM or Dynamics 365, then click Search Plugins, or press Enter.
  • Select Dynamics 365 Integration and click Install Now.
  • Once installed, click Activate.
  • Navigate to Admin > Dynamics CRM page to enter your Dynamics 365 / CRM connection details.


Needed to integrate with Dynamics to meet a client request. The hosting environment was a challenge and support was excellent is assisting us in troubleshooting issues we were seeing.
2022年5月3日 3 replies
I do not understand how this has nothing but 5 star reviews. Let’s start with the UI. Dynamic shortcode wizard? Contains a bunch of useless stuff, but if I want a form (the only reason I’m in the market for a premade solution), that’s not going to do anything for me. Fine, browsed the docs, found a shortcode. What is this, 2011? If you’re going to advertise as developer friendly, make yourself developer friendly. msdyncrm_form($entity, $name, $options) is developer friendly, this? [msdyncrm_twig] {% form entity=”wat” name=”thisisclunky” mode=”create” %}{% endform %} [/msdyncrm_twig] This is hateful towards everyone, esp. the editors of the site who want a pretty UI. I can forget all that and abstract the fugly functionality behind my own code. Or I could, if the form worked, at all! A very basic form with name, email, two numeric inputs and a select does not render properly. The select options lack a name, so the field is empty. Worry about that later, the styling of the form is horrible, so to get on that. And what do I see? Bootstrap grid classes. It’s 2022, I haven’t used bootstrap in 10 years, and I don’t want to use it now. Oh and when I try to submit the form? Error: Could not find CreateResponse node in XML returned from Server No errors in the server error log, even when log verbosity is changed to debug in the plugin settings. I know what you’re going to say: make your own twig template. I don’t want to use twig either!! I’ve tried it, it sucks. Useless abstraction, and there’s no reasonable way to change just one part of it. I’d MUCH rather do the entire integration myself, at least M$ has a documentation that isn’t shite. Oh, and it includes recaptcha on all pages, even if the plugin has nothing to do with a page. That’s a GDPR violation, this plugin is worse than trash, it can literally bankrupt you.
For someone who has the web design experience but a total novice when it comes to CRM, this plugin worked great for our company. After dealing with third-party custom-built plugins, we discovered this plugin does pretty much exactly what we wanted from the beginning with little hassle. HIGHLY recommend!


Dynamics 365 Integration はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。


“Dynamics 365 Integration” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログRSS で購読してみてください。



  • Raised WordPress tested version to 6.5.2


  • Fixed possible security vulnerability with log file names


  • Fixed incompatibility with PHP 8.0


  • Fixed entity deserialization error
  • Raised WordPress tested version to 6.2.2


  • Added reCaptcha support to Twig forms


  • Fixed unauthorized access to clear cache feature


  • Added check for nonce value when accessing plugin logs


  • Updated Twig to v3.5.0


  • Fixed unauthorized access to plugin logs


  • Fixed handling of timezoneindepent datetime and date only columns
  • Raised WordPress tested version to 6.1.1


  • Removed recaptcha scripts from pages without forms
  • Fixed an error message handling upon authentication


  • Fixed an error message handling upon creating entity record


  • Fixed a statuscode field values according to the selected statecode field value


  • Added support for Status Reason field type


  • Fixed shortcode wizard for the view shortcode
  • Updated Twig to v3.3.8


  • Fixed saving connection settings after switching auth method


  • Fixed displaying form labels in forms defined with the new PowerApps editor
  • Fixed attempting to retrieve missing FormInstance field
  • Updated Twig to v3.3.7
  • Updated WordPress required version to 4.9


  • Lowered WordPress required version to 4.4


  • Raised WordPress tested version to 5.8.2


IMPORTANT! Minimum PHP and WordPress versions requirements has been raised to PHP 7.2.5 and WordPress 5.8 accordingly. You will not be able to update and use this version and any newer versions of the Integration Dynamics plugin if your installation does not meet the requirements.
Starting from this version you can install Dataverse Integration plugin (https://wordpress.org/plugins/integration-cds/) side-by-side for staged migration from SOAP (deprecated) to Web API.

  • Raised the minimum PHP and WordPress versions requirements
  • Updated Twig to v2.14
  • Added support for multi-select option set fields
  • Allow specifying column name for display name for lookup dropdown fields
  • Fixed unexpected prompt for mandatory fields at connection settings page
  • Fixed rendering data binding box in case data binding is not set

  • Fixed authentication process using Application Id and Client Secret


  • Added authentication using Application Id and Client Secret
  • Prevented explicit php notices in some cases


  • Maintenance release


  • Removed regional discovery service

  • Allow to use WPCRM_KEY more than 32 symbols length

  • Fixed caching method selection


  • Added WPCRM_CACHE_METHOD to allow changing the caching method (off/wpcache/files)
  • Fixed JS redirects in forms
  • Fixed PHP 7.4 incompatibility issues


  • Added extensibility points for Twig
  • Added custom validation in Twig forms

  • Maintenance release to improve logging

  • Fixed language-related issues

  • Fixed “name” field value in Twig forms used with existing records
  • Fixed PHP notices in Twig forms


  • Fixed Twig form submissions with the “name” field present on the form


  • Fixed add_query() Twig filter to produce a correct result for relative URLs


  • Fixed lookup dialog behavior in forms with multiple lookup fields


  • Proper integration with WP proxy settings
  • Fixed entity image behavior in newer Dynamics deployments


  • Added support for global option sets in Twig
  • Fixed Twig cache purging
  • Various fixes for the lookup dialog


  • Add support for money, decimal and integer fields in Twig forms


  • Allow following the exact STS URL in federated online deployments

  • Fixed: conflict with other WordPress plugins which provide a newer version of Twig
  • Fixed: possible PHP notice when using Twig views

  • Fixed: possible halt on unrecognized cache storage methods

  • Fixed: possible fatal error during plugin activation/upgrade


  • Dropped SQLite support in cache


  • Allow multiple Twig forms on one page
  • Add a filter to make annotation images delivery more extensible


  • Add shortcode attribute to disable nonce check in forms
  • Add referrer information to the request object for Twig templates
  • Treat email addresses with capital letters as valid
  • Fixed: crash in Twig if no active connection to CRM

  • Fixed: crashes on some environments related to TLSv1.2 support in cURL


  • Fix lookup handling in Twig forms

  • Follow-up release for 1.2.16


  • Default values for lookups, address composites, dropdowns, radios and checkboxes in Twig forms
  • Fixed handling of of empty values in forms


  • Fixed handling of boolean values in forms


  • Fixed query string handling in forms (URL-encoded values in inputs and PHP notices)
  • Fixed support for some Online deployments and better authentication failure handling


  • Introduced supports for online organizations with federated Azure AD / ADFS authentication

  • Fixed: potential crash when logging is performed in certain situations

  • Fixed: Dynamics credentials could be leaked via logs


  • Important Update: connection passwords are now encrypted. It is advised to set a WPCRM_KEY constant in wp-config.php (a base64-encoded 256-bit random key) and re-establish the connection.


  • Fixed: connection to some IFD deployments would not work


  • Fixed: cell width for full-width controls in Twig forms
  • Fixed: required fields in Twig forms
  • Fixed: hidden controls were still still displayed in Twig forms
  • Fixed: legacy form shortcode attributes were treated incorrectly with extra spaces


  • Localized forms and views
  • Fixed: decimal and email handling errors in forms

  • Fixed: incorrect regex rules would prevent submitting forms with Money fields


  • List of CRM entities added to the Twig environment
  • Better support for parameters and lookup substitution in Twig views
  • Fixed: dropdowns in Firefox could have not behaved as intended
  • Fixed: .htaccess was checked at every request instead of installation/update phase


  • Implement Twig form lookup control as a dropdown
  • Fixed: Twig form record would not be applied
  • Fixed: custom persistent storage clean-up
  • Fixed: check Twig form parameters better

  • Fixed: destroy entity binding config if no entity selected
  • Fixed: don’t retrieve the bound record if no action required upon 404
  • Fixed: get_post() may return null if entity binding is requested during WordPress start-up (404 check)


  • Append form attachment to the current form record if it’s an annotation
  • Fixed: redirect_url in forms should refresh the page if the value is “.”


  • Allow to set currentrecord as default form values
  • Storage directory moved to the WordPress uploads directory
  • Fixed: Twig would not work on WPEngine due to caching issues


  • Allow downloading CRM attachments (+ Twig function to generate an URL)
  • Fixed: downloaded log file/archive would contain quotes in Firefox
  • Fixed: catch exceptions during Twig form submissions and surface error messages
  • Fixed: null-point reference if a post doesn’t exist during binding 404 check

  • Fixed: CRM errors would not be displayed after a failed form submission


  • Allow post-submit Twig form actions for extensibility
  • Fixed: setting a lookup value in a form could trigger a screen of death on submit


  • Form captcha is now not shown to authenticated users
  • Enabled Twig cache (may be disabled by setting WORDPRESSCRM_TWIG_CACHE_DISABLE constant to true)
  • Allow creating custom Twig forms without a corresponding CRM form


  • Add support for nested shortcodes in Twig templates
  • DB migration is only run during plugin activation/upgrade
  • Disable Twig form controls if they are not allowed for create/edit in metadata
  • WordPress CA is supplied to cURL to avoid potential problems with broken system CA
  • Fixed lookup submission in Twig forms
  • Fixed paths in the log export ZIP

  • Fixed default lookup values for the form shortcode
  • Composer is now used to autoload plugin files


  • New: Universal Twig templating engine that allows views, forms, fetchxml queries and more in one shortcode
  • Download log files in the About section
  • Proper 404 errors on bound pages

  • Fixed: POST request shouldn’t trigger form verification if no form data received

  • Fixed: fatal errors when generation GUIDs in some situations

  • Fixed: plugin could disconnect from CRM when initializing

  • Fixed: issue when connecting to Dynamics 365 Online cannot be established from some geographical locations

  • Fixed: default values containing dots would not be rendered

  • Fixed: prevent fatal crashes if environment doesn’t meet dependency requirements

  • Fixed: fatal crash if the /storage directory is not writable
  • Fixed: form submissions with empty attachment field

  • Fixed: display boolean controls in forms correctly
  • Fixed: notifications in admin UI would not be displayed

  • A more detailed message displayed if form submission has failed
  • Fixed: incompatibility with some plugins (session already started)


  • Decreased plugin size
  • Added links to documentation on the configuration pages
  • Misc internal fixes and optimizations


  • Stability improvements and better error reporting


  • Stability improvements and better error reporting


  • Fixed: format readonly date-time fields in forms appropriately
  • Fixed: plugin would break WP-CLI
  • Internal: Monolog used as logging facility


  • Show date-time fields in forms according to WordPress date format settings
  • Fixed: Post editing UI crashes when plugin is not connected


  • Sort entities alphabetically in data-binding UI
  • Performance improvements in forms with lookupviews


  • Update the JS resources
  • Support for deprecated uitypes in view lookups


  • Plugin compatible with WordPress 4.7
  • Enhanced page-CRM record binding
  • Code clean-up and optimization
  • Entity display names in the Lookup Dialog
  • Fixed: custom view/form template paths


  • Allow customizing the error message if WordPress is not connected to the CRM.
  • Fixed: Pagination links in views.
  • Fixed: WordPress 4.4 is now marked as compatible with the plugin.
  • Fixed: Fatal crash when connecting to CRM.


  • Added Shortcode Wizard to quickly generate shortcodes (View and Field supported)
  • Internal: code clean-up, Composer introduced to manage dependencies


  • Add pagination for views.
  • Allow specifying a target DOM selector for form messages.
  • Fixed: Fatal crash on environments with PHP < 5.4.


  • Added logging.
  • Fixed: boolean fields in forms.
  • Fixed: consistent form shortcode attributes.


  • Dynamics CRM Online in the Canada region is now supported.


  • Fixed: Proper handling of invalid certificate errors.
  • Added a control to allow ignoring invalid SSL certificates.


  • Fixed: Self-signed certificate would not allow to connect
  • Fixed: Cache purging for some caching engines
  • Fixed: Forms didn’t have a nonce


  • Fixed: Back-end validation would not have error messages styled correctly
  • Fixed: Front-end form validator would allow emails like <example@contoso>
  • Field shortcode is now not wrapped in a paragraph by default
  • Fixed: first row in the view would not be linked to a data-bound page in certain scenarios


  • Fixed: misleading message regarding inline views
  • Fixed: cell width would not be set correctly for linked record fields in views
  • Internal: data-binding refactoring


  • Performance optimizations for data-bound posts and pages
  • View shortcode now honors CRM View column widths in layout mode
  • Fixed: Lookup Dialog would crash on some entities due to inconsistencies in Dynamics CRM metadata


  • Hotfix: Remove debugging statements that were left out in the previous release
  • No other changes in this release were made


  • Form templates are now more compatible with Bootstrap 3 and 4
  • Fixed: wrong front-end validation settings which could break validation process


  • Lookup Dialog performance is increased through caching
  • Fixed: View field of type State would not be rendered
  • Fixed: Form validation messages would not honor Bootstrap styles


  • Form shortcode now renders a cleaner output
  • Make forms and views more compatible with Bootstrap styles
  • Make View and Form shortcodes more extensible
  • Fixed: run migrations only once


  • Fix the broken lookup dialog (wouldn’t work on most installs)


  • CRM Online is set to be the default connection option
  • Fixed: Settings link in the Plugins screen led to the wrong page
  • Fixed: Default form templates wouldn’t work if installed on a case-sensitive file system
  • Fixed (upstream CRM Toolkit): Couldn’t connect to CRM if password contained special XML characters


  • Text domain is updated to support WordPress translations service


  • Search in Lookup Dialog using like operator
  • Fix record order in Lookup Dialog


  • Fixed 404 behaviour for data-bound pages
  • Improved view shortcode performance
  • Internal: inline documentation, better support for non-standard WP setups


  • Display organization name in the plugin connection status bar
  • Internal: more strings available for translation


  • Use jQuery.validate for form validation
  • Internal: make About tab extensible
  • Internal: plugin building enhancements


  • Annotation images caching and resizing
  • Enhancements in the admin section
  • Internal: automated plugin build process


  • Entity metadata is now cached persistently
  • Fixed translations