UNPKG

@vulture916/activepieces-piece-lemlist

Version:

Lemlist integration for ActivePieces - Email outreach and sales engagement platform

75 lines (69 loc) 2.21 kB
const { createAction, Property } = require('@activepieces/pieces-framework'); const { HttpMethod } = require('@activepieces/pieces-common'); const { lemlistAuth } = require('../../common/auth'); const { lemlistClient } = require('../../common/client'); exports.getCampaignStats = createAction({ auth: lemlistAuth, name: 'get_campaign_stats', displayName: 'Get Campaign Stats', description: 'Retrieve statistics for a specific campaign', props: { campaignId: Property.ShortText({ displayName: 'Campaign ID', description: 'The ID of the campaign to get stats for', required: true, }), version: Property.StaticDropdown({ displayName: 'API Version', description: 'Choose between v1 (simple) or v2 (detailed with filters)', required: false, defaultValue: 'v1', options: { options: [ { label: 'V1 - Simple Stats', value: 'v1' }, { label: 'V2 - Detailed Stats', value: 'v2' }, ], }, }), startDate: Property.DateTime({ displayName: 'Start Date', description: 'Filter stats from this date (V2 only)', required: false, }), endDate: Property.DateTime({ displayName: 'End Date', description: 'Filter stats until this date (V2 only)', required: false, }), userId: Property.ShortText({ displayName: 'User ID', description: 'Filter stats by user (V2 only)', required: false, }), }, async run(context) { const { campaignId, version, startDate, endDate, userId } = context.propsValue; let endpoint = `/campaigns/${campaignId}/stats`; let queryParams = {}; if (version === 'v2') { endpoint = `/v2/campaigns/${campaignId}/stats`; if (startDate) { queryParams = { ...queryParams, startDate }; } if (endDate) { queryParams = { ...queryParams, endDate }; } if (userId) { queryParams = { ...queryParams, userId }; } } const stats = await lemlistClient.makeRequest( context.auth, HttpMethod.GET, endpoint, undefined, Object.keys(queryParams).length > 0 ? queryParams ); return stats; }, });