Skip to main content
Glama

mcp-google-sheets

new-lead-added.ts3.01 kB
import { createTrigger, PiecePropValueSchema, TriggerStrategy, } from '@activepieces/pieces-framework'; import { instantlyAiAuth } from '../../index'; import { DedupeStrategy, HttpMethod, Polling, pollingHelper, } from '@activepieces/pieces-common'; import { makeRequest } from '../common/client'; import dayjs from 'dayjs'; const polling: Polling< PiecePropValueSchema<typeof instantlyAiAuth>, Record<string, any> > = { strategy: DedupeStrategy.TIMEBASED, async items({ auth, lastFetchEpochMS }) { const result = []; const isTest = lastFetchEpochMS === 0; let startingAfter: string | undefined = undefined; let hasMore = true; do { const body: Record<string, any> = { limit: isTest ? 10 : 100, }; if (startingAfter) body['starting_after'] = startingAfter; const response = (await makeRequest({ endpoint: 'leads/list', method: HttpMethod.POST, apiKey: auth, body, })) as { next_starting_after?: string; items: { timestamp_created: string }[]; }; const items = response.items || []; result.push(...items); if (isTest) break; startingAfter = response.next_starting_after; hasMore = !!startingAfter && items.length > 0; } while (hasMore); return result.map((lead) => { return { epochMilliSeconds: dayjs(lead.timestamp_created).valueOf(), data: lead, }; }); }, }; export const newLeadAddedTrigger = createTrigger({ auth: instantlyAiAuth, name: 'new_lead_added', displayName: 'New Lead Added', description: 'Triggers when a new lead is added to a campaign', props: {}, type: TriggerStrategy.POLLING, async onEnable(context) { await pollingHelper.onEnable(polling, { auth: context.auth, store: context.store, propsValue: context.propsValue, }); }, async onDisable(context) { await pollingHelper.onDisable(polling, { auth: context.auth, store: context.store, propsValue: context.propsValue, }); }, async test(context) { return await pollingHelper.test(polling, context); }, async run(context) { return await pollingHelper.poll(polling, context); }, sampleData: { id: 'd1f61dbc-bcb2-44fb-86b8-3d01c8701fe9', timestamp_created: '2025-05-25T12:50:04.748Z', timestamp_updated: '2025-05-25T13:00:52.019Z', organization: '31ef9f6c-00f0-481f-b309-95694ed324bb', status: 1, email_open_count: 0, email_reply_count: 0, email_click_count: 0, company_domain: 'test@gmail.com', status_summary: {}, campaign: 'd228fc8f-44f2-42f3-b63f-3667dafc24cf', email: 'test@gmail.com', payload: { email: 'test@gmail.com', lastTouch: null, leadOwner: 'Test', leadSource: 'manual', }, uploaded_by_user: '7f74fadd-b96b-4011-a1da-9b81a5bed165', upload_method: 'manual', assigned_to: '7f74fadd-b96b-4011-a1da-9b81a5bed165', esp_code: 1, }, });

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