Can I use Voice of the Customer surveys to keep client contact data up to date in CRM
Yes you can, with the help of a workflow.
Let’s say you send a survey to clients and want them to let you know if their address or phone number have changed. You could create a survey containing fields for street, city, postal code, and phone number, then create a workflow to update the contact record with the data provided.
Here’s a “no code” way to do this. First thing you need to know is survey responses are stored in an entity called Survey Response. Answers to questions are stored in the Question Response entity, which is a child of Survey Response. When a customer responds to a survey, the customer is referenced in the Account or Contact lookup field in the Survey Response entity, and all of the customer’s answers are stored in related Question Response records.
So you could create a workflow that runs on create of Question Answer.
First step, do a check condition step to see if the related survey response is from a contact. If it isn’t, stop the workflow.
The first challenge we are going to hit is that since the answer doesn’t have a direct relationship with contact, we can’t easily update the Contact record from a question response workflow. One way to resolve this is to add a relationship between question response and contact, and if the response is related to a contact, update the contact field on the question response to link it to the contact.
Next, check condition to validate which field should be updated.
You may also want to check to see if the response contains data, so you don’t overwrite data with blanks. Then update that field of the contact record.
Add a conditional branch for each additional question that you want to update the contact record.
Warnings and considerations
This is just a simple example of how you can use VOC surveys to update customer information. While this is possible, I would think twice before using this approach in production.
- It’s not efficient.
- Depending on your volume of responses, having a workflow fire on each one (and even if the response doesn’t meet the check condition, the workflow is still running for each create) might cause performance issues.
- Having clients update their contact information can be convenient, but it can also be risky. Somebody might update their email address to be email@example.com or put all zeros in their phone number.
- A more efficient way to do this might be to use a batch job with KingswaySoft rather than having a workflow fire for each question.
- Better options might be to use a ClickDimensions form or Dynamics 365 portal.
Another method for simple surveys is to set Response Mappings on the question entity. This will store the answer response in the SurveyResponse attributes (which is associated with a contact if associated at the invitiation) and a workflow can be run on this to do any updates
Another alternative is to run a workflow on the SurveyResponse entity and call a child workflow to get the response answer.
If you run a workflow on the SurveyResponse entity, use the Workflow Template that is supplied so that it runs when response processing is complete.
This is all from memory and may have changed since the initial release 🙂
In your example, it appears you are using a “What is your telephone number?” question to update the telephone number of the contact. You don’t actually show how you update the contact though. I mention this, because when I follow your directions, I’m not able to update anything on the Contact entity.
[…] to Joel Lindstrom in this blog, this is possible (at least for the Contact entity) via a workflow, but it doesn’t actually […]