An API that connects multiple Microsoft services, enabling data access and automation across platforms
GraphAPI - Persisting running user email address as Sent field during cross-mailbox threading
I have implemented cross-mailbox threading by tying each conversation to a Salesforce Object and having the user who sends out the first email for the Object set as the Initial Email Owner. Any follow-up email sent by any user who is not the Initial Email Owner is created and sent from the user "on behalf of" the Initial Email Sender. My company wants the "Sent" field to always display only the running user's email address, but I do not know which users (and how many users) will involve themselves into the conversation. Using App level permissions to "Send As" always sets the "Sent" field as the Initial Email Owners email address, while Delegated permissions only display "on behalf of" in the Initial Email Owners inbox, while the recipients and user(s) who sent the follow-up email(s) see the "Sent" field displayed as the Initial Email Owners email address.
The beta Import Export endpoints could be a good way to persistently display the running users email address in the "Sent" field, but my only worry is that if the conversation contains multiple messages, it could require many API calls to properly export and import the conversation from one mailbox to another. Additionally, using beta endpoints in production is not a good idea.
BCC'ing or CC'ing all users who might possibly get involved with the conversation when sending the initial email could work, but I am worried about flooding the user inboxes with unwanted conversations that they may never be involved with. One fix could be to move them to a specific folder and mark them as "read", but then I would need to properly update every email in all of the user inboxes with the updated conversation any time a new message is sent (again, I worry about the number of API calls here).
Any help is greatly appreciated, and I can provide more details if need be. Thank you!