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

186 lines • 7.68 kB
/** * SmartLead MCP Server - Email Account Management Client * * Client module for email account management API endpoints. * Handles all email account-related operations including creation, updates, warmup settings, and health metrics. * * @author LeadMagic Team * @version 1.5.0 */ import { BaseSmartLeadClient } from '../../client/base.js'; /** * Email Account Management Client * * Provides methods for managing SmartLead email accounts including: * - Creating and updating email accounts * - Managing warmup settings and status * - Health metrics and monitoring * - Campaign assignment and management */ export class EmailAccountManagementClient extends BaseSmartLeadClient { // ================================ // EMAIL ACCOUNT MANAGEMENT METHODS // ================================ /** * List Email Accounts Per Campaign * GET /campaigns/{campaign_id}/email-accounts */ async listEmailAccountsPerCampaign(campaignId) { const response = await this.withRetry(() => this.apiClient.get(`/campaigns/${campaignId}/email-accounts`), 'list email accounts per campaign'); return response.data; } /** * Add Email Account To Campaign * POST /campaigns/{campaign_id}/email-accounts */ async addEmailAccountToCampaign(campaignId, params) { const response = await this.withRetry(() => this.apiClient.post(`/campaigns/${campaignId}/email-accounts`, params), 'add email account to campaign'); return response.data; } /** * Remove Email Account From Campaign * DELETE /campaigns/{campaign_id}/email-accounts/{email_account_id} */ async removeEmailAccountFromCampaign(campaignId, emailAccountId) { const response = await this.withRetry(() => this.apiClient.delete(`/campaigns/${campaignId}/email-accounts/${emailAccountId}`), 'remove email account from campaign'); return response.data; } /** * Get All Email Accounts * GET /email-accounts */ async getAllEmailAccounts() { const response = await this.withRetry(() => this.apiClient.get('/email-accounts'), 'get all email accounts'); return response.data; } /** * Create Email Account * POST /email-accounts */ async createEmailAccount(params) { const response = await this.withRetry(() => this.apiClient.post('/email-accounts', params), 'create email account'); return response.data; } /** * Update Email Account * POST /email-accounts/{email_account_id} */ async updateEmailAccount(emailAccountId, params) { const response = await this.withRetry(() => this.apiClient.post(`/email-accounts/${emailAccountId}`, params), 'update email account'); return response.data; } /** * Get Email Account By ID * GET /email-accounts/{email_account_id} */ async getEmailAccountById(emailAccountId) { const response = await this.withRetry(() => this.apiClient.get(`/email-accounts/${emailAccountId}`), 'get email account by ID'); return response.data; } /** * Start Email Account Warmup * POST /email-accounts/{email_account_id}/warmup */ async startEmailAccountWarmup(emailAccountId, params) { const response = await this.withRetry(() => this.apiClient.post(`/email-accounts/${emailAccountId}/warmup`, params), 'start email account warmup'); return response.data; } /** * Reconnect Failed Email Accounts * POST /email-accounts/reconnect */ async reconnectFailedEmailAccounts(params) { const response = await this.withRetry(() => this.apiClient.post('/email-accounts/reconnect', params), 'reconnect failed email accounts'); return response.data; } /** * Update Email Account Tag * POST /email-accounts/{email_account_id}/tag */ async updateEmailAccountTag(emailAccountId, params) { const response = await this.withRetry(() => this.apiClient.post(`/email-accounts/${emailAccountId}/tag`, params), 'update email account tag'); return response.data; } /** * Test email account connection */ async testEmailAccountConnection(accountId) { const response = await this.withRetry(() => this.apiClient.post(`/email-accounts/${accountId}/test-connection`), 'test email account connection'); return response.data; } /** * Get email account warmup status */ async getEmailAccountWarmupStatus(accountId) { const response = await this.withRetry(() => this.apiClient.get(`/email-accounts/${accountId}/warmup-status`), 'get email account warmup status'); return response.data; } /** * Update email account warmup settings */ async updateEmailAccountWarmupSettings(accountId, params) { const response = await this.withRetry(() => this.apiClient.put(`/email-accounts/${accountId}/warmup-settings`, params), 'update email account warmup settings'); return response.data; } /** * Get email account health metrics */ async getEmailAccountHealthMetrics(accountId, params) { const response = await this.withRetry(() => this.apiClient.get(`/email-accounts/${accountId}/health-metrics`, { params }), 'get email account health metrics'); return response.data; } /** * Assign email accounts to campaign */ async assignEmailAccountsToCampaign(campaignId, accountIds) { const response = await this.withRetry(() => this.apiClient.post(`/campaigns/${campaignId}/email-accounts/bulk`, { email_account_ids: accountIds, }), 'assign email accounts to campaign'); return response.data; } /** * Remove email accounts from campaign */ async removeEmailAccountsFromCampaign(campaignId, accountIds) { const response = await this.withRetry(() => this.apiClient.delete(`/campaigns/${campaignId}/email-accounts/bulk`, { data: { email_account_ids: accountIds }, }), 'remove email accounts from campaign'); return response.data; } /** * Update email account warmup */ async updateEmailAccountWarmup(emailAccountId, params) { const response = await this.withRetry(() => this.apiClient.post(`/email-accounts/${emailAccountId}/warmup`, params), 'update email account warmup'); return response.data; } /** * Get campaign email accounts */ async getCampaignEmailAccounts(campaignId) { const response = await this.withRetry(() => this.apiClient.get(`/campaigns/${campaignId}/email-accounts`), 'get campaign email accounts'); return response.data; } /** * Bulk update email account settings */ async bulkUpdateEmailAccountSettings(params) { const response = await this.withRetry(() => this.apiClient.put('/email-accounts/bulk-update', params), 'bulk update email account settings'); return response.data; } /** * Get email account sending limits */ async getEmailAccountSendingLimits(accountId) { const response = await this.withRetry(() => this.apiClient.get(`/email-accounts/${accountId}/sending-limits`), 'get email account sending limits'); return response.data; } /** * Update email account sending limits */ async updateEmailAccountSendingLimits(accountId, params) { const response = await this.withRetry(() => this.apiClient.put(`/email-accounts/${accountId}/sending-limits`, params), 'update email account sending limits'); return response.data; } } //# sourceMappingURL=client.js.map