Skip to main content
Glama

mcp-google-sheets

new-transcription-complete.ts3.71 kB
import { createTrigger, Property, TriggerStrategy } from '@activepieces/pieces-framework'; import { firefliesAiAuth } from '../../index'; import { AuthenticationType, httpClient, HttpMethod } from '@activepieces/pieces-common'; import { getTranscript } from '../common/queries'; import { BASE_URL } from '../common'; export const newTranscriptionCompletedTrigger = createTrigger({ auth: firefliesAiAuth, name: 'new_transcription_completed', displayName: 'New Transcription Completed', description: 'Triggered when a new meeting is transcribed.', props: { webhookInstructions: Property.MarkDown({ value: ` ## Fireflies.ai Webhook Setup To use this trigger, you need to manually set up a webhook in your Fireflies.ai account: 1. Login to your Fireflies.ai account. 2. Navigate to **Settings** > **Developer Settings** in the left sidebar. 3. Enter the following URL in the webhooks field: \`\`\`text {{webhookUrl}} \`\`\` 4. Click Save to register the webhook. This webhook will be triggered when a meeting transcription is completed. `, }), }, type: TriggerStrategy.WEBHOOK, sampleData: undefined, 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 test(context) { const query = ` query Transcripts( $limit: Int $skip: Int ){ transcripts( limit: $limit skip: $skip ){ id dateString privacy speakers { id name } title host_email organizer_email calendar_id user { user_id email name num_transcripts recent_meeting minutes_consumed is_admin integrations } fireflies_users participants date transcript_url audio_url video_url duration meeting_attendees { displayName email phoneNumber name location } summary { keywords action_items outline shorthand_bullet overview bullet_gist gist short_summary short_overview meeting_type topics_discussed transcript_chapters } cal_id calendar_type meeting_info { fred_joined silent_meeting summary_status } meeting_link } }`; const response = await httpClient.sendRequest<{ data: { transcripts: Record<string, any>[] } }>( { url: BASE_URL, method: HttpMethod.POST, authentication: { type: AuthenticationType.BEARER_TOKEN, token: context.auth, }, body: { query, variables: { limit: 5, skip: 0, }, }, }, ); return response.body.data.transcripts; }, async run(context) { const payload = context.payload.body as { meetingId: string; eventType: string }; if (payload.eventType !== 'Transcription completed') { return []; } const response = await httpClient.sendRequest<{ data: { transcript: Record<string, any> } }>({ url:BASE_URL, method: HttpMethod.POST, authentication: { type: AuthenticationType.BEARER_TOKEN, token: context.auth, }, body: { query: getTranscript, variables: { transcriptId: payload.meetingId, }, }, }); return [response.body.data.transcript]; }, });

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