PHP ActiveX Dynamics CRM: Create an Contact

Back to Index

Creates a new contact for a specific account. In this example, the account is Fourth Coffee, where the accountid = b6a19cdd-88df-e311-b8e5-6c3be5a8b200. Success is indicated by a 204 response status code with an empty response body.

Documentation: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/contact?view=dynamics-ce-odata-9

CURL Command

curl -X POST https://my-dynamics-domain.api.crm.dynamics.com/api/data/v9.0/contacts \
  -H "Accept: application/json" \
  -H "Content-Type: application/json; charset=utf-8" \
  -H "OData-MaxVersion: 4.0"  \
  -H "OData-Version: 4.0" \
  -H "Authorization: Bearer DYNAMICS_CRM_ACCESS_TOKEN" \
  -d '{
    "fullname": "Gabby Cannata",
    "firstname": "Gabby",
    "lastname": "Cannata",
    "emailaddress1": "gabby@fourthcoffee.com",
    "address1_line1": "Carrera 1c No 10-01",
    "address1_city": "Bogota",
    "address1_country": "Colombia",
    "telephone1": "408-233-1939",
    "jobtitle": "Purchasing Assistant",
    "parentcustomerid_account@odata.bind": "/accounts(b6a19cdd-88df-e311-b8e5-6c3be5a8b200)"
}'

PHP ActiveX Example

<?php

$rest = new COM("Chilkat_9_5_0.Rest");

//  URL: https://my-dynamics-domain.api.crm.dynamics.com/api/data/v9.0/contacts
$bTls = 1;
$port = 443;
$bAutoReconnect = 1;
$success = $rest->Connect('my-dynamics-domain.api.crm.dynamics.com',$port,$bTls,$bAutoReconnect);
if ($success != 1) {
    print 'ConnectFailReason: ' . $rest->ConnectFailReason . "\n";
    print $rest->LastErrorText . "\n";
    exit;
}

$json = new COM("Chilkat_9_5_0.JsonObject");
$json->UpdateString('fullname','Gabby Cannata');
$json->UpdateString('firstname','Gabby');
$json->UpdateString('lastname','Cannata');
$json->UpdateString('emailaddress1','gabby@fourthcoffee.com');
$json->UpdateString('address1_line1','Carrera 1c No 10-01');
$json->UpdateString('address1_city','Bogota');
$json->UpdateString('address1_country','Colombia');
$json->UpdateString('telephone1','408-233-1939');
$json->UpdateString('jobtitle','Purchasing Assistant');
$json->UpdateString('\'parentcustomerid_account@odata.bind\'','/accounts(b6a19cdd-88df-e311-b8e5-6c3be5a8b200)');

$rest->AddHeader('Content-Type','application/json; charset=utf-8');
$rest->AddHeader('OData-Version','4.0');
$rest->AddHeader('Accept','application/json');
$rest->AddHeader('OData-MaxVersion','4.0');
$rest->AddHeader('Authorization','Bearer DYNAMICS_CRM_ACCESS_TOKEN');

$sbRequestBody = new COM("Chilkat_9_5_0.StringBuilder");
$json->EmitSb($sbRequestBody);
$sbResponseBody = new COM("Chilkat_9_5_0.StringBuilder");
$success = $rest->FullRequestSb('POST','/api/data/v9.0/contacts',$sbRequestBody,$sbResponseBody);
if ($success != 1) {
    print $rest->LastErrorText . "\n";
    exit;
}

$respStatusCode = $rest->ResponseStatusCode;
if ($respStatusCode >= 400) {
    print 'Response Status Code = ' . $respStatusCode . "\n";
    print 'Response Header:' . "\n";
    print $rest->ResponseHeader . "\n";
    print 'Response Body:' . "\n";
    print $sbResponseBody->getAsString() . "\n";
    exit;
}


?>