PII Tokenized Sending




PII tokenization sending is a unique offering of MoEngage, which has been patented (in progress).

PII (Personally Identifiable Information) data can be classified as follows from a campaign standpoint:

  • Customer contact details required to send the campaign to customers like their Email ID, Mobile number
  • Customer information required for personalizing the campaign content like the customer's first name, last name, and so on.

Tokenization is the process of replacing sensitive information elements with non-sensitive ones, called tokens, to ensure data security. The PII - Tokenized Sending feature is a set of configurations that ensure that your end customers remain completely anonymous in the MoEngage database. This is done by assigning an anonymous ID to every customer so that their identity is protected. This feature aims to provide an option to engage customers without storing any personal or restricted data in MoEngage. Thus, you can continue segmenting, personalizing, and engaging (sending campaigns) your customers without storing the customer's PII data in the MoEngage Databases.

MoEngage complies with GDPR and data masking. For more information, refer to GDPR and PII Masking.



PII Tokenized Sending is a paid feature. Please connect with the MoEngage support team to enable it for your account.


  1. PII API configuration: You must configure the PII API on the MoEngage dashboard. This is required to fetch the contact information for customers while sending campaigns using the unique customer identifier stored in MoEngage.
  2. Availability of anonymous ID in your DB: You must maintain a unique anonymized customer identifier in your DB. This anonymous ID will be the shared common identifier for the customer between your system and MoEngage.


You can configure your PII API in the MoEngage dashboard to fetch the Email ID/Mobile Number of the customer while sending the campaign.



  • PII Tokenized Sending is supported for the following channels and partners: SMS (All the native and custom SMS connectors or service providers), Email (SendGrid, Amazon SES, and Custom SMTP connectors), WhatsApp (All the native and custom WhatsApp connectors)
  • When PII Tokenized Sending is enabled, Frequency Capping is not supported for the Email channel. However, it is supported for the SMS and WhatsApp channels.
  • When PII Tokenized Sending is enabled, the following are not supported:
    • Opt-out Management (WhatsApp)
    • Subscription Management (SMS)
    • Message Archival
Email Settings SMS Settings WhatsApp Settings

If you classify customers' Email IDs as PII and don't want to store them in MoEngage, you can go to the Email settings and configure it as described below.

  1. Navigate to the MoEngage Dashboard > Settings and click on Email in the Channel section.
  2. Click on the Data tab. Select the option from where you would like to pick the Customer's Email address in the Customer's email address data field. There are two options:
      • Customer's email addresses are stored in MoEngage DB
      • Customer's email addresses are not stored in MoEngage DB (Fetch via API)
    By default, this is set to pick up the email ID from the MoEngage standard Email attribute: Email (Standard). You can change the option to Fetch via API. Once this option is selected, the API settings can be entered in the UI, as shown below.
  3. Provide the API details from where MoEngage should retrieve the customer's email address during runtime (when sending a particular campaign to which the customer is eligible).


  4. API configuration
    • Method: Select the GET or POST method.
    • Request URL: Type or paste the "Request URL" of the API.
    • Parameters: Type or paste the relevant "URL parameters", "Headers" &/or "Body" details for the API as the key-value pairs. 


    The API request parameters must contain the personalized user attribute that is the unique customer identifier for MoEngage and your customer database where customer details are stored.

  5. Testing the API
    •  Next, the chosen personalized parameter will be available for you to pass a test value and check the API response.
    • Enter the test value.
    • Press the "Test" button. This will call the API and the API response parameters will dynamically get populated in the Email address field in the API response field.
  6. Choosing the API response parameter, which contains the email address
    • Once the test is successful, the "Email Address field in API response" field will get enabled.   
    • From the drop-down in the "Email Address field in API response" field, select the API response parameter, which contains the customers' email addresses.
  7. Save the configuration.


Steps Involved in PII-based Campaign Sending


For the campaign sending flow, we assume that the prerequisites for PII settings are configured. 

  1. Email/SMS/WhatsApp campaign is triggered by a user event or is scheduled at a specific time.
  2. MoEngage calls your GET API configured in the settings and passes the anonymized customer ID for each eligible customer for the campaign.
  3. Your API retrieves the mapped Email/Mobile Number and sends it back to MoEngage.
  4. The campaign-sending process begins by calling your Email/SMS/WhatsApp service provider with your Email ID/Mobile Number and other message details. MoEngage deletes the Email ID/Mobile number & other PII data (like First name, and last name retrieved via Content-API for the specific campaign) as soon as it is shared with the configured Email/SMS service provider.
  5. The Email/SMS/WhatsApp is sent to the customer by your ESP/SSP partner.
  6. The Email /SMS/WhatsApp service provider shares the message delivery details with MoEngage.
  7. MoEngage maps the delivery data back to the campaign using the message ID and deletes the Mobile Number/Email ID just in case it is returned as part of the delivery data.
  8. The delivery status and corresponding metrics are shown in the Campaign Analytics section of the respective campaign on the MoEngage dashboard.

