---
title: Smartlead API Integration on Truto
slug: smartlead
category: Sales Enablement
canonical: "https://truto.one/integrations/detail/smartlead/"
---

# Smartlead API Integration on Truto



**Category:** Sales Enablement  
**Status:** Generally available

## Unified APIs

### Unified Marketing Automation API

- **Campaigns** — The campaign represent a campaign in the remote system.
- **Contacts** — The contact represent a contact in the remote system.

## MCP-ready AI tools

Truto exposes 43 tools for Smartlead that AI agents can call directly.

- **list_all_smartlead_campaigns** — List all campaigns in Smartlead. Returns id, user_id, created_at, updated_at, status, name, track_settings, scheduler_cron_value, min_time_btwn_emails, max_leads_per_day, stop_lead_settings, unsubscribe_text, and client_id for each campaign.
- **create_a_smartlead_campaign** — Create a campaign in Smartlead using required name parameter. Returns ok (operation status), id (campaign identifier), name (campaign name), and created_at (timestamp) in the response.
- **get_single_smartlead_campaign_by_id** — Get details about a specific campaign in Smartlead using id. Returns fields such as id, user_id, status, name, scheduler_cron_value, min_time_btwn_emails, and other campaign settings in the response.
- **update_a_smartlead_campaign_by_id** — Update general settings for a specific campaign in Smartlead using id. Returns ok field indicating success. Requires valid values for track_settings and stop_lead_settings.
- **delete_a_smartlead_campaign_by_id** — Delete a campaign in Smartlead using id. Returns no content in the response.
- **smartlead_campaigns_top_level_analytics** — Get top level analytics for a specific campaign in Smartlead. Requires id. Returns email stats fields such as sent_count, open_count, reply_count, sequence_count, tags, unique_open_count, client_name, campaign_lead_stats, and more in the response.
- **smartlead_campaigns_export_campaign_leads_csv** — Export all leads from a campaign in Smartlead using id. Returns a CSV file with fields such as id, email, status, created_at, custom_fields, is_unsubscribed, is_interested, and engagement counts.
- **smartlead_campaigns_update_campaign_status** — Update status of a campaign in Smartlead. Requires id. Returns success/failure indicating if campaign status was updated.
- **smartlead_campaigns_update_schedule** — Update campaign schedule in Smartlead using id. Updates fields such as timezone, days_of_the_week, start_hour, end_hour, min_time_btw_emails, max_new_leads_per_day, and schedule_start_time. These fields are returned in the response.
- **list_all_smartlead_email_accounts** — List all email accounts in Smartlead used for sending emails to leads. Returns email account details including fields like provider, email, name, and sending status.
- **create_a_smartlead_email_account** — Create a specific email account in Smartlead using id. Returns key fields such as id, from_name, from_email, user_name, smtp_host, smtp_port, imap_host, and imap_port in the response. Requires id in the request body.
- **get_single_smartlead_email_account_by_id** — Get email account details in Smartlead by id. Returns all email details including account_id, account status, and connection settings for the specified id.
- **update_a_smartlead_email_account_by_id** — Update email-accounts in Smartlead. Requires id. Returns updated fields such as max_email_per_day, custom_tracking_url, bcc, signature, client_id, and time_to_wait_in_mins.
- **smartlead_email_accounts_reconnect_failed_emails** — Reconnect failed email-accounts in Smartlead. Returns results for each attempted reconnection, including account identifiers and statuses.
- **list_all_smartlead_campaign_email_accounts** — List all email accounts for a campaign in Smartlead. Requires campaign_id. Returns id, user_id, from_email, smtp details, imap details, type, and daily_sent_count for each account.
- **create_a_smartlead_campaign_email_account** — Add an email account to a campaign in Smartlead. Requires campaign_id. Returns id, email_campaign_id, email_account_id, and updated_at for the linked account.
- **delete_a_smartlead_campaign_email_account_by_id** — Delete an email account from a campaign in Smartlead. Requires campaign_id and id. Returns confirmation of successful removal.
- **list_all_smartlead_campaign_leads** — List all leads for a specific campaign in Smartlead. Requires campaign_id. Returns campaign_lead_map_id, status, created_at, and lead fields such as id, first_name, last_name, email, company_name, and is_unsubscribed.
- **create_a_smartlead_campaign_lead** — Add leads to a campaign in Smartlead using campaign_id. Requires campaign_id. Returns fields for each added lead including first_name, last_name, email, phone_number, company_name, website, location, custom_fields, linkedin_profile, and company_url.
- **delete_a_smartlead_campaign_lead_by_id** — Delete a lead from a campaign in Smartlead. Requires campaign_id and id. Returns ok field in the response to indicate if the operation was successful.
- **smartlead_campaign_leads_unsubscribe_lead** — Unsubscribe a specific campaign-lead from a campaign in Smartlead. Requires campaign_id and id. Returns ok indicating the success status.
- **smartlead_campaign_leads_pause_lead** — Pause a specific campaign-lead in Smartlead. Requires campaign_id and id. Returns confirmation of the lead being paused.
- **smartlead_campaign_leads_resume_leads** — Resume campaign-leads in Smartlead using campaign_id and id. Returns status and updated lead information in the response.
- **smartlead_campaign_leads_reply_to_lead** — Reply to a lead in Smartlead via the Master Inbox API. Requires campaign_id. Returns information on the sent reply, including email_stats_id and reply_message_id.
- **update_a_smartlead_campaign_lead_by_id** — Update a lead in Smartlead using campaign_id and id. Returns updated lead fields, including lead status, contact details, and any changes applied.
- **smartlead_campaign_leads_update_lead_category** — Update a campaign-leads category in Smartlead. Requires campaign_id and id as parameters. Returns the updated category_id and the status of pause_lead in the response.
- **list_all_smartlead_leads** — Get lead details in Smartlead using email. Requires email. Returns id, first_name, last_name, email, created_at, phone_number, company_name, website, location, custom_fields, linkedin_profile, company_url, is_unsubscribed.
- **smartlead_leads_unsubscribe** — Unsubscribe a lead from all campaigns in Smartlead using id. Removes the lead from existing campaigns and blocks from future campaigns. Returns status indicating successful unsubscription.
- **smartlead_leads_block** — Add leads or domains to the global block list in Smartlead. Returns a success/failure response indicating if the operation completed successfully.
- **list_all_smartlead_lead_campaigns** — List all lead-campaigns for a specific lead in Smartlead using id. Returns campaign id, status, and name fields in the response.
- **list_all_smartlead_campaign_sequences** — Get campaign sequence data in Smartlead for a specific campaign_id. Returns id, created_at, updated_at, email_campaign_id, seq_number, subject, email_body, and sequence_variants with their respective fields in the response.
- **list_all_smartlead_campaign_statistics_by_date** — Fetch campaign statistics by campaign_id, start_date, and end_date in Smartlead. Returns fields such as id, user_id, created_at, status, name, sent_count, open_count, click_count, reply_count, block_count, total_count, drafted_count, bounce_count, and unsubscribed_count.
- **list_all_smartlead_lead_category** — List lead categories in Smartlead. Returns id, created_at, and name fields for each lead-category.
- **list_all_smartlead_campaign_lead_message_history** — Get the entire message history for a specific lead in a campaign in Smartlead. Requires campaign_id and id. Returns an array of messages with type, message_id, stats_id, time, email_body, and subject fields.
- **list_all_smartlead_campaign_statistics** — Fetch campaign statistics in Smartlead for a specific campaign using id. Returns fields including lead_name, lead_email, sequence_number, email_subject, sent_time, open_count, click_count, is_unsubscribed, and is_bounced.
- **list_all_smartlead_campaign_webhooks** — List all campaign-webhooks in Smartlead for a specific campaign using campaign_id. Returns id, name, created_at, updated_at, webhook_url, email_campaign_id, event_types, and categories for each webhook.
- **update_a_smartlead_campaign_webhook_by_id** — update a campaign-webhooks resource in Smartlead for a given campaign_id. Requires campaign_id in the path and returns the webhook's id, name, webhook_url, event_types, and categories in the response.
- **create_a_smartlead_campaign_webhook** — Add a campaign webhook in Smartlead. Requires campaign_id. Returns webhook fields including id, name, webhook_url, event_types, and categories.
- **delete_a_smartlead_campaign_webhook_by_id** — Delete a campaign webhook in Smartlead. Requires campaign_id and id. No content is returned in the response upon successful deletion.
- **get_single_smartlead_email_account_warmup_stat_by_id** — Fetch warmup stats for the last 7 days by email account in Smartlead. Requires id. Returns id, sent_count, spam_count, inbox_count, warmup_email_received_count, and stats_by_date with daily stats.
- **create_a_smartlead_email_account_warmup_setting** — Add or update warmup settings for an email account in Smartlead. Requires id. Returns updated warmup_enabled, total_warmup_per_day, daily_rampup, reply_rate_percentage, and warmup_key_id fields in the response.
- **create_a_smartlead_client** — Create a new client in Smartlead. Requires name, email, permission, logo, and password. Returns the created client's id, name, email, permissions, and logo in the response.
- **list_all_smartlead_clients** — Fetch all clients in Smartlead. Returns id, name, email, uuid, created_at, user_id, logo, logo_url, and client_permission fields for each client.

