web
You’re offline. This is a read only version of the page.
close
Skip to main content
Community site session details

Community site session details

Session Id :
Dynamics 365 Community / Blogs / Rahul Tiwary CRM Blogs / D365 CE- Incident managemen...

D365 CE- Incident management integration with SAP Qualtrics – Part 1

Rahul_Tiwary Profile Picture Rahul_Tiwary

In my current project, I had a requirement to integrate Microsoft’s Customer Service module with SAP’s Qualtrics survey management system in real time.

Detailed Requirement: When a service agent resolves an incident in D365 CRM a survey link should be sent to the customer via email for CSAT (customer satisfaction) which will get captured in Qualtrics and reporting will be done accordingly.

Responsibilities of each System :
a) D365 CRM – Send customer information along with the case details to Qualtrics.
Capture survey link from the Qualtrics response and embeds in email and send it to the customer.
b) Qualtrics – Identifies the customer, if it’s new just create it else update and give us a survey link specific to that case/incident and customer. Once customer fills that information, capture the response and link it back to specific case number, customer and the agent who resolved this.

How we achieved this ?

Qualtrics :

Need a token to authenticate, mailing list, directories, survey and all the API’s that will help to achieve this
Login to qualtrics and go to account settings -> Qualtrics IDs

Get your Directory ID , Survey ID, Mailing List Id and Token to authenticate

Now we have all the prerequisite to start working with the Qualtrics API’s. https://api.qualtrics.com/api-reference/
Let’s open postman and start validating API’s that we require to achieve this functionality

Header will be common to all the API calls
Key : X-API-TOKEN and Value : Token
Key : Content-Type and Value : application/json

Body : {  “transactionIds”: []
}
Store the transaction ID that you will get as a response

  • Step 2 : Call Contact Import transaction API : This is basically to attach contact details with the transaction along with transaction data if any. Now in our case want to pass case number and agent name who resolved the case.

    POST : https://fra1.qualtrics.com/API/v3/directories/{directoryId}/mailinglists/{mailingListId}/transactioncontacts

Body :{  
“transactionMeta”: {    
“batchId”: “transactionId from the previous API response“,    
“fields”: [      “CaseNumber”,    “AgentName”    ]  },  
“contacts”: [{ 
     “firstName”: “Rahul”,  “lastName”: “Tiwary”, “email”: “rtiwary@microsoft.com”,  
“extRef”: “rtiwary@microsoft.com”,      “unsubscribed”: false,
 “transactionData”: {        “CaseNumber”: “CAS-99999-C1H0W3”,   “AgentName”: “Harsh Tiwary” }   
 } ]
}

In response you will get import Id , tracking URL and status. Initially the status will be In-Progress and we can’t go to the next step till the import status is not completed. Now how to check the status ? Using tracking URL. So it its best idea to store this tracking URL and check the status accordingly.

  • Step 3: Tracking Import Contact Status
    You can call the same Tracking URL that you get in response to import contact. Below is the format of the same

Get: https://fra1.qualtrics.com/API/v3/directories/{directoryId}/mailinglists/{mailingListId}/transactioncontacts/{importContactStatusID}


This was originally posted here.

Comments

*This post is locked for comments