Skip to main content
Glama

mcp-google-sheets

find-meeting-by-query.ts3.52 kB
import { createAction, Property } from '@activepieces/pieces-framework'; import { AuthenticationType, httpClient, HttpMethod } from '@activepieces/pieces-common'; import { firefliesAiAuth } from '../../index'; import { BASE_URL } from '../common'; export const findMeetingByQueryAction = createAction({ auth: firefliesAiAuth, name: 'find_meeting_by_query', displayName: 'Find Meeting by Call Deatils', description: 'Searches meetings based on provided parameters.', props: { title: Property.ShortText({ displayName: 'Meeting Title', required: false, }), hostEmail: Property.ShortText({ displayName: 'Host Email', description: 'Filter meetings by host email.', required: false, }), participantEmail: Property.ShortText({ displayName: 'Participant Email', description: 'Filter meetings by participant email', required: false, }), date: Property.DateTime({ displayName: 'Date', description: 'Filter meetings on this date (YYYY-MM-DD).', required: false, }), }, async run({ propsValue, auth }) { const filterVariables: Record<string, any> = {}; if (propsValue.title) { filterVariables['title'] = propsValue.title; } if (propsValue.hostEmail) { filterVariables['hostEmail'] = propsValue.hostEmail; } if (propsValue.participantEmail) { filterVariables['participantEmail'] = propsValue.participantEmail; } if (propsValue.date) { // Convert ISO string to milliseconds for the API const dateMs = new Date(propsValue.date).getTime(); filterVariables['date'] = dateMs; } const query = ` query Transcripts( $title: String $hostEmail: String $participantEmail: String $date: Float $limit: Int $skip: Int ) { transcripts( title: $title host_email: $hostEmail participant_email: $participantEmail date: $date 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_link } } `; const limit = 50; let skip = 0; let hasMore = true; const meetings = []; while (hasMore) { const variables = { ...filterVariables, limit, skip, }; const response = await httpClient.sendRequest<{ data: { transcripts: Record<string, any>[] }; }>({ url: BASE_URL, method: HttpMethod.POST, authentication: { type: AuthenticationType.BEARER_TOKEN, token: auth, }, body: { query: query, variables, }, }); const transcripts = response?.body?.data?.transcripts || []; if (transcripts.length === 0) { hasMore = false; } else { meetings.push(...transcripts); skip += transcripts.length; } } return { found: meetings.length !== 0, meetings, }; }, });

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