## How it works

1. **Link your customer's Smartlead account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Smartlead.** The Proxy API is a 1-to-1 mapping of the Smartlead API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Push enriched prospect lists directly into cold outreach campaigns** — B2B data and enrichment platforms can let users export curated prospect lists straight into their Smartlead campaigns, mapping enriched fields like tech stack, company size, and AI-generated icebreakers to Smartlead's custom variables — eliminating CSV exports and manual imports.
- **Trigger automated outreach sequences from real-time intent signals** — Intent and signal tracking tools can automatically inject high-intent prospects into live Smartlead campaigns the moment a buying signal is detected, ensuring outreach hits inboxes within minutes of a website visit or content engagement.
- **Use Smartlead as a headless sending engine for your CRM** — Lightweight CRMs that lack native cold email infrastructure can offload all sending, warm-up, and mailbox rotation to Smartlead via API, while keeping the conversation timeline and lead status management inside their own UI through webhook-driven reply routing.
- **Centralize outbound campaign analytics into a unified dashboard** — Revenue intelligence and BI platforms can pull campaign-level metrics like sent count, reply rate, and bounce rate from Smartlead to power cross-channel reporting views, so sales managers never need to leave the primary analytics tool.
- **Programmatically provision and manage agency client workspaces** — SaaS platforms serving lead generation agencies can automate the creation and management of Smartlead client accounts, enabling white-labeled multi-tenant outbound operations at scale without manual setup in the Smartlead UI.

