Escape special characters in email query (#25079)

This commit is contained in:
Joe Au-Yeung authored and GitHub committed 2025-11-11 23:56:51 +00:00
1 parent c6ec42e735
commit 5267f8c3c1
1 file changed
+4 -1
@@ -553,8 +553,11 @@ export default class SalesforceCRMService implements CRM {
setFallbackToContact?: boolean;
conn: Connection;
}) {
// Escape SOSL reserved characters: ? & | ! { } [ ] ( ) ^ ~ * : \ " ' + -
// eslint-disable-next-line no-useless-escape
const escapedEmail = email.replace(/([?&|!{}[\]()^~*:\\"'+\-])/g, "\\$1");
const searchResult = await conn.search(
`FIND {${email}} IN EMAIL FIELDS RETURNING Lead(Id, Email, OwnerId, Owner.Email), Contact(Id, Email, OwnerId, Owner.Email)`
`FIND {${escapedEmail}} IN EMAIL FIELDS RETURNING Lead(Id, Email, OwnerId, Owner.Email), Contact(Id, Email, OwnerId, Owner.Email)`
);
if (searchResult.searchRecords.length === 0) {