Files
botpress--botpress/integrations/slack/src/webhook-events/handlers/function-executed.ts
T
2026-07-13 13:34:48 +08:00

43 lines
1.1 KiB
TypeScript

import type { FunctionExecutedEvent } from '@slack/types'
import type * as bp from '.botpress'
export const handleEvent = async ({
slackEvent,
logger,
client,
}: {
slackEvent: FunctionExecutedEvent
client: bp.Client
logger: bp.Logger
}) => {
if (slackEvent.function.callback_id !== 'botpress-webook') {
logger.forBot().debug(`Ignoring unsupported workflow function ${slackEvent.function.callback_id}`)
return
}
const inputValues = slackEvent.inputs.value
const inputUserId = slackEvent.inputs.userId
if (!Array.isArray(inputValues)) {
logger.forBot().debug(`Ignoring unsupported workflow function input value type ${typeof inputValues}`)
return
}
const userId = typeof inputUserId === 'string' ? inputUserId : undefined
if (inputUserId && typeof inputUserId !== 'string') {
logger.forBot().debug(`Ignoring unsupported workflow function input userId type ${typeof inputUserId}`)
return
}
const inputValue = inputValues[0]
await client.createEvent({
type: 'workflowWebhook',
payload: {
userId,
value: inputValue,
},
})
}