Genesys Cloud - Developer Community!

Sign Up

Expand all | Collapse all

Messaging - How to prevent sensitive information from being recorded in the interaction history

  • 1.  Messaging - How to prevent sensitive information from being recorded in the interaction history

    Posted 5 days ago
    Hi everyone,
    I need some help with a WhatsApp/Open Messaging flow. I believe this may not be possible natively in Genesys Cloud, but I wanted to ask if anyone has already faced a similar scenario.
     
    In this flow, we need to collect a piece of information from the customer in order to execute a Data Action. However, this information is recorded in the real-time interaction history and becomes visible to the agent during the conversation.
     
    We are aware that Genesys Cloud provides a masking feature after the interaction ends, but in this case, the requirement is to prevent this information from being recorded or displayed to the agent while the interaction is still in progress.
     
    Has anyone found a workaround or implemented a solution for this scenario?
     
    I believe the ideal approach would be to use a secure flow for messaging, similar to what is available for other channel (voice), but I have not found this option available in the environment so far.

    #Architect

    ------------------------------
    Elisson Fernandes
    ------------------------------


  • 2.  RE: Messaging - How to prevent sensitive information from being recorded in the interaction history

    Posted 5 days ago

    Hi Elisson,

    From what I've seen, there isn't currently a native equivalent of secure input for messaging channels (like secure flows in voice) in Genesys Cloud.

    For your requirement (capture data → use in a Data Action → hide it from the agent in real-time), there are a few capabilities available, but each comes with trade-offs:

    • Digital Data Filtering
      Can prevent sensitive data from being visible to agents by masking it at ingestion time, but it removes the value entirely, so it can't be used later in a Data Action.
    • Automatic Redaction (STA)
      Allows data to be used and masks it in transcripts, but this happens after ingestion, so it doesn't function as a true real-time secure input.
    • Functions / Data Actions / Scripts
      These help with processing or controlling the agent UI, but the customer input is already captured in the transcript before these are applied.

    So currently, there isn't a native way to both:

    • Use the data in the flow
    • And prevent it from being visible to the agent during the interaction

    One approach that may work depending on your scenario is to capture the sensitive data outside of Genesys:

    • Send the customer a secure external link via messaging
    • Collect the data in a secure form or portal
    • Process it there or pass it to a backend service (such as a Genesys Function or external API)

    This ensures the sensitive data never enters the messaging interaction, so it isn't recorded in the transcript or visible to the agent, while still allowing it to be processed securely.

    Hope this helps. Would be great to hear if anyone in the community has implemented a similar use case.



    ------------------------------
    Phaneendra
    Technical Solutions Consultant
    ------------------------------



  • 3.  RE: Messaging - How to prevent sensitive information from being recorded in the interaction history

    Posted 5 days ago

    There is also an idea in the Genesys Ideas portal that aligns closely with this requirement:

    https://genesyscloud.ideas.aha.io/ideas/SSA-I-561

    This proposes a "Secure Message Flow" capability to handle PII in messaging without exposing it to agents or transcripts, similar to secure flows in voice. From what I can see, this capability isn't currently available , but it highlights that this is a known gap.



    ------------------------------
    Phaneendra
    Technical Solutions Consultant
    ------------------------------



  • 4.  RE: Messaging - How to prevent sensitive information from being recorded in the interaction history

    Posted 5 days ago
     
    Thank you for the update and for the alternative!
     
    I've also been looking into other options, and I noticed there is WhatsApp Flow. Based on what I found, it seems it can call an endpoint and forward a payload that is different from what the user typed.
     
    Since I haven't worked with this feature yet, I'm not sure whether it would fit our use case.
     
    Have you used/tested WhatsApp Flow before? If so, do you think it could work for this scenario?


    ------------------------------
    Elisson Fernandes
    ------------------------------



  • 5.  RE: Messaging - How to prevent sensitive information from being recorded in the interaction history

    Posted 4 days ago

    Hi Elisson,

    Thank you for your reply. No, we don't currently use WhatsApp in our organization. Are you asking specifically about WhatsApp Flows on the WhatsApp Business Platform? https://help.genesys.cloud/articles/whatsapp-embedded-signup-self-service-onboarding-overview/



    ------------------------------
    Phaneendra
    Technical Solutions Consultant
    ------------------------------



  • 6.  RE: Messaging - How to prevent sensitive information from being recorded in the interaction history

    Posted 4 days ago

    This would be a feature provided by Meta itself, here:

    https://developers.facebook.com/documentation/business-messaging/whatsapp/flows/guides/implementingyourflowendpoint





    ------------------------------
    Elisson Fernandes
    ------------------------------



  • 7.  RE: Messaging - How to prevent sensitive information from being recorded in the interaction history

    Posted 4 days ago

    Hi Elisson,

    Today, in Genesys Cloud, there is no equivalent of a Voice Secure Flow for WhatsApp/Open Messaging that prevents the sensitive content from being visible during the active interaction.

    As you mentioned:

    • masking can happen after the interaction
    • but the data is still exposed in real time to the agent/conversation history before masking

    So for scenarios involving:

    • passwords
    • card data
    • personal identifiers
    • sensitive authentication data

    I would avoid collecting the value directly inside the messaging conversation.

    The safest approach I've seen

    A common production pattern is:

    1. Send the customer a secure external link
    2. Redirect them to a secure web page/form
    3. Collect the sensitive data outside Genesys messaging
    4. Encrypt/tokenize the value
    5. Return only a reference/token to Genesys if needed

    This avoids:

    • storing the raw value in conversation history
    • exposing the content to agents
    • sensitive data appearing in transcripts

    WhatsApp Flows

    Another interesting option is using WhatsApp Flows:

    Depending on the use case, you can move part of the data collection experience into the native WhatsApp flow experience instead of the chat transcript itself.

    My recommendation

    For compliance/security-sensitive scenarios:

    • do not rely only on transcript masking
    • externalize the secure data capture flow
    • use tokenization/encryption before sending anything back to Genesys

    That is currently the closest approach to a "secure messaging flow" architecture.



    ------------------------------
    Gabriel Garcia
    NA
    ------------------------------



  • 8.  RE: Messaging - How to prevent sensitive information from being recorded in the interaction history

    Posted 3 days ago

    Hi @Gabriel Garcia,

    Thank you for sharing a few alternatives!



    ------------------------------
    Elisson Fernandes
    ------------------------------



  • 9.  RE: Messaging - How to prevent sensitive information from being recorded in the interaction history
    Best Answer

    Posted 3 days ago

    Hi @Elisson Fernandes, how are you?

    Unfortunately, in open messaging, there is still no native GC solution available to encrypt data during the digital bot interaction/flow.

    To meet the requirement of "never arriving unencrypted at Genesys Cloud," the architecture needs to involve tokenization/processing outside of Genesys: the sensitive value is handled in an external service (with encryption), and Genesys receives only the token/result (which does not allow reconstructing the original data).

    Why it's not possible to "deliver encrypted to Genesys" via Meta/WhatsApp natively?

    1.1 WhatsApp (Cloud API) sends inbound messages to your endpoint via webhook (HTTPS)

    In the Meta Cloud API, received messages arrive in your system via webhook. This is delivered as a payload (e.g., text) - Meta uses TLS in transit, but this is not "end-to-end encryption of the payload to Genesys".

    • Webhooks (HTTPS, validations, events):

    https://developers.facebook.com/docs/whatsapp/cloud-api/webhooks/

    The critical point: for your integration to consume the text, it needs to receive the content (payload) and interpret it. There is no standard parameter in the API to "always send me the user's text encrypted with my application key, without it being decrypted before reaching the CCaaS".

    1.2 WhatsApp's E2EE doesn't solve this case for Cloud API

    WhatsApp has end-to-end encryption in its messaging product. However, when you use Business Cloud API, the operational model is "messages arriving via webhook from Meta to your infrastructure". This flow doesn't give you control to ensure that the text payload arrives at Genesys as unreadable ciphertext (because the service that delivers to the webhook already makes the content available for integration).

    (If you want, I can provide specific additional links about "E2EE + Business API", but the documentation above already supports the webhook/inbound model.)

    So how do you fulfill the requirement that "Genesys never sees the data in clear text" (recommended architecture)?

    Recommended pattern: Intercept inbound data outside of Genesys → encrypt/decrypt in your service → return only the token to Genesys

    Flow:

    1. User sends the message (e.g., "my CPF is 123...") on WhatsApp.

    2. Meta calls your webhook endpoint (HTTPS).

    3. Your service:

    • receives the payload,

    • decrypts/obtains the text (here it's inevitable that the data will be in your system at some point),

    • applies LGPD/security,

    • optionally stores it with strong encryption (at-rest),

    • creates a token (e.g., cpf_token=...) or "handle",

    • executes the Data Action outside of Genesys (or calls equivalent external services),

    • and returns only the token and/or result to Genesys (e.g., "CPF validated = true").

    4. In Genesys:

    • the Flow uses tokens/flags to continue,

    • and the agent only sees what you allow (status) in the channel, without the original data.

    Why does this meet the requirement?

    Because Genesys does not receive the CPF/PII text. It only receives an identifier/result. Therefore, "sensitive data" doesn't reach the Genesys stream without encryption-it doesn't even get there.

    I hope I've helped you in some way.

    Best Regards!



    ------------------------------
    Lilian Lira
    Services and Developer Manager
    ------------------------------



  • 10.  RE: Messaging - How to prevent sensitive information from being recorded in the interaction history

    Posted 3 days ago
     
    Thank you for explaining the process.


    ------------------------------
    Elisson Fernandes
    ------------------------------