Skip to main content
Glama
new-conversation.ts2.31 kB
import { createTrigger, TriggerStrategy, AppConnectionValueForAuthProperty, } from '@activepieces/pieces-framework'; import { DedupeStrategy, Polling, pollingHelper, HttpMethod, } from '@activepieces/pieces-common'; import dayjs from 'dayjs'; import { customgptAuth } from '../common/auth'; import { projectId } from '../common/props'; import { makeRequest } from '../common/client'; const polling: Polling< AppConnectionValueForAuthProperty<typeof customgptAuth>, { project_id: unknown } > = { strategy: DedupeStrategy.TIMEBASED, items: async ({ auth, propsValue, lastFetchEpochMS }) => { const items: any[] = []; const page = 1; const queryParams: any = { page: page.toString(), order: 'desc', orderBy: 'created_at', }; if (lastFetchEpochMS) { const lastFetchDate = new Date(lastFetchEpochMS).toISOString(); queryParams.lastUpdatedAfter = lastFetchDate; } const queryString = new URLSearchParams(queryParams).toString(); const response = await makeRequest( auth.secret_text, HttpMethod.GET, `/projects/${propsValue['project_id']}/conversations?${queryString}` ); if (response.body.status === 'success' && response.body.data.data) { items.push(...response.body.data.data); } return items.map((item) => ({ epochMilliSeconds: dayjs(item.created_at).valueOf(), data: item, })); }, }; export const newConversation = createTrigger({ auth: customgptAuth, name: 'new_conversation', displayName: 'New Conversation', description: 'Triggers when a new conversation is created in an agent', props: { project_id: projectId, }, sampleData: { id: 1, session_id: 'f1b9aaf0-5e4e-11eb-ae93-0242ac130002', name: 'Conversation 1', project_id: 1, created_by: 1, created_at: '2023-04-30 16:43:53', updated_at: '2023-04-30 16:43:53', deleted_at: null, }, type: TriggerStrategy.POLLING, async test(context) { return await pollingHelper.test(polling, context); }, async onEnable(context) { await pollingHelper.onEnable(polling, context); }, async onDisable(context) { await pollingHelper.onDisable(polling, context); }, async run(context) { return await pollingHelper.poll(polling, context); }, });

Latest Blog Posts

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