diff --git a/src/modules/campaigns/client.ts b/src/modules/campaigns/client.ts index b87886f..98f12fb 100644 --- a/src/modules/campaigns/client.ts +++ b/src/modules/campaigns/client.ts @@ -144,6 +144,17 @@ export class CampaignClient extends BaseSmartLeadClient { return response.data; } + /** + * Get campaign analytics (simple - no date filtering) + */ + async getCampaignAnalytics(campaignId: number): Promise { + const response = await this.withRetry( + () => this.apiClient.get(`/campaigns/${campaignId}/analytics`), + 'get campaign analytics' + ); + return response.data; + } + /** * Fetch campaign analytics by date range */ diff --git a/src/tools/campaigns.ts b/src/tools/campaigns.ts index f3b57f8..f581a99 100644 --- a/src/tools/campaigns.ts +++ b/src/tools/campaigns.ts @@ -376,4 +376,28 @@ export function registerCampaignTools( } } ); + + // Get Campaign Analytics Tool (Simple - no date filtering) + server.registerTool( + 'smartlead_get_campaign_analytics', + { + title: 'Get Campaign Analytics', + description: 'Get comprehensive analytics data for a specific campaign including sent count, open count, reply count, bounce count, and lead statistics.', + inputSchema: GetCampaignRequestSchema.shape + }, + async (params) => { + try { + const validatedParams = GetCampaignRequestSchema.parse(params); + const result = await client.campaigns.getCampaignAnalytics(validatedParams.campaign_id); + + return formatSuccessResponse( + 'Campaign analytics retrieved successfully', + result, + `Analytics for campaign ${validatedParams.campaign_id}: ${result.sent_count} sent, ${result.reply_count} replies, ${result.open_count} opens` + ); + } catch (error) { + return handleError(error); + } + } + ); }