import type { INodeProperties, IExecuteFunctions } from 'n8n-workflow'; import { getSendAndWaitConfig, getSendAndWaitProperties, } from '../../../../../../utils/sendAndWait/utils'; import { createUtmCampaignLink } from '../../../../../../utils/utilities'; import { chatRLC } from '../../descriptions'; import { microsoftApiRequest } from '../../transport'; export const description: INodeProperties[] = getSendAndWaitProperties( [chatRLC], 'chatMessage', undefined, { noButtonStyle: true, defaultApproveLabel: '✓ Approve', defaultDisapproveLabel: '✗ Decline', }, ).filter((p) => p.name !== 'subject'); export async function execute(this: IExecuteFunctions, i: number, instanceId: string) { const chatId = this.getNodeParameter('chatId', i, '', { extractValue: true }) as string; const config = getSendAndWaitConfig(this); const buttons = config.options.map( (option) => `${option.label}`, ); let content = `${config.message}

${buttons.join(' ')}`; if (config.appendAttribution !== false) { const attributionText = 'This message was sent automatically with'; const link = createUtmCampaignLink('n8n-nodes-base.microsoftTeams', instanceId); const attribution = `${attributionText} n8n`; content += `

${attribution}`; } const body = { body: { contentType: 'html', content, }, }; return await microsoftApiRequest.call(this, 'POST', `/v1.0/chats/${chatId}/messages`, body); }