UNPKG

smartlead-mcp-by-leadmagic

Version:

💜 The Premier Model Context Protocol Server for SmartLead's Cold Email Automation Platform - Complete API coverage with 116+ tools for campaign management, lead tracking, smart delivery, and analytics. Beautiful purple-gradient installer, zero-config set

180 lines • 7.47 kB
/** * SmartLead MCP Server - Campaign Statistics Client * * Client module for campaign statistics API endpoints. * Handles campaign-specific statistics and performance metrics. * * @author LeadMagic Team * @version 1.5.0 */ import { BaseSmartLeadClient } from '../../client/base.js'; import type { CampaignLeadStatisticsRequest, CampaignMailboxStatisticsRequest, CampaignStatisticsRequest, CampaignTopLevelAnalyticsRequest, SuccessResponse, WarmupStatsByEmailRequest } from '../../types.js'; interface StatisticsParams { start_date?: string; end_date?: string; timezone?: string; full_data?: boolean; } interface CompareStatisticsRequest { campaign_ids: number[]; start_date?: string; end_date?: string; metrics?: string[]; } interface DownloadResponse { format: 'json' | 'csv'; encoding?: string; filename?: string; mimeType?: string; data: string | unknown[] | { download_type: string; campaign_id: number; total_records: number; data: unknown[]; generated_at: string; }; size?: number; total_records?: number; download_type?: string; } /** * Campaign Statistics Client * * Provides methods for accessing SmartLead campaign statistics including: * - Campaign performance metrics * - Email delivery statistics * - Response and engagement metrics * - Time-based analytics */ export declare class StatisticsClient extends BaseSmartLeadClient { /** * Get campaign statistics */ getCampaignStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get campaign email statistics */ getCampaignEmailStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get campaign response statistics */ getCampaignResponseStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get campaign engagement statistics */ getCampaignEngagementStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get campaign conversion statistics */ getCampaignConversionStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get campaign time-based statistics */ getCampaignTimeBasedStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get campaign deliverability statistics */ getCampaignDeliverabilityStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get campaign sequence statistics */ getCampaignSequenceStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get campaign lead source statistics */ getCampaignLeadSourceStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get campaign A/B test statistics */ getCampaignABTestStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Export campaign statistics */ exportCampaignStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get real-time campaign statistics */ getRealTimeCampaignStatistics(campaignId: number): Promise<SuccessResponse>; /** * Get campaign comparison statistics */ getCampaignComparisonStatistics(campaignIds: number[], params?: CompareStatisticsRequest): Promise<SuccessResponse>; /** * Get campaign benchmark statistics */ getCampaignBenchmarkStatistics(campaignId: number, params?: StatisticsParams): Promise<SuccessResponse>; /** * Get campaign statistics by date range * GET /campaigns/{campaign_id}/statistics/date-range */ getCampaignStatisticsByDateRange(campaignId: number, params: CampaignStatisticsRequest): Promise<SuccessResponse>; /** * Get warmup stats by email account ID * GET /email-accounts/{email_account_id}/warmup-stats */ getWarmupStatsByEmailAccountId(emailAccountId: number, params?: WarmupStatsByEmailRequest): Promise<SuccessResponse>; /** * Get campaign top level analytics * GET /campaigns/{campaign_id}/analytics/top-level */ getCampaignTopLevelAnalytics(campaignId: number, params?: CampaignTopLevelAnalyticsRequest): Promise<SuccessResponse>; /** * Get campaign top level analytics by date range * GET /campaigns/{campaign_id}/analytics/top-level/date-range */ getCampaignTopLevelAnalyticsByDateRange(campaignId: number, params: CampaignTopLevelAnalyticsRequest): Promise<SuccessResponse>; /** * Get campaign lead statistics * GET /campaigns/{campaign_id}/statistics/leads */ getCampaignLeadStatistics(campaignId: number, params?: CampaignLeadStatisticsRequest): Promise<SuccessResponse>; /** * Get campaign mailbox statistics * GET /campaigns/{campaign_id}/statistics/mailboxes */ getCampaignMailboxStatistics(campaignId: number, params?: CampaignMailboxStatisticsRequest): Promise<SuccessResponse>; /** * Download campaign data in various formats * Uses the statistics endpoint to fetch and format campaign data * * @param {number} campaignId - The ID of the campaign to download data for * @param {string} downloadType - The type of data to download (e.g., 'statistics', 'leads', 'responses') * @param {'json' | 'csv'} format - The output format, defaults to 'json' * @param {string} [userId] - Optional user ID for filtering (not currently supported by API) * @returns {Promise<DownloadResponse>} Download response containing the data in requested format * @throws {Error} If the campaign data cannot be retrieved * * @example * // Download campaign statistics as JSON * const jsonData = await client.downloadCampaignData(12345, 'statistics', 'json'); * * @example * // Download campaign data as CSV * const csvData = await client.downloadCampaignData(12345, 'leads', 'csv'); * // csvData.data contains base64-encoded CSV content */ downloadCampaignData(campaignId: number, downloadType: string, format?: 'json' | 'csv', userId?: string): Promise<DownloadResponse>; /** * View download statistics * GET /download-statistics * * Retrieves download statistics with optional filtering by time period and grouping. * Falls back to overall analytics if the download-statistics endpoint is not available. * * @param {string} [timePeriod] - Time period to filter by ('last_7_days', 'last_30_days', 'last_quarter') * @param {string} [groupBy] - How to group the statistics ('date', 'campaign', 'user') * @returns {Promise<SuccessResponse>} Download statistics or fallback analytics data * @throws {Error} If statistics cannot be retrieved from any endpoint * * @example * // Get download statistics for the last 7 days * const stats = await client.viewDownloadStatistics('last_7_days', 'date'); * * @example * // Get all download statistics grouped by campaign * const stats = await client.viewDownloadStatistics(undefined, 'campaign'); */ viewDownloadStatistics(timePeriod?: string, groupBy?: string): Promise<SuccessResponse>; } export {}; //# sourceMappingURL=client.d.ts.map