Recommendation system

What is a recommendation system?

Recommendation system is email marketing logic that chooses the user to send the email to, the most relevant content, and the best time to send the email when it is most effective to interact with the user. The purpose of a recommendation system is to keep in touch with your users and encourage them to use your product.

What problems does the recommendation system help to solve?

  1. There are too many events on the product (for example, the user receives many messages, page views, adding to the favorite list, etc.), and we cannot send emails for each and every event. A recommendation system helps solve this problem by choosing the most relevant event for the email to the user.
  2. It is necessary to build a system of regular emailing (for example, 2 or 3 emails daily). Therefore, a recommendation system helps to solve the "what to write about" problem, and suggests the email content based on the user's actions on the product or general updates according to the preferences of a particular user.
  3. Sending emails not when a certain event occurs but at a time customized for a specific user.

The main advantage of a recommendation system is personalization, in contrast to marketing campaigns sent for all users or segments. Therefore, personalized emails are more effective than campaigns or static emails because their content is based on the user's actions or events and updates directly related to the user. So, emails sent according to the logic of the recommendation system are emails about unique personalized events at the right time.

This logic is based on events, examples of which include:

  • actions performed by the user on the product,
  • actions of other users concerning a certain user (viewing his page by other people or adding his page to the "saved" list)
  • events directly related to the user (publication of a new book belonging to the category of his favorites).

How does the recommendation system work?

  1. First, the system forms a list of users to send emails to at this moment;
  2. Chooses the type of email that needs to be sent and makes an event-type request with the correlation to a specific user to your API endpoint.
    An event-type request is the most relevant type related to an actual event on the product (like, a message received, a friend request confirmed, etc.) relevant to the user. Also, for each email type, we have separate settings that the system takes into account (for example, the frequency of sending a certain type of mail, etc.) and cuts off those email types from which the user is unsubscribed (this can be checked using the Get current unsubscribe type mails), and also cuts off certain email types according to configured Rejects.
  3. In response, you need to send a request to the API endpoint to send trigger email with the corresponding email type we requested (for example, to send a "new message" email), filling the email with personalized user information. Source_id parameter of the request is also additionally passed so that we can distinguish between requests initiated by us and requests initiated directly by you.
    If the user did not have a corresponding event (for example, we want to send a “new message” email, but the user has no unread messages, so our email would be irrelevant), you can send another trigger email with the same source_id.
  4. Sends the email of the corresponding type to the user.
  5. The graph of event requests using the recommendation system can be seen in the Analytics section in the admin panel by selecting the "Requests" metric in the settings. In addition, you can select the "Response rate" metric and configure filters for the needed project for the desired time period.

The logic of the recommendation system

What is required from your end to use the recommendation system?

  1. Track, collect, and store events on the product related to a specific user;
  2. OR willingness to generate an event at our request. For example, to provide information about the newest book in a category that the user likes but which he has not yet opened, and provided that we have not already informed about this in previous emails;
  3. At the stage of integration, together with CSM, agree on a list of such events for which our system can make requests for future email sends;
  4. Make a correlation between a certain type of event and the email type that we can send;
  5. Connect trigger email types;
  6. Create email templates for each email type from the agreed ones (optionally, this step can be performed by our team);
  7. Prepare an API endpoint on your end that will accept our API requests.

What information should you give us and what API endpoints should you use?


1. In what format should the data be sent?

Data must be sent in JSON format.

2. How to find out type_id of an email?

You will find out the type_id of the email from our request, which we send to your API endpoint.

3. How is a user selected for sending an email?

  • The system selects from the database all the users who currently have the most popular interaction hour during the day (it is most probable for the user to open the email and make clicks) [time personalization];
  • Next, the system selects users based on a certain main criterion (for example, was online 10 minutes ago, did not receive emails in the last 6 hours, etc.);
  • From the sample of users, after applying the main criterion, the system cuts off a part of users to whom it is currently not relevant to send an email (for example, the user is unsubscribed from emails, is currently online on the product or recently has received trigger emails, etc.);
  • The selection of users to whom it is currently relevant to send an email according to the system's logic is formed
  • 4. How is sending an email initiated: for each user separately?

    Our logic initiates sending for each user separately, exactly at the moment when it is recommended to send an email.

    5. How are the requests that Sendios sends to your API endpoint and which you make on the API endpoint of sending trigger emails signed?

    Signing requests sent to your API endpoint is optional, so the signature token will not be added to our event request (only basic parameters will be present). The requests sent to us are signed by default in the form of clientId and clientToken.

    6. What kind of request does Sendios send to your API endpoint?lp

    Your API endpoint will receive a POST request with the following parameters:

        "project_id": 123, // Sendios  
        "email": "[email protected]",  
        "type_id": 1,  
        "source_id": 1,  
        "client_user_id": 123234 // your user id on product - optional  

    7. How to test the API point on your end?

    You can test your API endpoint with this URL query:

        curl -X POST \
        -d '{"project_id": 123, "email": "[email protected]", "type_id": 1, "source_id": 1, "client_user_id": 123234}'  

    If you have any questions, please contact your Customer Success Manager