Multi-Channel API for AI Agents: Email, LinkedIn & WhatsApp (2026)

Multi-Channel API for AI Agents

One multi-channel API for AI agents: Email, LinkedIn, WhatsApp and beyond

Give your AI agents authenticated access to email, LinkedIn, WhatsApp, Telegram and Instagram - from a single unified API. Acting on behalf of the authenticated user, not a shared system inbox. Native MCP server included.

Build your agent Read the docs
agent_tools.py
# Give your agent cross-channel tools from unipile import UnipileClient client = UnipileClient(api_key="YOUR_KEY") # Read email on behalf of the user emails = client.email.list( account_id="user_gmail_account" ) # Send LinkedIn DM on behalf of the user client.messaging.send( account_id="user_linkedin_account", attendee_provider_id="prospect_id", text="Hello, I saw your post..." )
Multi-channel agent running - 5 channels linked
LinkedIn WhatsApp Telegram Instagram
Definition

What is a multi-channel API for AI agents?

AI agents need more than a single inbox to operate at scale. A multi-channel API for AI agents is a unified interface that lets an agent read, send, and manage communications across email, LinkedIn, WhatsApp, Telegram, and Instagram, all from a single integration, acting on behalf of the authenticated user who granted access. Unipile is the only multi-channel API for AI agents that covers professional messaging AND email in a single endpoint, with a native MCP server for email and all other channels.

A multi-channel API for AI agents is an API layer that gives an AI agent authenticated access to multiple communication channels, including email, LinkedIn direct messages, WhatsApp, Telegram, and Instagram, through a single endpoint. The agent acts on behalf of an authenticated user, reading and sending messages from that user's real accounts rather than a generic system inbox. This is the foundational difference between an agent that feels human and one that feels like a bot.

Channel Supported Read Send On behalf of user Agent-only inbox
Email (Gmail) On behalf of
Email (Outlook) On behalf of
Email (IMAP) On behalf of
LinkedIn On behalf of
WhatsApp On behalf of
Telegram On behalf of
Instagram On behalf of
Email (Gmail)
Read Send
On behalf of user
Email (Outlook)
Read Send
On behalf of user
Email (IMAP)
Read Send
On behalf of user
LinkedIn
Read Send
On behalf of user
WhatsApp
Read Send
On behalf of user
Telegram
Read Send
On behalf of user
Instagram
Read Send
On behalf of user

Ready to give your AI agent multi-channel access?

Build Now
The Problem

Email API for AI agents: why single-channel is not enough

An email API for AI agents solves one part of the problem. Your agent can read a Gmail inbox, draft replies, and trigger follow-ups. But the moment a prospect responds on LinkedIn, a customer reaches out on WhatsApp, and a key contact replies only via Telegram - a single-channel agent goes silent. Real-world communication does not happen in a single inbox. That is why a multi-channel API for AI agents has become the architectural standard for production-grade agent stacks in 2026.

Channels do not talk to each other

A prospect might ignore your email but reply to a LinkedIn message within hours. With a single email API, your agent has no visibility into these parallel conversations and cannot coordinate a coherent engagement sequence across channels.

Context is lost between handoffs

When your agent reads an email thread but has no access to the LinkedIn conversation history from the same contact, it produces replies that lack context. A unified messaging API for AI agents eliminates this gap by centralizing all channel signals in one place.

Multiple integrations multiply maintenance cost

Stitching together a separate email API, a LinkedIn API wrapper, a WhatsApp integration, and a Telegram bot creates four authentication flows, four credential stores, and four points of failure. Every platform update breaks a different piece of the stack.

Users expect agents to act on their behalf everywhere

Users who link their accounts expect their AI agent to monitor and respond across all channels, not just email. A unified messaging API for AI agents that acts on behalf of each authenticated user satisfies this expectation without requiring the user to manage separate agent credentials per platform.

What single-channel agents cannot do

