web
You’re offline. This is a read only version of the page.
close
Skip to main content

Announcements

News and Announcements icon
Community site session details

Community site session details

Session Id :
Power Platform Community / Forums / Copilot Studio / Extracting Conversatio...
Copilot Studio
Suggested Answer

Extracting Conversation Transcripts and storing it into dataverse table with masked personal info.

(1) ShareShare
ReportReport
Posted on by 4
Need to Extract the Omnichannel conversation transcripts (Interaction with Bot as well as Agent conversation) and remove all the personal info. like mobile No. card details, address acc. No. etc. and then store this information into Dataverse Table.
If anyone has any info it would be a great help. Thanks.
Categories:
I have the same question (0)
  • Valantis Profile Picture
    3,256 on at
     
    This is achievable with Power Automate, Azure AI Language, and Dataverse.
     
    Here is the confirmed approach with the correct tables for each conversation type:
     
    Bot conversations (Copilot Studio):
    Stored in the ConversationTranscript table in Dataverse. Trigger a Power Automate flow on When a row is added to that table, retrieve the transcript content and process it.
     
    Human agent conversations (Omnichannel):
    The full customer-to-agent chat transcripts are stored in base64 encoded format in the annotations table, linked via msdyn_transcript and msdyn_ocliveworkitem. You need to query this table separately using the Web API or Power Automate HTTP action.
     
    For both:
    1. Decode the base64 content to get the raw transcript text
    2. Pass the text to Azure AI Language PII detection API with redactionPolicy set to characterMask
    3. The API returns redactedContent with phone numbers, card details, addresses and account numbers masked
    4. Store the masked result in a custom Dataverse table with session ID, timestamp and agent metadata
     
    Sources:
     

     

    Best regards,

    Valantis

     

    ✅ If this helped solve your issue, please Accept as Solution so others can find it quickly.

    ❤️ If it didn’t fully solve it but was still useful, please click “Yes” on “Was this reply helpful?” or leave a Like :).

    🏷️ For follow-ups  @Valantis.

    📝 https://valantisond365.com/

     

  • Suggested answer
    Nivedipa-MSFT Profile Picture
    Microsoft Employee on at
    Hello ,
    When a conversation closes, Power Automate is triggered to query the msdyn_transcript table in Dataverse. The transcript is then parsed as JSON, and the Azure AI Language PII Detection API is used to redact sensitive information such as phone numbers, card details, addresses, and account numbers. The sanitized transcript is stored in a custom Dataverse table.

    It's important to use Azure AI Language's PII endpoint instead of regex, as it more reliably handles data variations.

    Ref Doc: https://learn.microsoft.com/en-us/azure/ai-services/language-service/personally-identifiable-inform…

  • Valantis Profile Picture
    3,256 on at

    Hi @AP-26110715-0,

    Just wanted to check in and see if everything is working now. If you still need any help, feel free to let me know.

    Also, if the issue is resolved, it would be great if you could mark the answer as solved so others with the same question can find it easily.

     

    Thanks and have a great day!

     

Under review

Thank you for your reply! To ensure a great experience for everyone, your content is awaiting approval by our Community Managers. Please check back later.

Helpful resources

Quick Links

Introducing the 2026 Season 1 community Super Users

Congratulations to our 2026 Super Users!

Kudos to our 2025 Community Spotlight Honorees

Congratulations to our 2025 community superstars!

Congratulations to the March Top 10 Community Leaders!

These are the community rock stars!

Leaderboard > Copilot Studio

#1
Valantis Profile Picture

Valantis 601

#2
chiaraalina Profile Picture

chiaraalina 137 Super User 2026 Season 1

#3
Haque Profile Picture

Haque 133

Last 30 days Overall leaderboard