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
TypeScript
/**
* 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