fix: Do not trigger sendAndWait response on bot visit if response type is approval (#13792)

This commit is contained in:
Michael Kret
2025-03-11 13:59:51 +02:00
committed by GitHub
parent 899f6c9824
commit 526a2e4ca3
2 changed files with 37 additions and 1 deletions

View File

@@ -1,3 +1,4 @@
import isbot from 'isbot';
import {
NodeOperationError,
SEND_AND_WAIT_OPERATION,
@@ -324,11 +325,18 @@ const getFormResponseCustomizations = (context: IWebhookFunctions) => {
export async function sendAndWaitWebhook(this: IWebhookFunctions) {
const method = this.getRequestObject().method;
const res = this.getResponseObject();
const req = this.getRequestObject();
const responseType = this.getNodeParameter('responseType', 'approval') as
| 'approval'
| 'freeText'
| 'customForm';
if (responseType === 'approval' && isbot(req.headers['user-agent'])) {
res.send('');
return { noWebhookResponse: true };
}
if (responseType === 'freeText') {
if (method === 'GET') {
const { formTitle, formDescription, buttonLabel } = getFormResponseCustomizations(this);
@@ -424,7 +432,7 @@ export async function sendAndWaitWebhook(this: IWebhookFunctions) {
}
}
const query = this.getRequestObject().query as { approved: 'false' | 'true' };
const query = req.query as { approved: 'false' | 'true' };
const approved = query.approved === 'true';
return {
webhookResponse: ACTION_RECORDED_PAGE,