Send a LinkedIn message when an email bounces or goes unanswered for 48 hours
Detect that a WhatsApp reply closed a deal already discussed via email, and update the CRM accordingly
Route a customer support request from Instagram DM to the correct team queue based on content analysis
Summarize an entire contact thread across email AND LinkedIn for a sales rep's daily briefing

Several products address the single-channel email API for AI agents use case - the category includes tools designed to give agents a dedicated mailbox. Unipile takes a different approach: instead of a new inbox, agents access the user's existing linked accounts on behalf of the authenticated user, across every supported channel at once.

Start building a multi-channel agent today - no extra integrations needed.

Start building
How Unipile Operates

One API, on behalf of the authenticated user

The fundamental design principle behind Unipile's multi-channel API for AI agents is that every action is taken on behalf of the authenticated user. The agent does not get a system-level key to blast messages at scale. It acts as a delegate of a real person who has explicitly granted access to their LinkedIn account, their Gmail inbox, their WhatsApp account. This distinction matters both for platform compliance and for the quality of the agent's output.

How Unipile Operates

Independent technical intermediary - not a platform partner

Unipile acts as an independent technical intermediary between your application and the communication platforms your users have linked. When an AI agent sends a LinkedIn message or reads a Gmail thread via Unipile, it does so using the credentials of the authenticated user who linked that account - not a shared system credential. Unipile is not affiliated with, endorsed by, or sponsored by LinkedIn, Google, or Meta. Each linked account belongs entirely to the user who authenticated it. The scope of access is limited to what the authenticated user has authorized, and no data is stored in parallel archives outside the scope of the active session.

1

User links their accounts

Each user connects their own email, LinkedIn, WhatsApp, or other accounts via OAuth or secure credential flow. No shared system keys. Each linked account is scoped to that user.

2

Agent receives a scoped token

Your AI agent receives an account ID that maps to the user's linked account. All API calls include this ID, ensuring every action is attributed to the correct authenticated user - not the API key holder.

3

Agent acts on behalf of the user

The agent reads, sends, and manages communications as the user. From the recipient's perspective, the message comes from the user's real account. Platform rate limits and usage policies apply on a per-user basis, not globally.

Build your first agent with proper per-user authentication in minutes.

Build your agent with Unipile
Supported Channels

Supported channels: Email, LinkedIn, WhatsApp, Telegram, Instagram

The Unipile multi-channel API for AI agents covers the full stack of professional and consumer communication. Each channel is accessible via the same unified API surface, using the same authentication model - on behalf of the authenticated user who linked that account. No separate SDK per platform, no fragmented credential management.

Email

Email - Gmail, Outlook, IMAP

Full email access across Gmail, Outlook, and any IMAP-compatible provider. Agents can read threads, send replies, manage labels, and monitor the inbox via webhooks.

Read, send, reply, forward
Thread and attachment access
Webhook push notifications
LinkedIn

LinkedIn - DMs and InMail

Access LinkedIn direct messages and connection requests via the authenticated user's account. Agents can read conversations, send messages, and retrieve contact profiles.

Send DMs and InMail
Read message history
Retrieve contact profiles
WhatsApp

WhatsApp - Personal and Business

Read and send WhatsApp messages from the user's linked account. Ideal for customer success agents that need to close conversations on the channel where customers are most responsive.

Read and send messages
Group chat access
Media message support
Telegram

Telegram - Chats and Channels

Access Telegram conversations from the user's linked account. Agents operating in developer-heavy communities or crypto/fintech workflows often find Telegram is the primary async channel.

Read and send direct messages
Group and channel access
Real-time message retrieval
Instagram

Instagram - Direct Messages

Read and respond to Instagram DMs from the user's linked Business or Personal account. Key for e-commerce and creator economy agents that handle inbound DM volume at scale.

Read and reply to DMs
Media messages supported
On behalf of linked account
Messenger

Messenger - Facebook Messaging

Access Facebook Messenger conversations from the user's linked account. Useful for support agents handling customer inquiries that arrive via Facebook Pages or personal Messenger threads.

