Service Desk & CRM Integrations

This guide details the main integration use cases and APIs for Service Desk and CRM partners with Yotpo Reviews and Yotpo Loyalty.

Main use cases covered in this guide:

  • Moderate incoming reviews directly from the Service Desk
  • Add an event to a customer’s timeline each time a new review is received
  • Display a customer’s profile with Yotpo reviews data
  • Include a customer’s latest reviews
  • Collect a review about the service when tickets are completed

  • Display a customer’s profile with Loyalty data
  • Add an event to a customer’s timeline each time a new loyalty event is recorded in Yotpo
  • Adjust points balance for clients from the service desk panel

📘

Have you registered your app yet?

Before you start building your app on top of Yotpo’s App Developer API, you first need to register it with us. If you haven’t done so yet, refer to the steps in our Welcome guide.

Yotpo Reviews

Moderate incoming reviews directly from the Service Desk

Yotpo has built a review escalation email that is designed to work on any help desk and allows merchants to moderate their reviews directly from within the help desk. Learn more about setting up and testing this feature in our help desk integration user guide.

📘

Please note:

Some partners have used these escalation emails as a trigger for a new case on behalf of the customer (instead of from a unique Yotpo address). They have also built a more intuitive UI, while responding to the Yotpo email with the moderation action behind the scenes to the unique Yotpo address so Yotpo can moderate the reviews. APIs for review and Q&A moderation are currently not available.

Add an event to a customer’s timeline each time a new review is received

If the ‘generic’ help desk escalation emails don’t record in the customer timeline in the way you wanted them to, you can listen to Yotpo’s review_create webhook event in order to capture incoming reviews.

Display a customer’s profile with Yotpo reviews data

The Retrieve Customer Details by Email endpoint allows you to return a customer’s aggregated reviews data by email using one call.

Alternatively, you can update all customers whose record changed since the last sync by using the Retrieve Customer Details by Date endpoint.

📘

Please note:

  • Although some loyalty data is also available in this call, we recommend using the reviews information only (see below for Loyalty integration best practices).
  • The Retrieve customer endpoints are updated once every 24 hours and will only return verified reviews. Anonymous reviews that are submitted on-site and are not yet verified by the reviewer will not be returned even if published. If you are testing your app using a test account, make sure you verify your email when creating reviews and wait 24 hours to successfully retrieve this data.

Include a customer’s latest reviews

Use the Retrieve Reviews endpoint with the customer’s email as a query parameter and sort by date to pull as many of the latest reviews as you would like to display. Please note that this endpoint updates in real time so there may be up to a 24 hour discrepancy between the number of reviews returned in the aggregate data mentioned above (Customer Details by Email) and reviews returned through this endpoint.

Collect a review about the service when tickets are completed

Once a case is successfully closed, add a link to your thank you message asking the customer to submit a review. The link should bring the customer to a page (hosted either by the customer or by you) that contains the code below. Make sure you replace the {{###YOUR APP-KEY###}} with the client's API Key.

<script type="text/javascript">
(function e(){var e=document.createElement("script");e.type="text/javascript",e.async=true,e.src="//staticw2.yotpo.com/{{###YOUR APP-KEY###}}/widget.js";var t=document.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();
</script>
<div class="yotpo yotpo-main-widget"
data-write-only="true"
data-product-id="yotpo_site_reviews"
data-price="0.0"
data-currency="USD"
data-name="yotpo_site_reviews"
data-url="{{url to an about us / FAQ page on-site}}"
data-image-url="{{url to a small square brand logo}}">
</div>

Yotpo Loyalty & Referrals

Display a customer’s profile with Loyalty data

The Retrieve Loyalty customer details by Email endpoint allows you to return a customer's loyalty status by email using a single API call (can be made in real-time).

Add an event to a customer’s timeline each time a new loyalty event is recorded in Yotpo

Ask the brand to place your Webhook URL in their Yotpo Loyalty account settings. If they already have another URL set up, they can separate them with a comma.

Once implemented, you will receive all of these webhook events for the said brand.

Adjust points balance for clients from the service desk panel

By using the Adjust Loyalty Customer Points endpoint, you will be able to provide a positive or negative value depending on the reason for the adjustment for a specific client directly from the help desk.

Below is an overview of common adjustment reasons and recommended parameters, depending on the reason for the adjustment.

It's important to note that the apply_adjustment_to_points_earned param controls which adjustments will only affect the customer's current point balance, while others will also affect their lifetime or total points earned.

Adjustment reason

Description

point_adjustment_amount

apply_adjustment_to_points_earned

Reward customer

Reward a customer with points

Positive integer

TRUE

Refund points deducted by redemption/expiration

Reimburse a customer if they lost points due to a refund or points expiration

Positive integer

FALSE

Redeem points for a discount

Use a customer's points in order to redeem a discount on their behalf

Negative integer

FALSE

Remove earned points

Deduct points that were not supposed to be earned, for example, points earned for a purchase that was later refunded or canceled

Negative integer

TRUE

Expire points

Bypass the point expiration date set in your Loyalty & Referrals admin and expire them immediately

Negative integer

FALSE