Note:  Personalization information like name can be fetched from your database using "Content API". For more information, refer to Personalization using Content APIs.

Anonymization Support

Here are a few other changes implemented to support customer anonymity in the MoEngage platform.

Campaign Sending Logs - If Tokenized Sending has been configured for a specific channel, the logs for the campaign will stop storing email/mobile number data (depending on the channel for which PII Tokenized Sending is configured) from the next instance of the campaign run (post the configuration change).

Campaign Delivery data - Delivery data is tracked by MoEngage for all the native connectors, and MoEngage maps the delivery data back to a campaign using the message ID field.



Delivery information is not tracked for custom (SMS and Email) connectors.

Segmentation - The 'show count' query will list the user count as part of both Segmentation from the Segment-> Create Segment navigations and Segmentation in campaigns. However, the reachable user count cannot be shown in both cases as MoEngage does not store the mobile number or email address (which is the basis for computing reachability).

Current campaigns (live campaigns) - If there are any live campaigns for that channel (point channel or flows) when the PII API settings are configured, sending will be done by fetching the Email ID / Mobile number from the very next instance.

Personalized Preview - The personalized preview feature will be disabled automatically after the PII settings are saved for a particular channel. However, it is to be noted that "personalized preview" is an independent feature and can be enabled back for the channel based on explicit consent shared by you with your CSM (Customer Success Manager).

Campaign Testing Failure Reason - While testing a campaign when the campaign is being created (for the channel where PII configuration is set), if the API fails to respond, the API error will be shown in the UI.

Campaign Analytics - The customers for whom the PII API configured above fails to retrieve the customer sending ID (Email ID / mobile number) will not be counted in the Campaign delivery stats in the Campaign Info/Analytics section. This is because this funnel accounts for users with a valid Email ID / Mobile number.

Content Personalization when customer data is not available in MoEngage - While the PII API above focuses on retrieving the customer's sending ID (Email ID / Mobile number), MoEngage's Content API feature allows you to fetch any data (PII and/or other) directly from your database in real-time when the campaign is about to be sent to the end customer. Click here for more information about Content APIs. 

Frequently Asked Questions

1. Do you need a tokenization server to create an anonymous ID?

No. A separate tokenization server is not required for generating an anonymous ID.

2. Can Content API and Sending-ID solutions work independently?

Yes. Both are independent features; many of our customers use Content API alone to personalize campaign content using Content API. Similarly, the Email/Mobile number tokenization can also work without Content API configured or used in a campaign.

3. What happens to active campaigns that are in progress if I change the settings now?

All the campaigns for the specific channel (for which you have just saved the settings), including the currently active campaigns, will fetch the Email ID/Mobile Number via the API rather than the value stored in MoEngage. If, for a few end-customers, the campaigns have already been triggered to the configured Email / SMS / WhatsApp provider; they might receive the campaign with the data stored in MoEngage.

4. What happens to draft/scheduled campaigns activated after changing these settings?

The draft campaigns will also use the PII API as soon as they are published or triggered next.

5. What happens to data retrieved in real-time from my customer's database?

It is shared with your Email / SMS / WhatsApp service provider and deleted afterward.

6. Does the log contain the PII thus retrieved via API?

For the channel where you have saved the setting to retrieve data via PII API, MoEngage will stop storing the Email ID and/or mobile number in the logs. The logs will have the unique customer identifier (or the tokenized identifier) that is common across MoEngage and your customer database.

7. Are these settings applicable for Flows as well?

Yes. For example, suppose the email settings are configured to fetch Email ID via API rather than using the value stored in MoEngage. In that case, both the individual email campaigns and email campaigns that are part of the flows will start using the API to fetch the customer's email ID rather than relying on the email attribute in MoEngage DB.

8. Does MoEngage offer PII masking?

Yes, please take a look at our PII masking solution here.

9. Does MoEngage Inform support PII tokenized sending?

No, currently, we do not support PII tokenized sending in MoEngage Inform.

10. How does MoEngage handle retries if the PII API does not respond? Is the entire batch considered to have failed or is the failure marked only for users for whom the PII API did not respond?

MoEngage retires for a maximum of three times with a time interval of two sec for each retry. In the case of failure, the entire batch is not retried. Retries happen only for those users for whom the PII API did not respond.

11. Does the PII API also have the send and throttle speed as email batching?

Yes, the send and throttle speed of the PII API is the same as that of email batching.

12. Can I encrypt my PII data?

Yes, MoEngage supports symmetric key encryption. You can encrypt the payload sent from the API using symmetric key encryption. The PII value will be decrypted only at the time of sending the campaign.

13. What error does MoEngage display in the error breakdown section of campaign analytics in case of a failure due to PII API not being responsive?

Channel Error Shown in the UI (in the error breakdown section)
SMS and WhatsApp
  • Invalid API response (fetching Mobile No.)
  • Invalid/empty customer identifier in MoEngage DB
  • Invalid API response (fetching Email ID)
  • Invalid/empty customer identifier in MoEngage DB




Was this article helpful?
2 out of 2 found this helpful

How can we improve this article?