Read and send messages
Thread history access
Per-user authentication
MCP Server - Key differentiator

The Unipile MCP server for AI agents

The Model Context Protocol (MCP) is the open standard that lets AI agents like Claude, Cursor, and Windsurf connect to external tools via a structured, secure interface. Unipile ships a native MCP server at https://developer.unipile.com/mcp - plug it in once and your agent gains immediate access to all linked email, LinkedIn, WhatsApp, Telegram, and Instagram accounts. No custom SDK required, no bespoke tool definitions to write per channel.

~/.cursor/mcp.json
{ "mcpServers": { "unipile": { "url": "https://developer.unipile.com/mcp", "headers": { "X-API-KEY": "YOUR_UNIPILE_API_KEY" } } } }
MCP server connected - all channels available as tools
1

Create a Unipile API key

Sign up at dashboard.unipile.com and generate an API key from your workspace settings. This key authenticates your MCP server connection.

2

Add the MCP server config

In your AI editor (Cursor, Windsurf, Claude Desktop), open the MCP settings file and add the Unipile server entry with your API key in the headers.

3

Link user accounts

Your users connect their email, LinkedIn, WhatsApp, and other accounts via the Unipile hosted account link flow or your own OAuth implementation.

4

Give your agent the account IDs

Pass the user's linked account IDs as context to your agent. The MCP tools use these IDs to scope every action to the correct authenticated user.

list_emails

Retrieve email threads from the user's linked inbox - Gmail, Outlook, or IMAP

send_email

Send an email from the user's linked account, with optional attachments

send_linkedin_message

Send a LinkedIn direct message or InMail on behalf of the authenticated user

list_messages

Read messages from any linked channel - WhatsApp, Telegram, Instagram, Messenger

send_message

Send a message on any linked messaging channel on behalf of the authenticated user

search_docs

Query Unipile's developer documentation to assist with integration code generation

One MCP config. All channels. Start building your multi-channel agent today.

Build with MCP
Agent Use Cases

Agent use cases: what multi-channel unlocks

The following use cases represent the most common patterns where a multi-channel API for AI agents delivers measurable value over a single-channel approach. Each pattern describes the job the agent performs, why multiple channels are necessary, and how the Unipile unified messaging API enables it.

01

Research

Research Agent

Job: Gather context on a contact before a meeting, email history, LinkedIn profile, recent messages.
Why multi-channel: The email thread may be sparse, but the LinkedIn conversation history reveals relationship depth. WhatsApp messages may contain agreed next steps never recorded in CRM.
Unipile pattern: Agent queries email threads, LinkedIn DM history, and WhatsApp for the contact's identifier. Aggregates a pre-meeting brief across all three sources using the same API call structure.
Email LinkedIn WhatsApp

02

Outreach

Outreach Agent

Job: Run a multi-step engagement sequence that adapts channel based on response behaviour.
Why multi-channel: Email open rates are declining. A prospect who ignores two emails often responds to a LinkedIn message with the same proposition. The agent must orchestrate cadence on a per-user, per-contact basis.
Unipile pattern: Agent sends email via the user's linked Gmail account, waits 48 hours, checks if opened, then sends a LinkedIn message using send_linkedin_message tool, all from the authenticated user's real accounts.
Email LinkedIn

03

Triage

Inbox Triage Agent

Job: Monitor all inboxes, classify incoming messages by urgency and topic, and surface the top 5 items that need action.
Why multi-channel: An urgent deal inquiry may arrive via LinkedIn DM while the user is monitoring email only. The triage agent normalizes all channels into a unified priority queue.
Unipile pattern: Agent uses webhook events from linked email and messaging accounts to receive real-time notifications. LLM classifies each incoming message. Priority items are surfaced via a daily digest email sent through the user's own linked account.
Email LinkedIn WhatsApp Telegram

04

CS Agent

Customer Success Agent