## What you can build

- **1-Click Export to Smartlead Campaign** — Let users select prospects from your app, pick a destination campaign via list_all_smartlead_campaigns, and bulk-inject leads with custom fields and LinkedIn profiles using create_a_smartlead_campaign_lead.
- **Closed-Loop Reply Routing with Auto-Pause** — Register webhooks on Smartlead campaigns to listen for replies, automatically pause the lead's sequence, update their category, and surface the conversation in your app's activity timeline.
- **Embedded Outbound Campaign Analytics Dashboard** — Pull sent, open, reply, and bounce metrics via campaign statistics and top-level analytics endpoints to render real-time outbound performance charts natively inside your product.
- **Email Deliverability Health Monitor** — Surface per-account warmup stats including inbox vs. spam placement, and trigger automatic reconnection of failed email accounts so users can maintain sender reputation without leaving your platform.
- **Dynamic Lead Status Sync Between CRM and Smartlead** — When a lead's status changes in your app — such as booking a meeting or being disqualified — automatically pause, resume, unsubscribe, or re-categorize them in Smartlead to prevent stale follow-ups.
- **Multi-Client Workspace Provisioning for Agencies** — Programmatically create and list Smartlead client workspaces using create_a_smartlead_client, letting agency users manage isolated outbound operations for each of their customers from a single pane of glass.

## FAQs

### What authentication method does the Smartlead integration use?

Smartlead uses API key authentication. Your end users provide their Smartlead API key when connecting their account through Truto's embedded linking flow. Truto securely stores and manages the credential so you never handle raw keys directly.

### Can I pass custom fields and personalization variables when adding leads to a campaign?

Yes. The create_a_smartlead_campaign_lead endpoint accepts custom_fields, which you can use to inject AI-generated icebreakers, enrichment data, or any dynamic merge variables that map to your Smartlead email sequences.

### How do I listen for replies or status changes in Smartlead campaigns?

You can programmatically register, update, list, and delete webhooks on any campaign using the campaign webhook endpoints. This lets you receive real-time callbacks for events like replies and opens, which you can then process in your app.

### Does the integration support pausing, resuming, and unsubscribing individual leads?

Yes. You can pause a lead, resume leads, unsubscribe a lead from a specific campaign, update their category, and even reply to a lead — all through dedicated endpoints. There are also global-level unsubscribe and block endpoints for leads across all campaigns.

### What campaign analytics data can I pull through the integration?

You can retrieve top-level campaign analytics, date-range-based campaign statistics, per-campaign statistics, and lead category breakdowns. These include metrics like sent count, reply count, open count, and bounce count.

### Does Truto handle pagination and rate limiting for the Smartlead API?

Yes. Truto abstracts away pagination and API-specific quirks like rate limits. You interact with a consistent interface, and Truto handles retries and page traversal behind the scenes so you can focus on building your product features.
