Skip to main content
Glama
new-message.ts2.21 kB
import { createTrigger, TriggerStrategy, } from '@activepieces/pieces-framework'; import { HttpMethod, httpClient } from '@activepieces/pieces-common'; import { askHandleAuth } from '../common/auth'; const BASE_URL = 'https://dashboard.askhandle.com/api/v1'; export const newMessageTrigger = createTrigger({ auth: askHandleAuth, name: 'new_message', displayName: 'New Message', description: 'Triggers when a new message is received', type: TriggerStrategy.WEBHOOK, props: {}, sampleData: { uuid: 'ffb84155-5f12-4bee-bd50-3c868097e473', nickname: 'Mary', email: 'mary@example.com', body: 'Hello!', is_support_sender: false, sent_at: '2021-09-15T12:08:50.676405Z', }, async onEnable(context) { try { const response = await httpClient.sendRequest({ method: HttpMethod.POST, url: `${BASE_URL}/webhooks/`, headers: { Authorization: `Token ${context.auth}`, 'Content-Type': 'application/json', }, body: { event: 'message.added', target: context.webhookUrl, }, }); if (response.status === 200 || response.status === 201) { const webhook = response.body as { uuid: string }; await context.store.put('_askhandle_webhook_message', webhook.uuid); } } catch (error: any) { throw new Error( `Failed to enable webhook: ${error.message || String(error)}` ); } }, async onDisable(context) { try { const webhookId = await context.store.get<string>( '_askhandle_webhook_message' ); if (webhookId) { await httpClient.sendRequest({ method: HttpMethod.DELETE, url: `${BASE_URL}/webhooks/${webhookId}/`, headers: { Authorization: `Token ${context.auth}`, 'Content-Type': 'application/json', }, }); await context.store.delete('_askhandle_webhook_message'); } } catch (error: any) { console.warn('Failed to delete webhook during disable:', error); } }, async run(context) { const payload = context.payload.body as { data: any }; return [payload.data || payload]; }, });

Latest Blog Posts

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