Web API toolkit for Microsoft Dynamics 365 and Dynamics CRM (with PHP 5.6 support)

dev-master 2018-11-20 22:30 UTC

This package is auto-updated.

Last update: 2022-05-21 15:37:09 UTC


The Dynamics Web API Toolkit provides an easy-to-use PHP wrapper for the Dynamics 365 Customer Engagement Web API.

Create, read, update and delete CRM records easily via the IOrganizationService - compatible interface, as well as execute Web API actions and functions.

See the tutorial for the sample code to instantiate the connection, create, retrieve, update and delete records.

This toolkit supports only Dynamics 365 Web API. For PHP implementation of the Dynamics 365 SOAP interface, see php-crm-toolkit project.

Features & Limitations

The current release of the library does not support the following features (supported features and scenarios are mentioned along the way):

  • Authentication support for IFD and On-Premises (AD) deployments. Support for IFD (Internet Facing Deployment) is on the roadmap, On-Premises deployments (using AD) are under consideration.
  • Execute method of IOrganizationService interface is not supported yet. Means for executing functions and actions, both bound and unbound, are provided though.
  • Batch requests are not supported yet. That means, associating/disassociating multiple records is executed in multiple separate requests which may affect the performance.
  • Organization metadata (entities and attributes, global option sets, etc.) is not supported yet, although can be retrieved manually via the built-in OData helper client or via the HTTP client.
  • Most of the record attribute values are returned as-is from Web API. That means, at this point you must expect integers in place of OptionSetValue objects for picklist values, Status/State attributes, booleans for "Two Options" attributes, and floats for decimal and Money attributes. Lookup attribute values are rendered as EntityReference objects. The same applies when you set values in the Entity, including EntityReferences. This is likely to change once organization metadata is integrated into the toolkit.

Getting Started


The main requirement is PHP 5.6 or later. cURL is recommended but is not required. Composer is required to install the toolkit and its dependencies.


$ composer require surveygizmo/dynamics-webapi-toolkit:dev-master




error_reporting(E_ALL & ~ E_NOTICE);
ini_set('display_errors', 1);

require_once 'vendor/autoload.php';

$client = \SurveyGizmo\Dynamics\WebAPI\ClientFactory::createOnlineClient(

$contact = new \SurveyGizmo\Dynamics\Xrm\Entity( 'contact' );
$contact['firstname'] = 'Nancy';
$contact['lastname'] = 'Anderson';
$contact['emailaddress1'] = '';

$contactId = $client->Create( $contact );


If you have issues with authentication, you may need to consult another guide to properly configure Dynamics 365 with OpenID Connect and Azure Active Directory.

See the Tutorial to learn more about how to consume the library.

Built With


Currently the toolkit code is not tagged. Once the library is stable API-wise, we will use SemVer for versioning.


This project is licensed under the MIT License - see the file for details.