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
------------------------------