Have you ever bought a product or used a service from an organisation, then had a follow up request for a review on Trustpilot? Most of us have, but if you are not sure what Trustpilot is, it’s an independent review process which aims to help consumers make educated decisions on their next purchase or for businesses to feel a sense of trust with one another when engaging in services. I’ve definitely checked it out in the past and added reviews. I know there are clients of mine using it, so I wondered if there was a way to automate the process that sends an invitation FROM Trustpilot to your customer. This would then become a verified review, rather than just any random person rating your organisation or products. Let’s take a look and see how you could send Trustpilot Invitations using Realtime Marketing triggers in Customer Insights – Journeys.
First, you will need to set up a business account. As part of that, you will have a unique Trustpilot email address for your account. There are two methods you can use as part of their Automatic Feedback Service (AFS). The first is when an email is sent out to a customer after they purchase something, or have received a service of some kind, you can BCC your Trustpilot email address. This isn’t possible to do from a marketing email in Realtime as there is no BCC field. The second option is to send an email directly TO that Trustpilot email address with an email that contains some dynamic data.
This we CAN do. Go ahead and create a Contact in D365 for Trustpilot, and add in your unique email address tied to your Trustpilot Account.
Decide WHEN you want to send out these emails. That could vary for you. In my example, I want to send things out to my clients a month after their first invoice is paid. Check out the guidelines from Trustpilot for sending invitations. I am going to need two new fields on my Contact record. One is a date that will show when the Invitation should be sent that is based on timings from Trustpilot, and one is a Yes/No field that I can use to determine when to send the invitation.
Now I am going to set up three triggers.
The first one might be different for you. This will be used to start a Journey when my Send Trustpilot Invitation field on a Contact is set to Yes. This is a Dataverse trigger.
My email is something that will go out to all Customers after they have paid their first invoice. This is where you need to decide when that email makes sense to go out. If it’s for a Product purchase, it could go out and be included as part of the confirmation email and should explain the process and timeframe in which they could expect to get an email from Trustpilot. The free business account (which I have) sends 7 days from the point at which you send the request to Trustpilot, so that is reflected in the email to the client.
The next trigger is the second option (not a Dataverse one) that needs configuration. In reality, this one doesn’t, it just needs you to select the audience data type of Contact and make the trigger live, that’s it.
The last trigger is needed so we can get values from the Contact passed using trigger two, and add them to an email to send across to Trustpilot.
For this trigger, we need to create a very simple corresponding email. The email is basic, with a subject of Trustpilot Invitation, and one section with some text. The text is purely to remind people that this includes custom code so not to delete it.
In the HTML in the text section, I’ve added in a code bloc. This is what Trustpilot needs to receive as a structured data snippet containing the customers data. There are more things you can pass through which you can read about here, but I am passing the name, email and an ID for the customer. For me, the ID is the Account Number from their related Company.
You can use this below. Make sure you keep the information wrapped around the dynamic fields so it doesn’t strip things out when the email is sent.
<!-- <script type="application/json+trustpilot"> { "recipientName": "{{CustomerName}}", "recipientEmail": "{{CustomerEmail}}", "referenceId": "{{CustomerID}}" } </script> -->
Those three values in the code are coming from Trigger Three so should be mapped accordingly.
Here is the first Journey you will need. This uses Trigger One as the starting point so whatever you are using to determine you want to let someone know they will get an invitation from Trustpilot soon. For me, that is when I change the field Send Trustpilot Invitation to Yes on a Contact record. Then the next step is to send the email that tells them I use Trustpilot to gather reviews. The last step of this Journey is to activate a custom trigger, and pick Trigger Two. There is nothing to map in this step because the only thing we are passing is the Contact GUID. So that’s it. Pretty simple.
Now we need to create a flow that will run when Trigger Two is run in the Journey above. So in Power Automate create a flow that triggers when an action is performed using the Dataverse connector. The catalog is Cxp (Customer Experience), category is Custom and table name is (none). Then find the name of Trigger Two you created.
Now we need a List rows step from the Dataverse connector to find the Trustpilot contact we created. You only need to bring back the contactid so add that in the select columns, and your filter should be emailaddress1 eq ‘youremail@invite.trustpilot.com’.
Now we need to get the Contact record using the Get row by ID action from the Dataverse connector. To do that, we need to use the profileid output from the starting trigger of the flow. Remember, this was passed through Trigger 2 as part of Journey 1 right at the end. We need to get their email address, full name, contactid and in my case, I am using the Account number of their related Account as the ID to send back in the structured data snippet to Trustpilot. You might have different requirements and use an ID directly on the Customer, or use an Order or Invoice number when someone purchases something.
Now use the Perform an unbound action step from the Dataverse connector. The Action Name is whatever you called Trigger 3 with msdynmkt_ at the start of the name. Then you should have at least three values that need populating for the customer email, name and id. Here you can see I am populating them and they are coming from the Get Customer Contact step above. The signal ingestion timestamp and signal timestamp should be set as utcNow(). Finally, the signal user auth id and profile id should be the GUID of the Trustpilot Contact NOT the Customer Contact. This means we will take the Trustpilot Contact and send them through our next Journey which will send out the email tied to Trigger 3. Use the expression below to get the id of the Contact. Using this first logic will get the row found in the List rows step when we found the Trustpilot Contact. Without it, you will end up with a messy Apply to each which we can avoid.
first(outputs('Find_Trustpilot_Contact')?['body/value'])?['contactid']
Finally in the flow, and this is optional, I am updating the Contact with the date that the invitation should be sent to them from Trustpilot. If you have a paid Business Account you can determine a shorter timeframe but the free account is 7 days. So I am using an Update a row action from the Dataverse connector and setting my Invitation Sent Date to 7 days from now.
@{formatDateTime(addDays(utcNow(), 7), 'yyyy-MM-dd')}
Ok now the final thing is the second Journey. This is the one that will send out an email with the data snippet needed to Trustpilot. So the step in the flow above that is Perform an unbound action that puts the Trustpilot Contact you created in to the Journey. It starts with the last trigger that sends out the Truspilot email TO the Trustpilot Contact. Make sure the Journey can be repeated immediately, that the email was set to Transactional, no Quiet Times are on etc. Then add your Email step which is the one that includes the data snippet and again, is ONLY going to Trustpilot. That’s it, simple.
If you then go in to your Trustpilot dashboard, Get reviews, then your Overview, you should see your invited customers list. You’ll see it queued until the date sent date along with when it was created, your sender details and who the recipient is.
Once the invitation has been sent by Trustpilot, you’ll see the status of Delivered and that’s it. Now you just have to wait to hopefully start getting some reviews!
Finally, when a nice person gives you a review, you’ll see that it shows as Verified because it came via the Trustpilot invitation that you triggered via Journey 2. Hooray!
Original Post http://meganvwalker.com/send-trustpilot-invitations-realtime-marketing/