Job: Handle inbound customer inquiries across WhatsApp and email, resolve tier-1 issues autonomously, escalate tier-2 to human agents with full context.
Why multi-channel: B2C customers reach out via WhatsApp. B2B customers use email or LinkedIn. A customer success agent that can only reply to email loses the WhatsApp-first segment entirely.
Unipile pattern: Agent monitors linked WhatsApp and email accounts for inbound messages. Routes each to the appropriate response handler. On escalation, creates a summary thread and passes context to a human via the same channel the customer used.
Email WhatsApp Instagram

05

Sales

Sales Agent

Job: Qualify inbound leads, schedule demos, send follow-up materials, and update CRM, all autonomously across the channels the prospect prefers.
Why multi-channel: A SaaS lead fills a form but then replies to a LinkedIn InMail. The agent must track the conversation state across both channels to avoid duplicate or contradictory messages.
Unipile pattern: Agent uses the LLM email access capabilities for qualification emails and the LinkedIn messaging API for connection-based engagement. Unified contact thread stored in the application layer, not in Unipile. Platform usage quotas respected on a per-user basis.
Email LinkedIn
# Sales agent: qualify via email, engage via LinkedIn async def qualify_lead(lead, user_accounts): # Step 1, send qualification email await client.email.send( account_id=user_accounts["gmail"], to=lead["email"], subject="Quick question about your stack", body=generate_email(lead) ) # Step 2, if no reply in 48h, LinkedIn follow-up if not await check_reply(lead["email"], hours=48): await client.messaging.send( account_id=user_accounts["linkedin"], attendee_provider_id=lead["linkedin_id"], text=generate_linkedin_msg(lead) )

See all agent use cases on the Unipile website.

Explore AI agent use cases
Code Examples

Code: give an agent email + LinkedIn tools

The following examples show how to build a multi-channel AI agent using the Unipile unified messaging API. Both Python and Node.js examples demonstrate reading an email and sending a LinkedIn message from the same authenticated user account, using consistent API call patterns across channels.

Prerequisites: A Unipile API key, at least one linked email account (Gmail, Outlook, or IMAP) and one linked LinkedIn account for the user. Account IDs are returned when the user links their accounts. See the Unipile getting-started guide for the account linking flow.
Python
Node.js
MCP (Claude)
agent_tools.py
import requests BASE_URL = "https://api1.unipile.com:13465/api/v1" API_KEY = "YOUR_UNIPILE_API_KEY" HEADERS = { "X-API-KEY": API_KEY, "Content-Type": "application/json" } # ---- Tool 1: Read emails on behalf of the authenticated user ---- def list_emails(email_account_id, limit=10): res = requests.get( f"{BASE_URL}/emails", headers=HEADERS, params={ "account_id": email_account_id, "limit": limit } ) return res.json() # ---- Tool 2: Send LinkedIn DM on behalf of the authenticated user ---- def send_linkedin_dm(linkedin_account_id, recipient_provider_id, message): res = requests.post( f"{BASE_URL}/chats", headers=HEADERS, json={ "account_id": linkedin_account_id, "attendees_ids": [recipient_provider_id], "text": message } ) return res.json() # ---- Agent orchestration example ---- def run_agent(user): emails = list_emails(user["email_account_id"]) top_email = emails["items"][0] # get most recent email # Agent decision: follow up via LinkedIn if email is from a prospect if is_prospect(top_email): send_linkedin_dm( user["linkedin_account_id"], lookup_linkedin_id(top_email["from"]), generate_followup(top_email) )
Agent running - email read, LinkedIn DM queued for authenticated user
agentTools.js
const BASE_URL = 'https://api1.unipile.com:13465/api/v1'; const API_KEY = 'YOUR_UNIPILE_API_KEY'; const headers = { 'X-API-KEY': API_KEY, 'Content-Type': 'application/json' }; // Tool 1: Read emails on behalf of the authenticated user async function listEmails(emailAccountId, limit = 10) { const url = `${BASE_URL}/emails?account_id=${emailAccountId}&limit=${limit}`; const res = await fetch(url, { headers }); return res.json(); } // Tool 2: Send LinkedIn DM on behalf of the authenticated user async function sendLinkedInDM(linkedinAccountId, recipientId, message) { const res = await fetch(`${BASE_URL}/chats`, { method: 'POST', headers, body: JSON.stringify({ account_id: linkedinAccountId, attendees_ids: [recipientId], text: message }) }); return res.json(); } // Agent: read email, decide, send LinkedIn DM async function runAgent(user) { const { items } = await listEmails(user.emailAccountId); for (const email of items) { if (isProspect(email)) { await sendLinkedInDM( user.linkedinAccountId, await lookupLinkedInId(email.from), generateFollowup(email) ); } } }
Agent tools ready - multi-channel access from a single API key
claude_desktop_config.json
{ "mcpServers": { "unipile": { "url": "https://developer.unipile.com/mcp", "headers": { "X-API-KEY": "YOUR_UNIPILE_API_KEY" } } } } // Once connected, Claude can use natural language instructions: // "Read the last 5 emails from john@example.com in my Gmail inbox" // "Send a LinkedIn message to prospect_id saying hello" // "Check if there are unread WhatsApp messages from my top 3 contacts" // // All actions execute on behalf of the authenticated user // whose linked account IDs are provided as context.
MCP server connected - Claude has multi-channel tools available

