Skip to main content
Version: 1.2.0

Microsoft Dynamics 365

You'll need to provide the following variables in your postman collection:

VariableDescriptionExample
API_VERSIONRepresents the version of the Alloy Unified API you intend to make calls to. API versions are dated and new versions are released quarterly (in March, June, September, and December).2023-12
connectionIdThe Id of the connection. Call the GET List Connections endpoint to find a connectionId.
apiKeyYour API key. Never share this with anyone.


JSON
{
"info": {
"_postman_id": "1bc96244-5679-4f0c-8fc9-090ec28e7798",
"name": "MS Dynamics CRM UAPI",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "19112139",
"_collection_link": "https://planetary-crater-495600.postman.co/workspace/Alloy-One-New~68c3616b-3ff3-473b-ba08-af2e97a835e5/collection/19112139-1bc96244-5679-4f0c-8fc9-090ec28e7798?action=share&source=collection_link&creator=19112139"
},
"item": [
{
"name": "Setup UAPI Data",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;\r",
"\r",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");\r",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;\r",
" \r",
"if (contentTypeHeaderExists) {\r",
" tests[\"Content-Type is application/json\"] = \r",
" responseHeaders[\"Content-Type\"].has(\"application/json\");\r",
"}\r",
"\r",
"\r",
"\r",
"var jsonData = pm.response.json();\r",
"console.log(jsonData)\r",
"let msDynamicsCRMCredentialId = jsonData.msDynamicsCRMCredentialId;\r",
"postman.setEnvironmentVariable(\"msDynamicsCRMCredentialId\", msDynamicsCRMCredentialId);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"request": {
"auth": {
"type": "noauth"
},
"method": "GET",
"header": [
{
"key": "X-Alloy-Auth",
"value": "1234567890abcdefghijklmnopqrstuvwxyz",
"type": "text"
}
],
"url": {
"raw": "{{api_base_url}}/api/testHelpers/setupUapi/MSDYNAMICSCRM",
"host": ["{{api_base_url}}"],
"path": ["api", "testHelpers", "setupUapi", "MSDYNAMICSCRM"]
}
},
"response": []
},
{
"name": "Create Account",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] accounts is created correctly\", function () {",
" var jsonData = pm.response.json();",
" console.log(jsonData);",
" pm.expect(jsonData).to.have.property('account');",
" pm.expect(jsonData.account).to.not.be.null;",
" pm.expect(jsonData.account).to.have.property('website');",
" pm.expect(jsonData.account).to.have.property('industry');",
" pm.expect(jsonData.account).to.have.property('addresses');",
" pm.expect(jsonData.account).to.have.property('phoneNumbers');",
" pm.expect(jsonData.account).to.have.property('remoteId');",
" pm.expect(jsonData.account).to.have.property('lastActivityAt');",
" pm.expect(jsonData.account).to.have.property('accountOwner');",
" pm.expect(jsonData.account).to.have.property('accountName');",
" pm.expect(jsonData.account).to.have.property('numberOfEmployees');",
" pm.expect(jsonData.account).to.have.property('description');",
" pm.expect(jsonData.account).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.account).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.account).to.have.property('remoteDeleted');",
" pm.expect(jsonData.account).to.have.property('createdAt');",
" pm.expect(jsonData.account).to.have.property('updatedAt');",
" pm.expect(jsonData.account).to.have.property('id');",
"});",
"",
"",
"var jsonData = pm.response.json();",
"let accountId = jsonData.account.id;",
"postman.setEnvironmentVariable(\"accountId\", accountId);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "POST",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"accountName\": \"Alloy-{{$guid}}\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/accounts?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "accounts"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Accounts Filters",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"[ZohoCRM] response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"accounts are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('accounts');",
" pm.expect(jsonData.accounts[0]).to.not.be.null;",
" pm.expect(jsonData.accounts[0]).to.have.property('website');",
" pm.expect(jsonData.accounts[0]).to.have.property('industry');",
" pm.expect(jsonData.accounts[0]).to.have.property('addresses');",
" pm.expect(jsonData.accounts[0]).to.have.property('phoneNumbers');",
" pm.expect(jsonData.accounts[0]).to.have.property('remoteId');",
" pm.expect(jsonData.accounts[0]).to.have.property('lastActivityAt');",
" pm.expect(jsonData.accounts[0]).to.have.property('accountOwner');",
" pm.expect(jsonData.accounts[0]).to.have.property('accountName');",
" pm.expect(jsonData.accounts[0]).to.have.property('numberOfEmployees');",
" pm.expect(jsonData.accounts[0]).to.have.property('description');",
" pm.expect(jsonData.accounts[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.accounts[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.accounts[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.accounts[0]).to.have.property('createdAt');",
" pm.expect(jsonData.accounts[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.accounts[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/accounts?credentialId={{msDynamicsCRMCredentialId}}&accountNameContains=Alloy",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "accounts"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
},
{
"key": "accountNameContains",
"value": "Alloy"
}
]
}
},
"response": []
},
{
"name": "Update Account",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] accounts is updated correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('account');",
" pm.expect(jsonData.account).to.not.be.null;",
" pm.expect(jsonData.account).to.have.property('website');",
" pm.expect(jsonData.account).to.have.property('industry');",
" pm.expect(jsonData.account).to.have.property('addresses');",
" pm.expect(jsonData.account).to.have.property('phoneNumbers');",
" pm.expect(jsonData.account).to.have.property('remoteId');",
" pm.expect(jsonData.account).to.have.property('lastActivityAt');",
" pm.expect(jsonData.account).to.have.property('accountOwner');",
" pm.expect(jsonData.account).to.have.property('accountName');",
" pm.expect(jsonData.account).to.have.property('numberOfEmployees');",
" pm.expect(jsonData.account).to.have.property('description');",
" pm.expect(jsonData.account).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.account).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.account).to.have.property('remoteDeleted');",
" pm.expect(jsonData.account).to.have.property('createdAt');",
" pm.expect(jsonData.account).to.have.property('updatedAt');",
" pm.expect(jsonData.account).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"description\": \"{{$randomJobDescriptor}}\",\n \"website\": \"{{$randomDomainName}}\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/accounts/{{accountId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": [
"{{API_VERSION}}",
"one",
"crm",
"accounts",
"{{accountId}}"
],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Accounts",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"[ZohoCRM] response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"accounts are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('accounts');",
" pm.expect(jsonData.accounts[0]).to.not.be.null;",
" pm.expect(jsonData.accounts[0]).to.have.property('website');",
" pm.expect(jsonData.accounts[0]).to.have.property('industry');",
" pm.expect(jsonData.accounts[0]).to.have.property('addresses');",
" pm.expect(jsonData.accounts[0]).to.have.property('phoneNumbers');",
" pm.expect(jsonData.accounts[0]).to.have.property('remoteId');",
" pm.expect(jsonData.accounts[0]).to.have.property('lastActivityAt');",
" pm.expect(jsonData.accounts[0]).to.have.property('accountOwner');",
" pm.expect(jsonData.accounts[0]).to.have.property('accountName');",
" pm.expect(jsonData.accounts[0]).to.have.property('numberOfEmployees');",
" pm.expect(jsonData.accounts[0]).to.have.property('description');",
" pm.expect(jsonData.accounts[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.accounts[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.accounts[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.accounts[0]).to.have.property('createdAt');",
" pm.expect(jsonData.accounts[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.accounts[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/accounts?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "accounts"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get Account Count",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] accounts count is returned\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('count');",
" pm.expect(jsonData.count).to.be.a(\"number\");",
"});",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/accounts/count?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "accounts", "count"],
"query": [
{
"key": "page",
"value": "eyJpdGVtSWQiOnsiUyI6IjEyMCJ9LCJkYXRhQnVja2V0Ijp7IlMiOiI2MmIyYWM5ZGI4NWYzMjAwMTQzMDU5Y2YvYWNjb3VudCJ9fQ==",
"disabled": true
},
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get Account",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"[ZohoCRM] response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] accounts is returned correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('account');",
" pm.expect(jsonData.account).to.not.be.null;",
" pm.expect(jsonData.account).to.have.property('website');",
" pm.expect(jsonData.account).to.have.property('industry');",
" pm.expect(jsonData.account).to.have.property('addresses');",
" pm.expect(jsonData.account).to.have.property('phoneNumbers');",
" pm.expect(jsonData.account).to.have.property('remoteId');",
" pm.expect(jsonData.account).to.have.property('lastActivityAt');",
" pm.expect(jsonData.account).to.have.property('accountOwner');",
" pm.expect(jsonData.account).to.have.property('accountName');",
" pm.expect(jsonData.account).to.have.property('numberOfEmployees');",
" pm.expect(jsonData.account).to.have.property('description');",
" pm.expect(jsonData.account).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.account).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.account).to.have.property('remoteDeleted');",
" pm.expect(jsonData.account).to.have.property('createdAt');",
" pm.expect(jsonData.account).to.have.property('updatedAt');",
" pm.expect(jsonData.account).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/accounts/{{accountId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": [
"{{API_VERSION}}",
"one",
"crm",
"accounts",
"{{accountId}}"
],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Delete Account",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] account deleted correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('message');",
" pm.expect(jsonData.message).to.be.a(\"string\")",
"});",
"",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "DELETE",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/accounts/{{accountId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": [
"{{API_VERSION}}",
"one",
"crm",
"accounts",
"{{accountId}}"
],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Create Contact",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] contact is created correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('contact');",
" pm.expect(jsonData.contact).to.not.be.null;",
" pm.expect(jsonData.contact).to.have.property('remoteId');",
" pm.expect(jsonData.contact).to.have.property('lastActivityAt');",
" pm.expect(jsonData.contact).to.have.property('emailAddresses');",
" pm.expect(jsonData.contact.emailAddresses).is.a('array');",
" pm.expect(jsonData.contact).to.have.property('lastName');",
" pm.expect(jsonData.contact).to.have.property('account');",
" pm.expect(jsonData.contact).to.have.property('addresses');",
" pm.expect(jsonData.contact).to.have.property('phoneNumbers');",
" pm.expect(jsonData.contact).to.have.property('firstName');",
" pm.expect(jsonData.contact).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.contact).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.contact).to.have.property('remoteDeleted');",
" pm.expect(jsonData.contact).to.have.property('createdAt');",
" pm.expect(jsonData.contact).to.have.property('updatedAt');",
" pm.expect(jsonData.contact).to.have.property('id');",
"});",
"",
"var jsonData = pm.response.json();",
"let contactId = jsonData.contact.id;",
"let contactRemoteId = jsonData.contact.remoteId;",
"postman.setEnvironmentVariable(\"contactRemoteId\", contactRemoteId);",
"postman.setEnvironmentVariable(\"contactId\", contactId);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "POST",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"firstName\": \"Alloy-{{$guid}}\",\n \"lastName\": \"Test-{{$guid}}\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/contacts/?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "contacts", ""],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Contacts Filters",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] contacts are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('contacts');",
" pm.expect(jsonData.contacts[0]).to.not.be.null;",
" pm.expect(jsonData.contacts[0]).to.have.property('remoteId');",
" pm.expect(jsonData.contacts[0]).to.have.property('lastActivityAt');",
" pm.expect(jsonData.contacts[0]).to.have.property('emailAddresses');",
" pm.expect(jsonData.contacts[0].emailAddresses).is.a('array');",
" pm.expect(jsonData.contacts[0]).to.have.property('lastName');",
" pm.expect(jsonData.contacts[0]).to.have.property('account');",
" pm.expect(jsonData.contacts[0]).to.have.property('addresses');",
" pm.expect(jsonData.contacts[0]).to.have.property('phoneNumbers');",
" pm.expect(jsonData.contacts[0]).to.have.property('firstName');",
" pm.expect(jsonData.contacts[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.contacts[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.contacts[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.contacts[0]).to.have.property('createdAt');",
" pm.expect(jsonData.contacts[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.contacts[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/contacts/?credentialId={{msDynamicsCRMCredentialId}}&firstNameContains=Alloy&lastNameContains=Test",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "contacts", ""],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
},
{
"key": "firstNameContains",
"value": "Alloy"
},
{
"key": "lastNameContains",
"value": "Test"
}
]
}
},
"response": []
},
{
"name": "Update Contact",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] contact is updated correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('contact');",
" pm.expect(jsonData.contact).to.not.be.null;",
" pm.expect(jsonData.contact).to.have.property('remoteId');",
" pm.expect(jsonData.contact).to.have.property('lastActivityAt');",
" pm.expect(jsonData.contact).to.have.property('emailAddresses');",
" pm.expect(jsonData.contact.emailAddresses).is.a('array');",
" pm.expect(jsonData.contact).to.have.property('lastName');",
" pm.expect(jsonData.contact).to.have.property('account');",
" pm.expect(jsonData.contact).to.have.property('addresses');",
" pm.expect(jsonData.contact).to.have.property('phoneNumbers');",
" pm.expect(jsonData.contact).to.have.property('firstName');",
" pm.expect(jsonData.contact).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.contact).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.contact).to.have.property('remoteDeleted');",
" pm.expect(jsonData.contact).to.have.property('createdAt');",
" pm.expect(jsonData.contact).to.have.property('updatedAt');",
" pm.expect(jsonData.contact).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"addresses\": [\n {\n \"country\": \"United States\",\n \"street1\": \"6649 N Blue Gum St\",\n \"state\": \"LA\",\n \"city\": \"New Orleans\",\n \"addressType\": \"address1\",\n \"postalCode\": \"70116\"\n }\n ]\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/contacts/{{contactId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": [
"{{API_VERSION}}",
"one",
"crm",
"contacts",
"{{contactId}}"
],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Contacts",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] contacts are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('contacts');",
" pm.expect(jsonData.contacts[0]).to.not.be.null;",
" pm.expect(jsonData.contacts[0]).to.have.property('remoteId');",
" pm.expect(jsonData.contacts[0]).to.have.property('lastActivityAt');",
" pm.expect(jsonData.contacts[0]).to.have.property('emailAddresses');",
" pm.expect(jsonData.contacts[0].emailAddresses).is.a('array');",
" pm.expect(jsonData.contacts[0]).to.have.property('lastName');",
" pm.expect(jsonData.contacts[0]).to.have.property('account');",
" pm.expect(jsonData.contacts[0]).to.have.property('addresses');",
" pm.expect(jsonData.contacts[0]).to.have.property('phoneNumbers');",
" pm.expect(jsonData.contacts[0]).to.have.property('firstName');",
" pm.expect(jsonData.contacts[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.contacts[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.contacts[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.contacts[0]).to.have.property('createdAt');",
" pm.expect(jsonData.contacts[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.contacts[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/contacts/?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "contacts", ""],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get Contact Count",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] contacts count is returned\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('count');",
" pm.expect(jsonData.count).to.be.a(\"number\");",
"});",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/contacts/count?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "contacts", "count"],
"query": [
{
"key": "page",
"value": "eyJpdGVtSWQiOnsiUyI6IjEyMCJ9LCJkYXRhQnVja2V0Ijp7IlMiOiI2MmIyYWM5ZGI4NWYzMjAwMTQzMDU5Y2YvYWNjb3VudCJ9fQ==",
"disabled": true
},
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get Contact",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] contact is returned correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('contact');",
" pm.expect(jsonData.contact).to.not.be.null;",
" pm.expect(jsonData.contact).to.have.property('remoteId');",
" pm.expect(jsonData.contact).to.have.property('lastActivityAt');",
" pm.expect(jsonData.contact).to.have.property('emailAddresses');",
" pm.expect(jsonData.contact.emailAddresses).is.a('array');",
" pm.expect(jsonData.contact).to.have.property('lastName');",
" pm.expect(jsonData.contact).to.have.property('account');",
" pm.expect(jsonData.contact).to.have.property('addresses');",
" pm.expect(jsonData.contact).to.have.property('phoneNumbers');",
" pm.expect(jsonData.contact).to.have.property('firstName');",
" pm.expect(jsonData.contact).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.contact).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.contact).to.have.property('remoteDeleted');",
" pm.expect(jsonData.contact).to.have.property('createdAt');",
" pm.expect(jsonData.contact).to.have.property('updatedAt');",
" pm.expect(jsonData.contact).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/contacts/{{contactId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": [
"{{API_VERSION}}",
"one",
"crm",
"contacts",
"{{contactId}}"
],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Delete Contact",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] contact deleted correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('message');",
" pm.expect(jsonData.message).to.be.a(\"string\")",
"});",
"",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "DELETE",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/contacts/{{contactId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": [
"{{API_VERSION}}",
"one",
"crm",
"contacts",
"{{contactId}}"
],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Create Lead",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] lead is created correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('lead');",
" pm.expect(jsonData.lead).to.not.be.null;",
" pm.expect(jsonData.lead).to.have.property('lastName');",
" pm.expect(jsonData.lead).to.have.property('leadOwner');",
" pm.expect(jsonData.lead).to.have.property('addresses');",
" pm.expect(jsonData.lead).to.have.property('phoneNumbers');",
" pm.expect(jsonData.lead).to.have.property('leadTitle');",
" pm.expect(jsonData.lead).to.have.property('firstName');",
" pm.expect(jsonData.lead).to.have.property('leadSource');",
" pm.expect(jsonData.lead).to.have.property('remoteId');",
" pm.expect(jsonData.lead).to.have.property('company');",
" pm.expect(jsonData.lead).to.have.property('emailAddresses');",
" pm.expect(jsonData.lead).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.lead).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.lead).to.have.property('remoteDeleted');",
" pm.expect(jsonData.lead).to.have.property('createdAt');",
" pm.expect(jsonData.lead).to.have.property('updatedAt');",
" pm.expect(jsonData.lead).to.have.property('id');",
"});",
"",
"var jsonData = pm.response.json();",
"let leadId = jsonData.lead.id;",
"postman.setEnvironmentVariable(\"leadId\", leadId);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "POST",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"lastName\": \"Alloy-{{$guid}}\",\n \"company\": \"Alloy-{{$guid}}\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/leads?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "leads"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Leads Filters",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] leads are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('leads');",
" pm.expect(jsonData.leads[0]).to.not.be.null;",
" pm.expect(jsonData.leads[0]).to.have.property('lastName');",
" pm.expect(jsonData.leads[0]).to.have.property('leadOwner');",
" pm.expect(jsonData.leads[0]).to.have.property('addresses');",
" pm.expect(jsonData.leads[0]).to.have.property('phoneNumbers');",
" pm.expect(jsonData.leads[0]).to.have.property('leadTitle');",
" pm.expect(jsonData.leads[0]).to.have.property('firstName');",
" pm.expect(jsonData.leads[0]).to.have.property('leadSource');",
" pm.expect(jsonData.leads[0]).to.have.property('remoteId');",
" pm.expect(jsonData.leads[0]).to.have.property('company');",
" pm.expect(jsonData.leads[0]).to.have.property('emailAddresses');",
" pm.expect(jsonData.leads[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.leads[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.leads[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.leads[0]).to.have.property('createdAt');",
" pm.expect(jsonData.leads[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.leads[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/leads?credentialId={{msDynamicsCRMCredentialId}}&lastNameContains=Alloy&companyContains=Alloy",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "leads"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
},
{
"key": "lastNameContains",
"value": "Alloy"
},
{
"key": "companyContains",
"value": "Alloy"
}
]
}
},
"response": []
},
{
"name": "Update Lead",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] leads are updated correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('lead');",
" pm.expect(jsonData.lead).to.not.be.null;",
" pm.expect(jsonData.lead).to.have.property('lastName');",
" pm.expect(jsonData.lead).to.have.property('leadOwner');",
" pm.expect(jsonData.lead).to.have.property('addresses');",
" pm.expect(jsonData.lead).to.have.property('phoneNumbers');",
" pm.expect(jsonData.lead).to.have.property('leadTitle');",
" pm.expect(jsonData.lead).to.have.property('firstName');",
" pm.expect(jsonData.lead).to.have.property('leadSource');",
" pm.expect(jsonData.lead).to.have.property('remoteId');",
" pm.expect(jsonData.lead).to.have.property('company');",
" pm.expect(jsonData.lead).to.have.property('emailAddresses');",
" pm.expect(jsonData.lead).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.lead).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.lead).to.have.property('remoteDeleted');",
" pm.expect(jsonData.lead).to.have.property('createdAt');",
" pm.expect(jsonData.lead).to.have.property('updatedAt');",
" pm.expect(jsonData.lead).to.have.property('id');",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"addresses\": [\n {\n \"country\": \"United States\",\n \"street1\": \"6649 N Blue Gum St\",\n \"state\": \"LA\",\n \"city\": \"New Orleans\",\n \"addressType\": \"address1\",\n \"postalCode\": \"70116\"\n }\n ]\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/leads/{{leadId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "leads", "{{leadId}}"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Leads",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] leads are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('leads');",
" pm.expect(jsonData.leads[0]).to.not.be.null;",
" pm.expect(jsonData.leads[0]).to.have.property('lastName');",
" pm.expect(jsonData.leads[0]).to.have.property('leadOwner');",
" pm.expect(jsonData.leads[0]).to.have.property('addresses');",
" pm.expect(jsonData.leads[0]).to.have.property('phoneNumbers');",
" pm.expect(jsonData.leads[0]).to.have.property('leadTitle');",
" pm.expect(jsonData.leads[0]).to.have.property('firstName');",
" pm.expect(jsonData.leads[0]).to.have.property('leadSource');",
" pm.expect(jsonData.leads[0]).to.have.property('remoteId');",
" pm.expect(jsonData.leads[0]).to.have.property('company');",
" pm.expect(jsonData.leads[0]).to.have.property('emailAddresses');",
" pm.expect(jsonData.leads[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.leads[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.leads[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.leads[0]).to.have.property('createdAt');",
" pm.expect(jsonData.leads[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.leads[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/leads?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "leads"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get Lead Count",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] lead count is returned\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('count');",
" pm.expect(jsonData.count).to.be.a(\"number\");",
"});",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/leads/count?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "leads", "count"],
"query": [
{
"key": "page",
"value": "eyJpdGVtSWQiOnsiUyI6IjEyMCJ9LCJkYXRhQnVja2V0Ijp7IlMiOiI2MmIyYWM5ZGI4NWYzMjAwMTQzMDU5Y2YvYWNjb3VudCJ9fQ==",
"disabled": true
},
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get Lead",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] lead is returned correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('lead');",
" pm.expect(jsonData.lead).to.not.be.null;",
" pm.expect(jsonData.lead).to.have.property('lastName');",
" pm.expect(jsonData.lead).to.have.property('leadOwner');",
" pm.expect(jsonData.lead).to.have.property('addresses');",
" pm.expect(jsonData.lead).to.have.property('phoneNumbers');",
" pm.expect(jsonData.lead).to.have.property('leadTitle');",
" pm.expect(jsonData.lead).to.have.property('firstName');",
" pm.expect(jsonData.lead).to.have.property('leadSource');",
" pm.expect(jsonData.lead).to.have.property('remoteId');",
" pm.expect(jsonData.lead).to.have.property('company');",
" pm.expect(jsonData.lead).to.have.property('emailAddresses');",
" pm.expect(jsonData.lead).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.lead).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.lead).to.have.property('remoteDeleted');",
" pm.expect(jsonData.lead).to.have.property('createdAt');",
" pm.expect(jsonData.lead).to.have.property('updatedAt');",
" pm.expect(jsonData.lead).to.have.property('id');",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/leads/{{leadId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "leads", "{{leadId}}"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Delete Lead",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] lead deleted correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('message');",
" pm.expect(jsonData.message).to.be.a(\"string\")",
"});",
"",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "DELETE",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/leads/{{leadId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "leads", "{{leadId}}"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Create Task",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] task is created correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('task');",
" pm.expect(jsonData.task).to.not.be.null;",
" pm.expect(jsonData.task).to.have.property('remoteId');",
" pm.expect(jsonData.task).to.have.property('taskContent');",
" pm.expect(jsonData.task).to.have.property('taskSubject');",
" pm.expect(jsonData.task).to.have.property('taskStatus');",
" pm.expect(jsonData.task).to.have.property('dueDate');",
" pm.expect(jsonData.task).to.have.property('taskOwner');",
" pm.expect(jsonData.task).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.task).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.task).to.have.property('remoteDeleted');",
" pm.expect(jsonData.task).to.have.property('createdAt');",
" pm.expect(jsonData.task).to.have.property('updatedAt');",
" pm.expect(jsonData.task).to.have.property('id');",
"});",
"",
"var jsonData = pm.response.json();",
"let taskId = jsonData.task.id;",
"postman.setEnvironmentVariable(\"taskId\", taskId);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "POST",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"taskSubject\": \"Alloy-{{$guid}}\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/tasks?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "tasks"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Tasks Filters",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] tasks are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('tasks');",
" pm.expect(jsonData.tasks[0]).to.not.be.null;",
" pm.expect(jsonData.tasks[0]).to.have.property('remoteId');",
" pm.expect(jsonData.tasks[0]).to.have.property('taskContent');",
" pm.expect(jsonData.tasks[0]).to.have.property('taskSubject');",
" pm.expect(jsonData.tasks[0]).to.have.property('taskStatus');",
" pm.expect(jsonData.tasks[0]).to.have.property('dueDate');",
" pm.expect(jsonData.tasks[0]).to.have.property('taskOwner');",
" pm.expect(jsonData.tasks[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.tasks[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.tasks[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.tasks[0]).to.have.property('createdAt');",
" pm.expect(jsonData.tasks[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.tasks[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/tasks?credentialId={{msDynamicsCRMCredentialId}}&taskSubjectContains=Alloy",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "tasks"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
},
{
"key": "taskSubjectContains",
"value": "Alloy"
}
]
}
},
"response": []
},
{
"name": "Update Task",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] task is updated correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('task');",
" pm.expect(jsonData.task).to.not.be.null;",
" pm.expect(jsonData.task).to.have.property('remoteId');",
" pm.expect(jsonData.task).to.have.property('taskContent');",
" pm.expect(jsonData.task).to.have.property('taskSubject');",
" pm.expect(jsonData.task).to.have.property('taskStatus');",
" pm.expect(jsonData.task).to.have.property('dueDate');",
" pm.expect(jsonData.task).to.have.property('taskOwner');",
" pm.expect(jsonData.task).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.task).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.task).to.have.property('remoteDeleted');",
" pm.expect(jsonData.task).to.have.property('createdAt');",
" pm.expect(jsonData.task).to.have.property('updatedAt');",
" pm.expect(jsonData.task).to.have.property('id');",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"taskContent\": \"{{$randomLoremSentence}}\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/tasks/{{taskId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "tasks", "{{taskId}}"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Tasks",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] tasks are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('tasks');",
" pm.expect(jsonData.tasks[0]).to.not.be.null;",
" pm.expect(jsonData.tasks[0]).to.have.property('remoteId');",
" pm.expect(jsonData.tasks[0]).to.have.property('taskContent');",
" pm.expect(jsonData.tasks[0]).to.have.property('taskSubject');",
" pm.expect(jsonData.tasks[0]).to.have.property('taskStatus');",
" pm.expect(jsonData.tasks[0]).to.have.property('dueDate');",
" pm.expect(jsonData.tasks[0]).to.have.property('taskOwner');",
" pm.expect(jsonData.tasks[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.tasks[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.tasks[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.tasks[0]).to.have.property('createdAt');",
" pm.expect(jsonData.tasks[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.tasks[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/tasks?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "tasks"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get Task Count",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] task count is returned\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('count');",
" pm.expect(jsonData.count).to.be.a(\"number\");",
"});",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/tasks/count?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "tasks", "count"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get Task",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] tasks is returned correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('task');",
" pm.expect(jsonData.task).to.not.be.null;",
" pm.expect(jsonData.task).to.have.property('remoteId');",
" pm.expect(jsonData.task).to.have.property('taskContent');",
" pm.expect(jsonData.task).to.have.property('taskSubject');",
" pm.expect(jsonData.task).to.have.property('taskStatus');",
" pm.expect(jsonData.task).to.have.property('dueDate');",
" pm.expect(jsonData.task).to.have.property('taskOwner');",
" pm.expect(jsonData.task).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.task).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.task).to.have.property('remoteDeleted');",
" pm.expect(jsonData.task).to.have.property('createdAt');",
" pm.expect(jsonData.task).to.have.property('updatedAt');",
" pm.expect(jsonData.task).to.have.property('id');",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/tasks/{{taskId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "tasks", "{{taskId}}"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Delete Task",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] task deleted correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('message');",
" pm.expect(jsonData.message).to.be.a(\"string\")",
"});",
"",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "DELETE",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/tasks/{{taskId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "tasks", "{{taskId}}"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Create User",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] users is created correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('user');",
" pm.expect(jsonData.user).to.not.be.null;",
" pm.expect(jsonData.user).to.have.property('remoteId');",
" pm.expect(jsonData.user).to.have.property('userLastName');",
" pm.expect(jsonData.user).to.have.property('isActive');",
" pm.expect(jsonData.user).to.have.property('userEmail');",
" pm.expect(jsonData.user).to.have.property('userFirstName');",
" pm.expect(jsonData.user).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.user).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.user).to.have.property('remoteDeleted');",
" pm.expect(jsonData.user).to.have.property('createdAt');",
" pm.expect(jsonData.user).to.have.property('updatedAt');",
" pm.expect(jsonData.user).to.have.property('id');",
"});",
"",
"var jsonData = pm.response.json();",
"let userId = jsonData.user.id;",
"postman.setEnvironmentVariable(\"userId\", userId);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "POST",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"userFirstName\": \"Alloy-{{$guid}}\",\n \"userLastName\": \"Test-{{$guid}}\",\n \"userEmail\": \"{{$guid}}@runalloy.com\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/users?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "users"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Users Filters",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] users are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('users');",
" pm.expect(jsonData.users[0]).to.not.be.null;",
" pm.expect(jsonData.users[0]).to.have.property('remoteId');",
" pm.expect(jsonData.users[0]).to.have.property('userLastName');",
" pm.expect(jsonData.users[0]).to.have.property('isActive');",
" pm.expect(jsonData.users[0]).to.have.property('userEmail');",
" pm.expect(jsonData.users[0]).to.have.property('userFirstName');",
" pm.expect(jsonData.users[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.users[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.users[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.users[0]).to.have.property('createdAt');",
" pm.expect(jsonData.users[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.users[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/users?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "users"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
},
{
"key": "userFirstNameContains",
"value": "Alloy",
"disabled": true
},
{
"key": "userLastNameContains",
"value": "Test",
"disabled": true
},
{
"key": "userEmailContains",
"value": "runalloy",
"disabled": true
}
]
}
},
"response": []
},
{
"name": "Update User",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"user is updated correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('user');",
" pm.expect(jsonData.user).to.not.be.null;",
" pm.expect(jsonData.user).to.have.property('remoteId');",
" pm.expect(jsonData.user).to.have.property('userLastName');",
" pm.expect(jsonData.user).to.have.property('isActive');",
" pm.expect(jsonData.user).to.have.property('userEmail');",
" pm.expect(jsonData.user).to.have.property('userFirstName');",
" pm.expect(jsonData.user).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.user).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.user).to.have.property('remoteDeleted');",
" pm.expect(jsonData.user).to.have.property('createdAt');",
" pm.expect(jsonData.user).to.have.property('updatedAt');",
" pm.expect(jsonData.user).to.have.property('id');",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"userFirstName\": \"{{$randomFirstName}}\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/users/{{userId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "users", "{{userId}}"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Users",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] users are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('users');",
" pm.expect(jsonData.users[0]).to.not.be.null;",
" pm.expect(jsonData.users[0]).to.have.property('remoteId');",
" pm.expect(jsonData.users[0]).to.have.property('userLastName');",
" pm.expect(jsonData.users[0]).to.have.property('isActive');",
" pm.expect(jsonData.users[0]).to.have.property('userEmail');",
" pm.expect(jsonData.users[0]).to.have.property('userFirstName');",
" pm.expect(jsonData.users[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.users[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.users[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.users[0]).to.have.property('createdAt');",
" pm.expect(jsonData.users[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.users[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/users?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "users"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get User Count",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] get user count is returned\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('count');",
" pm.expect(jsonData.count).to.be.a(\"number\");",
"});",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/users/count?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "users", "count"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get User",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] users is returned correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('user');",
" pm.expect(jsonData.user).to.not.be.null;",
" pm.expect(jsonData.user).to.have.property('remoteId');",
" pm.expect(jsonData.user).to.have.property('userLastName');",
" pm.expect(jsonData.user).to.have.property('isActive');",
" pm.expect(jsonData.user).to.have.property('userEmail');",
" pm.expect(jsonData.user).to.have.property('userFirstName');",
" pm.expect(jsonData.user).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.user).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.user).to.have.property('remoteDeleted');",
" pm.expect(jsonData.user).to.have.property('createdAt');",
" pm.expect(jsonData.user).to.have.property('updatedAt');",
" pm.expect(jsonData.user).to.have.property('id');",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/users/{{userId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "users", "{{userId}}"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Delete User",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"user deleted correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('message');",
" pm.expect(jsonData.message).to.be.a(\"string\")",
"});",
"",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "DELETE",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/users/{{userId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "users", "{{userId}}"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Create Opportunity",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"opportunity is created correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('opportunity');",
" pm.expect(jsonData.opportunity).to.not.be.null;",
" pm.expect(jsonData.opportunity).to.have.property('opportunityStage');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityOwner');",
" pm.expect(jsonData.opportunity).to.have.property('remoteId');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityName');",
" pm.expect(jsonData.opportunity).to.have.property('lastActivityAt');",
" pm.expect(jsonData.opportunity).to.have.property('amount');",
" pm.expect(jsonData.opportunity).to.have.property('closeDate');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityAccount');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityDescription');",
" pm.expect(jsonData.opportunity).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.opportunity).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.opportunity).to.have.property('remoteDeleted');",
" pm.expect(jsonData.opportunity).to.have.property('createdAt');",
" pm.expect(jsonData.opportunity).to.have.property('updatedAt');",
" pm.expect(jsonData.opportunity).to.have.property('id');",
"});",
"",
"",
"var jsonData = pm.response.json();",
"let opportunityId = jsonData.opportunity.id;",
"postman.setEnvironmentVariable(\"opportunityId\", opportunityId);"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "POST",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"opportunityName\": \"Alloy-{{$guid}}\",\n \"opportunityStage\": \"qualify\",\n \"closeDate\": \"2023-11-17\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/opportunities?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "opportunities"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Opportunities Filters",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] opportunities are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('opportunities');",
" pm.expect(jsonData.opportunities[0]).to.not.be.null;",
" pm.expect(jsonData.opportunities[0]).to.have.property('opportunityStage');",
" pm.expect(jsonData.opportunities[0]).to.have.property('opportunityOwner');",
" pm.expect(jsonData.opportunities[0]).to.have.property('remoteId');",
" pm.expect(jsonData.opportunities[0]).to.have.property('opportunityName');",
" pm.expect(jsonData.opportunities[0]).to.have.property('lastActivityAt');",
" pm.expect(jsonData.opportunities[0]).to.have.property('amount');",
" pm.expect(jsonData.opportunities[0]).to.have.property('closeDate');",
" pm.expect(jsonData.opportunities[0]).to.have.property('opportunityAccount');",
" pm.expect(jsonData.opportunities[0]).to.have.property('opportunityDescription');",
" pm.expect(jsonData.opportunities[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.opportunities[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.opportunities[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.opportunities[0]).to.have.property('createdAt');",
" pm.expect(jsonData.opportunities[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.opportunities[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/opportunities?credentialId={{msDynamicsCRMCredentialId}}&opportunityNameContains=Alloy&opportunityStageContains=qualify",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "opportunities"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
},
{
"key": "opportunityNameContains",
"value": "Alloy"
},
{
"key": "opportunityStageContains",
"value": "qualify"
}
]
}
},
"response": []
},
{
"name": "Get Opportunity",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] opportunity is created correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('opportunity');",
" pm.expect(jsonData.opportunity).to.not.be.null;",
" pm.expect(jsonData.opportunity).to.have.property('opportunityStage');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityOwner');",
" pm.expect(jsonData.opportunity).to.have.property('remoteId');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityName');",
" pm.expect(jsonData.opportunity).to.have.property('lastActivityAt');",
" pm.expect(jsonData.opportunity).to.have.property('amount');",
" pm.expect(jsonData.opportunity).to.have.property('closeDate');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityAccount');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityDescription');",
" pm.expect(jsonData.opportunity).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.opportunity).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.opportunity).to.have.property('remoteDeleted');",
" pm.expect(jsonData.opportunity).to.have.property('createdAt');",
" pm.expect(jsonData.opportunity).to.have.property('updatedAt');",
" pm.expect(jsonData.opportunity).to.have.property('id');",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/opportunities/{{opportunityId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": [
"{{API_VERSION}}",
"one",
"crm",
"opportunities",
"{{opportunityId}}"
],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Update Opportunity",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"opportunity is updated correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('opportunity');",
" pm.expect(jsonData.opportunity).to.not.be.null;",
" pm.expect(jsonData.opportunity).to.have.property('opportunityStage');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityOwner');",
" pm.expect(jsonData.opportunity).to.have.property('remoteId');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityName');",
" pm.expect(jsonData.opportunity).to.have.property('lastActivityAt');",
" pm.expect(jsonData.opportunity).to.have.property('amount');",
" pm.expect(jsonData.opportunity).to.have.property('closeDate');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityAccount');",
" pm.expect(jsonData.opportunity).to.have.property('opportunityDescription');",
" pm.expect(jsonData.opportunity).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.opportunity).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.opportunity).to.have.property('remoteDeleted');",
" pm.expect(jsonData.opportunity).to.have.property('createdAt');",
" pm.expect(jsonData.opportunity).to.have.property('updatedAt');",
" pm.expect(jsonData.opportunity).to.have.property('id');",
"});"
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "PUT",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"opportunityName\": \"{{$randomNoun}}\",\n \"opportunityStage\": \"develop\",\n \"closeDate\": \"2023-11-17\"\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/opportunities/{{opportunityId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": [
"{{API_VERSION}}",
"one",
"crm",
"opportunities",
"{{opportunityId}}"
],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Delete Opportunity",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"opportunity deleted correctly\", function () {",
" var jsonData = pm.response.json();",
" console.log(jsonData);",
" pm.expect(jsonData).to.have.property('message');",
" pm.expect(jsonData.message).to.be.a(\"string\")",
"});",
"",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
}
},
"request": {
"method": "DELETE",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/opportunities/{{opportunityId}}?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": [
"{{API_VERSION}}",
"one",
"crm",
"opportunities",
"{{opportunityId}}"
],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "List Opportunities",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] opportunities are listed correctly\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('opportunities');",
" pm.expect(jsonData.opportunities[0]).to.not.be.null;",
" pm.expect(jsonData.opportunities[0]).to.have.property('opportunityStage');",
" pm.expect(jsonData.opportunities[0]).to.have.property('opportunityOwner');",
" pm.expect(jsonData.opportunities[0]).to.have.property('remoteId');",
" pm.expect(jsonData.opportunities[0]).to.have.property('opportunityName');",
" pm.expect(jsonData.opportunities[0]).to.have.property('lastActivityAt');",
" pm.expect(jsonData.opportunities[0]).to.have.property('amount');",
" pm.expect(jsonData.opportunities[0]).to.have.property('closeDate');",
" pm.expect(jsonData.opportunities[0]).to.have.property('opportunityAccount');",
" pm.expect(jsonData.opportunities[0]).to.have.property('opportunityDescription');",
" pm.expect(jsonData.opportunities[0]).to.have.property('remoteCreatedAt');",
" pm.expect(jsonData.opportunities[0]).to.have.property('remoteUpdatedAt');",
" pm.expect(jsonData.opportunities[0]).to.have.property('remoteDeleted');",
" pm.expect(jsonData.opportunities[0]).to.have.property('createdAt');",
" pm.expect(jsonData.opportunities[0]).to.have.property('updatedAt');",
" pm.expect(jsonData.opportunities[0]).to.have.property('id');",
"});",
""
],
"type": "text/javascript",
"packages": {}
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/opportunities?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "opportunities"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Get Opportunity Count",
"event": [
{
"listen": "test",
"script": {
"exec": [
"tests[\"Status code is 200\"] = responseCode.code === 200;",
"",
"var contentTypeHeaderExists = responseHeaders.hasOwnProperty(\"Content-Type\");",
"tests[\"Has Content-Type\"] = contentTypeHeaderExists;",
" ",
"if (contentTypeHeaderExists) {",
" tests[\"Content-Type is application/json\"] = ",
" responseHeaders[\"Content-Type\"].has(\"application/json\");",
"}",
"",
"pm.test(\"response should be okay to process\", function () {",
" pm.response.to.have.status(200);",
" pm.response.to.not.be.error;",
" pm.response.to.not.have.jsonBody(\"error\");",
"});",
"",
"pm.test(\"[ZohoCRM] opportunity count is returned\", function () {",
" var jsonData = pm.response.json();",
" pm.expect(jsonData).to.have.property('count');",
" pm.expect(jsonData.count).to.be.a(\"number\");",
"});",
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disabledSystemHeaders": {
"accept": true
},
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
{
"key": "Authorization",
"value": "Bearer {{apiKey}}",
"type": "text"
},
{
"key": "Accept",
"value": "application/json",
"type": "text"
}
],
"body": {
"mode": "raw",
"raw": "",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{URL}}/{{API_VERSION}}/one/crm/opportunities/count?credentialId={{msDynamicsCRMCredentialId}}",
"host": ["{{URL}}"],
"path": ["{{API_VERSION}}", "one", "crm", "opportunities", "count"],
"query": [
{
"key": "credentialId",
"value": "{{msDynamicsCRMCredentialId}}"
}
]
}
},
"response": []
},
{
"name": "Remove UAPI Data",
"request": {
"auth": {
"type": "noauth"
},
"method": "GET",
"header": [
{
"key": "X-Alloy-Auth",
"value": "1234567890abcdefghijklmnopqrstuvwxyz",
"type": "text"
}
],
"url": {
"raw": "{{api_base_url}}/api/testHelpers/finishUapi/MSDYNAMICSCRM",
"host": ["{{api_base_url}}"],
"path": ["api", "testHelpers", "finishUapi", "MSDYNAMICSCRM"]
}
},
"response": []
}
],
"auth": {
"type": "bearer",
"bearer": [
{
"key": "token",
"value": "{{API_KEY}}",
"type": "string"
}
]
},
"event": [
{
"listen": "prerequest",
"script": {
"type": "text/javascript",
"exec": [""]
}
},
{
"listen": "test",
"script": {
"type": "text/javascript",
"exec": [""]
}
}
],
"variable": [
{
"key": "URL",
"value": "http://localhost:1234",
"type": "string"
},
{
"key": "api_base_url",
"value": "http://localhost:4040",
"type": "string"
}
]
}