Implement externalAdReplyBody for Meta Ads

Receive Instagram/Facebook Ads messages for recognizing in messages to use in Dify(example).
This commit is contained in:
Diego Marino 2024-08-23 21:35:41 -03:00
parent f6b3612c3d
commit aa79409d44
2 changed files with 20 additions and 8 deletions

View File

@ -1586,7 +1586,12 @@ export class ChatwootService {
private getMessageContent(types: any) { private getMessageContent(types: any) {
const typeKey = Object.keys(types).find((key) => types[key] !== undefined); const typeKey = Object.keys(types).find((key) => types[key] !== undefined);
const result = typeKey ? types[typeKey] : undefined; let result = typeKey ? types[typeKey] : undefined;
// Remove externalAdReplyBody| in Chatwoot (Already Have)
if (result && typeof result === 'string' && result.includes('externalAdReplyBody|')) {
result = result.split('externalAdReplyBody|').filter(Boolean).join('');
}
if (typeKey === 'locationMessage' || typeKey === 'liveLocationMessage') { if (typeKey === 'locationMessage' || typeKey === 'liveLocationMessage') {
const latitude = result.degreesLatitude; const latitude = result.degreesLatitude;

View File

@ -41,6 +41,9 @@ const getTypeMessage = (msg: any) => {
: '' : ''
}` }`
: undefined, : undefined,
externalAdReplyBody: msg?.message?.extendedTextMessage?.contextInfo?.externalAdReply?.body
? `externalAdReplyBody|${msg.message.extendedTextMessage.contextInfo.externalAdReply.body}`
: undefined,
}; };
const messageType = Object.keys(types).find((key) => types[key] !== undefined) || 'unknown'; const messageType = Object.keys(types).find((key) => types[key] !== undefined) || 'unknown';
@ -49,9 +52,13 @@ const getTypeMessage = (msg: any) => {
}; };
const getMessageContent = (types: any) => { const getMessageContent = (types: any) => {
const typeKey = Object.keys(types).find((key) => types[key] !== undefined); const typeKey = Object.keys(types).find((key) => key !== 'externalAdReplyBody' && types[key] !== undefined);
const result = typeKey ? types[typeKey] : undefined; let result = typeKey ? types[typeKey] : undefined;
if (types.externalAdReplyBody) {
result = result ? `${result}\n${types.externalAdReplyBody}` : types.externalAdReplyBody;
}
return result; return result;
}; };