fix(integrations): resolve typebot media regression and baileys link preview

- Fix linkPreview logic in Baileys to default to true
- Add support for 'file' and 'embed' types in Typebot integration
- Ensure correct media type detection for PDFs and docs
This commit is contained in:
eltonciatto
2026-01-03 23:06:44 -03:00
parent 6efa879081
commit 8aac7403d4
2 changed files with 41 additions and 11 deletions
@@ -436,7 +436,7 @@ export class BaileysStartupService extends ChannelStartupService {
qrcodeTerminal.generate(qr, { small: true }, (qrcode) =>
this.logger.log(
`\n{ instance: ${this.instance.name} pairingCode: ${this.instance.qrcode.pairingCode}, qrcodeCount: ${this.instance.qrcode.count} }\n` +
qrcode,
qrcode,
),
);
@@ -1049,16 +1049,16 @@ export class BaileysStartupService extends ChannelStartupService {
const messagesRepository: Set<string> = new Set(
chatwootImport.getRepositoryMessagesCache(instance) ??
(
await this.prismaRepository.message.findMany({
select: { key: true },
where: { instanceId: this.instanceId },
})
).map((message) => {
const key = message.key as { id: string };
(
await this.prismaRepository.message.findMany({
select: { key: true },
where: { instanceId: this.instanceId },
})
).map((message) => {
const key = message.key as { id: string };
return key.id;
}),
return key.id;
}),
);
if (chatwootImport.getRepositoryMessagesCache(instance) === null) {
@@ -2432,7 +2432,7 @@ export class BaileysStartupService extends ChannelStartupService {
}
}
const linkPreview = options?.linkPreview != false ? undefined : false;
const linkPreview = options?.linkPreview !== false;
let quoted: WAMessage;
@@ -368,6 +368,36 @@ export class TypebotService extends BaseChatbotService<TypebotModel, any> {
sendTelemetry('/message/sendWhatsAppAudio');
}
if (message.type === 'file' || message.type === 'embed') {
const mediaUrl = message.content.url;
const mediaType = this.getMediaType(mediaUrl);
if (mediaType === 'audio') {
await instance.audioWhatsapp(
{
number: session.remoteJid,
delay: settings?.delayMessage || 1000,
encoding: true,
audio: mediaUrl,
},
false,
);
} else {
await instance.mediaMessage(
{
number: session.remoteJid,
delay: settings?.delayMessage || 1000,
mediatype: mediaType || 'document',
media: mediaUrl,
fileName: message.content.name || 'document.pdf',
},
null,
false,
);
}
sendTelemetry('/message/sendMedia');
}
const wait = findItemAndGetSecondsToWait(clientSideActions, message.id);
if (wait) {