You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am integrating Notifuse with an external CRM, where contacts have a stable external identifier (external_id) that does not change, while their email address may occasionally change.
Currently, if a contact already exists in Notifuse with:
external_id: TEST-67
email: old@example.com
and the email is later changed in the CRM to:
external_id: TEST-67
email: new@example.com
using the normal contact import/upsert flow creates a new contact instead of updating the existing one.
I understand why this happens, since email is currently used as the contact key in many parts of Notifuse.
The problem is that creating a new contact is not equivalent to changing the email address of an existing person. It breaks the continuity of that contact's history, including things such as:
message history,
contact timeline,
list memberships and subscription statuses,
segment memberships,
events,
campaign activity,
opens and clicks,
other historical data associated with the previous email address.
For CRM integrations, external_id is often the stable identity of the person or company, while email is only one mutable attribute.
It would be very useful to have a supported way to change the email address of an existing contact while preserving the full contact history and relationships.
Possible use cases:
A customer changes their company email address.
A company changes its domain.
A typo in an email address is corrected.
An employee moves from one mailbox to another.
A CRM remains the source of truth and synchronizes contacts using external_id.
Ideally, Notifuse could provide either:
an API operation to change the email address of an existing contact while preserving all related data,
or
support for updating/upserting a contact by external_id in a way that safely handles an email address change.
The important part is not the specific API design, but preserving the identity and complete history of the contact when the email address changes.
At the moment, recreating the contact under a new email and deleting the old one is not a good workaround because the historical continuity of the contact is lost.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
Hi,
I am integrating Notifuse with an external CRM, where contacts have a stable external identifier (
external_id) that does not change, while their email address may occasionally change.Currently, if a contact already exists in Notifuse with:
external_id:TEST-67old@example.comand the email is later changed in the CRM to:
external_id:TEST-67new@example.comusing the normal contact import/upsert flow creates a new contact instead of updating the existing one.
I understand why this happens, since email is currently used as the contact key in many parts of Notifuse.
The problem is that creating a new contact is not equivalent to changing the email address of an existing person. It breaks the continuity of that contact's history, including things such as:
For CRM integrations,
external_idis often the stable identity of the person or company, while email is only one mutable attribute.It would be very useful to have a supported way to change the email address of an existing contact while preserving the full contact history and relationships.
Possible use cases:
external_id.Ideally, Notifuse could provide either:
or
external_idin a way that safely handles an email address change.The important part is not the specific API design, but preserving the identity and complete history of the contact when the email address changes.
At the moment, recreating the contact under a new email and deleting the old one is not a good workaround because the historical continuity of the contact is lost.
Would you consider supporting this use case?
Thanks for the great project.
All reactions