Full API reference and more code examples in the developer docs.

Read the API docs
Compliance

Data handling and platform limits

Building AI agents that interact with real user accounts requires careful attention to data handling and platform usage policies. The following compliance blocks describe how Unipile handles data, how it operates relative to the platforms it connects, and the responsibility framework for agent cadence and volume.

Data Handling Note

No parallel data archives - session-scoped access only

Unipile does not store user messages, email content, or message metadata in a parallel archive or independent database outside the scope of the active API session. When your agent retrieves emails, LinkedIn messages, or WhatsApp conversations via the Unipile API, that data is retrieved in real time from the user's linked account and returned in the API response. Unipile is a relay layer - it does not replicate or index user communications independently. Your application is responsible for any storage of retrieved data in compliance with applicable data protection regulations (GDPR, SOC2).

Platform Limits and Responsible Use

Rate limits are relayed from the platform - cadence is your responsibility

Unipile relays the rate limits and usage restrictions imposed by each communication platform (LinkedIn, WhatsApp, Gmail, Outlook, Telegram, Instagram). When an agent sends messages or retrieves data via the Unipile API, the platform's own limits apply. The decision about message cadence, daily send volume, and engagement frequency is entirely a customer-side decision and must be made responsibly by the application developer. Unipile does not endorse, recommend, or guarantee any specific engagement volume. Actions that exceed a platform's acceptable use policy are the developer's responsibility. Unipile is not affiliated with, endorsed by, or sponsored by LinkedIn, Google, or Meta.

GDPR and SOC2 compliance

Unipile's infrastructure is designed with GDPR compliance and SOC2 principles in mind. User account credentials are encrypted at rest. Access tokens are never logged or exposed in API responses.

Per-user account isolation

Each linked account is strictly scoped to the user who authenticated it. There is no cross-user data leakage. An agent operating on user A's account cannot access user B's messages.

Platform-native rate limits

LinkedIn, WhatsApp, Gmail, and other platforms impose their own usage quotas. Unipile surfaces these limits in API error responses. Your agent must implement appropriate back-off and volume control logic.

Comparison

Multi-channel vs single-channel agent stacks

The table below compares a multi-channel API for AI agents approach (Unipile) against typical single-channel or email-only agent stacks. When you need both a reliable email API for AI agents and LinkedIn or WhatsApp access in one place, the architectural difference becomes clear. The comparison is based on capabilities, not marketing claims. No links to third-party products are included - this is a category comparison.

