Skip to main content
Glama

mcp-google-sheets

job-failed.ts3.43 kB
import { HttpMethod, HttpRequest, httpClient, AuthenticationType, } from '@activepieces/pieces-common'; import { TriggerStrategy, createTrigger, } from '@activepieces/pieces-framework'; import { cloudconvertAuth, cloudconvertCommon } from '../common'; export const jobFailed = createTrigger({ name: 'job_failed', displayName: 'Job Failed', description: 'Triggers when a CloudConvert job has failed', auth: cloudconvertAuth, type: TriggerStrategy.WEBHOOK, props: {}, sampleData: { event: 'job.failed', job: { id: 'job_123456789', tag: 'example-job', status: 'error', created_at: '2023-12-01T12:00:00Z', started_at: '2023-12-01T12:00:05Z', ended_at: '2023-12-01T12:00:15Z', message: 'Task failed: File conversion error', code: 'CONVERSION_FAILED', tasks: [ { id: 'task_123456789', name: 'convert-my-file', operation: 'convert', status: 'error', message: 'File conversion error', code: 'CONVERSION_FAILED', created_at: '2023-12-01T12:00:00Z', started_at: '2023-12-01T12:00:05Z', ended_at: '2023-12-01T12:00:15Z', engine: 'office', engine_version: '2016', result: null } ] } }, async test(context) { return [this.sampleData]; }, onEnable: async (context) => { const webhookUrl = context.webhookUrl; const request: HttpRequest = { method: HttpMethod.POST, url: `${cloudconvertCommon.baseUrl((context.auth as any).region || 'auto')}/webhooks`, body: { url: webhookUrl, events: ['job.failed'] }, authentication: { type: AuthenticationType.BEARER_TOKEN, token: context.auth.access_token, }, headers: { 'Content-Type': 'application/json', }, }; const response = await httpClient.sendRequest(request); if (response.status !== 201) { throw new Error(`Failed to register webhook. Status: ${response.status}`); } }, onDisable: async (context) => { const webhookUrl = context.webhookUrl; // First, find the webhook by URL const listRequest: HttpRequest = { method: HttpMethod.GET, url: `${cloudconvertCommon.baseUrl((context.auth as any).region || 'auto')}/users/me/webhooks`, authentication: { type: AuthenticationType.BEARER_TOKEN, token: context.auth.access_token, }, }; try { const listResponse = await httpClient.sendRequest(listRequest); if (listResponse.status === 200 && listResponse.body.data) { const webhook = listResponse.body.data.find((w: any) => w.url === webhookUrl); if (webhook) { const deleteRequest: HttpRequest = { method: HttpMethod.DELETE, url: `${cloudconvertCommon.baseUrl((context.auth as any).region || 'auto')}/webhooks/${webhook.id}`, authentication: { type: AuthenticationType.BEARER_TOKEN, token: context.auth.access_token, }, }; await httpClient.sendRequest(deleteRequest); } } } catch (error) { // Continue silently } }, run: async (context) => { const payload = context.payload.body as any; if (payload?.event === 'job.failed' && payload?.job) { return [payload]; } return []; }, });

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