Skip to main content
Glama

mcp-google-sheets

document-parsed.ts3.04 kB
import { HttpMethod } from '@activepieces/pieces-common'; import { createTrigger, Property, TriggerStrategy, } from '@activepieces/pieces-framework'; import { isNil } from '@activepieces/shared'; import { airparserAuth } from '../../index'; import { airparserApiCall, GetDocumentResponse } from '../common'; import { inboxIdDropdown } from '../common/props'; export const documentParsedTrigger = createTrigger({ auth: airparserAuth, name: 'document_parsed', displayName: 'Document Parsed', description: 'Triggers when a new document is parsed in a specific inbox.', type: TriggerStrategy.WEBHOOK, props: { inboxId: inboxIdDropdown, markdown: Property.MarkDown({ value: `## Airparser Webhook Setup To use this trigger, you need to manually set up a webhook in your Airparser account: 1. Login to your Airparser account. 2. Navigate to **Integrations** > **Webhooks** in the left sidebar. 3. Enter the following URL in the webhooks field and select **Document Parsed** as webhook trigger: \`\`\`text {{webhookUrl}} \`\`\` 4. Click Save to register the webhook. `, }), }, async onEnable(context) { // No need to register webhooks programmatically as user will do it manually }, async onDisable(context) { // No need to unregister webhooks as user will do it manually }, async run(context) { const payload = context.payload.body as { inbox_id: string; doc_id: string; event: string; }; if ( payload.event === 'doc.parsed' && payload.inbox_id === context.propsValue.inboxId ) { return [payload]; } return []; }, async test(context) { const { inboxId } = context.propsValue; const listDocResponse = await airparserApiCall<{ hasPrevPage: boolean; hasNextPage: boolean; docs: { _id: string; name: string }[]; }>({ apiKey: context.auth as string, method: HttpMethod.GET, resourceUri: `/inboxes/${inboxId}/docs`, query: { statuses: 'parsed', }, }); if (isNil(listDocResponse.docs)) return []; const items = []; for (const doc of listDocResponse.docs) { const response = await airparserApiCall<GetDocumentResponse>({ apiKey: context.auth, method: HttpMethod.GET, resourceUri: `/docs/${doc._id}/extended`, }); items.push({ inbox_id: inboxId, doc_id: doc._id, event: 'doc.parsed', payload: { filename: response.filename, parsed: response.json, }, }); } return items; }, sampleData: { inbox_id: '6846e11bb1abe002cb1ada14', doc_id: '6846ee9db1abe002cb1b05ad', event: 'doc.parsed', payload: { filename: 'sample.pdf', parsed: { billing_address: 'Your Company Name\nYour Address City, State Zip', shipping_address: 'Client Name Address City, State Zip', totalamount: '200.00', created_at: '2025-06-09T14:24:29.099Z', }, }, }, });

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