Skip to main content
Glama

mcp-google-sheets

request-approval-message.ts2.75 kB
import { createAction } from '@activepieces/pieces-framework'; import { slackSendMessage } from '../common/utils'; import { slackAuth } from '../..'; import { assertNotNullOrUndefined, ExecutionType, PauseType, } from '@activepieces/shared'; import { profilePicture, singleSelectChannelInfo, slackChannel, text, username, } from '../common/props'; export const requestSendApprovalMessageAction = createAction({ auth: slackAuth, name: 'request_approval_message', displayName: 'Request Approval in a Channel', description: 'Send approval message to a channel and then wait until the message is approved or disapproved', props: { info: singleSelectChannelInfo, channel: slackChannel(true), text, username, profilePicture, }, async run(context) { if (context.executionType === ExecutionType.BEGIN) { context.run.pause({ pauseMetadata: { type: PauseType.WEBHOOK, response: {}, }, }); const token = context.auth.access_token; const { channel, username, profilePicture } = context.propsValue; assertNotNullOrUndefined(token, 'token'); assertNotNullOrUndefined(text, 'text'); assertNotNullOrUndefined(channel, 'channel'); const approvalLink = context.generateResumeUrl({ queryParams: { action: 'approve' }, }); const disapprovalLink = context.generateResumeUrl({ queryParams: { action: 'disapprove' }, }); await slackSendMessage({ token, text: `${context.propsValue.text}\n\nApprove: ${approvalLink}\n\nDisapprove: ${disapprovalLink}`, username, profilePicture, blocks: [ { type: 'section', text: { type: 'mrkdwn', text: `${context.propsValue.text}`, }, }, { type: 'actions', block_id: 'actions', elements: [ { type: 'button', text: { type: 'plain_text', text: 'Approve', }, style: 'primary', url: approvalLink, }, { type: 'button', text: { type: 'plain_text', text: 'Disapprove', }, style: 'danger', url: disapprovalLink, }, ], }, ], conversationId: channel, }); return { approved: false, // default approval is false }; } else { return { approved: context.resumePayload.queryParams['action'] === 'approve', }; } }, });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/activepieces/activepieces'

If you have feedback or need assistance with the MCP directory API, please join our Discord server