Capability Unipile (multi-channel) Email-only agent API DIY multi-integration
Number of channels supported 6+ (Email, LinkedIn, WhatsApp, Telegram, Instagram, Messenger) Email only (1 channel) Variable (depends on integrations built)
On behalf of authenticated user Yes - per-user linked accounts Varies - some use shared inboxes Requires custom OAuth per platform
Native MCP server Yes - developer.unipile.com/mcp Some offer MCP for email only Must build custom MCP tools per platform
LinkedIn messaging access Yes - DMs and InMail No Requires separate LinkedIn integration
WhatsApp and Telegram access Yes - both supported No Separate integrations needed per channel
Unified API endpoint Yes - same API structure across all channels No - email API only No - fragmented endpoint structures
Webhook push notifications Yes - email and messaging channels Email webhooks only Varies per integration
Time to multi-channel agent Hours (1 API key + MCP config) Days (email only) Weeks to months per additional channel

Start building with the only multi-channel API for AI agents that covers email, LinkedIn, WhatsApp and more.

Build your agent

Multi-Channel API for AI Agents - FAQ

Common questions about building AI agents with multi-channel communication access - email, LinkedIn, WhatsApp, Telegram, and Instagram via one unified API.

Unipile is the only unified API that lets an AI agent send both email (via Gmail, Outlook, or IMAP) and LinkedIn direct messages from a single integration, acting on behalf of the authenticated user. Unlike email-only agent APIs, Unipile covers all major professional channels in one API key. The MCP server at developer.unipile.com/mcp makes the setup a single config file addition in Claude, Cursor, or Windsurf.

Yes. Unipile's unified messaging API for AI agents gives access to both email accounts (Gmail, Outlook, IMAP) and WhatsApp conversations through a single API endpoint. The agent reads and sends on behalf of the authenticated user who linked those accounts. The same account_id-based pattern is used for both channels - no separate authentication flows or SDKs needed.

Yes. Unipile operates a native MCP (Model Context Protocol) server at developer.unipile.com/mcp. Once connected, AI agents running in Claude Desktop, Cursor, or Windsurf can access all linked channels - including LinkedIn, WhatsApp, email, Telegram, and Instagram - through standard MCP tool calls. No custom tool definitions required per channel. This is the only MCP server for email AND LinkedIn messaging in one config.

The user connects their LinkedIn account via Unipile's account linking flow. This returns a linked account ID scoped to that user. The AI agent then calls the Unipile messaging API with that account_id and the recipient's LinkedIn provider ID. The message is sent from the user's real LinkedIn account - not a shared system credential. Platform usage policies apply on a per-user basis, as a customer-side decision.

It means the AI agent's actions are attributed to the real user account - not to a shared API key or system inbox. When an agent reads a Gmail thread via Unipile, the request uses the OAuth token of the user who linked that Gmail account. When it sends a LinkedIn message, the message appears to come from that user's real profile. Recipients see the user's name, not a bot account. This is the fundamental difference between Unipile and agent-only inbox products.

The Unipile email API supports three providers: Gmail (Google OAuth), Outlook (Microsoft OAuth - covering personal Outlook and Microsoft 365 / Exchange Online), and IMAP (universal fallback for any IMAP-compatible email provider). All three use the same API call structure and the same on-behalf-of authentication model for agent access.

Unipile does not store user messages or email content in a parallel archive outside the active API session. Data retrieved via the API is returned in real time from the user's linked account. Unipile acts as a relay layer - a technical intermediary that does not independently index or archive communications. Your application is responsible for any data storage in compliance with GDPR and applicable data protection regulations.

No. Unipile is not affiliated with, endorsed by, or sponsored by LinkedIn, Google, or Meta. Unipile is an independent technical intermediary. When agents access LinkedIn, Gmail, WhatsApp, or Instagram via Unipile, they do so using the credentials of the authenticated user who explicitly linked that account. Platform rate limits and acceptable use policies apply on a per-user basis and remain the developer's responsibility.

Still have questions about building your multi-channel AI agent? Our team is here to help.

Talk to an expert
en_USEN