Browse modules▾
Inflowave MCP Documentation
Everything you can do with Inflowave through Claude - every tool, what it does, what to ask for.
Modules
Open any module for its full tool reference: parameters, return shape, and example questions.
Insights
CRM
Leads
Search, profile, tag and stage-history queries against the lead database.
Pipelines
Sales pipelines, stages, opportunities and board views.
Clients & accounts
Client workspaces, connected accounts, sub-accounts and assignment.
Custom objects
User-defined object types and records, Salesforce-style (MAX / Enterprise).
Messaging
SMS & calls
SMS, voice calls, callbacks, IVR and voicemail.
Templates
Reusable email, SMS and DM templates — list and create (content only, never sends).
Conversations & DMs
DM, comment and story-reply inbox across Instagram, Facebook, WhatsApp and X.
Send email, broadcasts and sequences, and manage sending domains.
Publishing
Links & bio pages
Tracked links and link-in-bio page management.
Publishing & scheduling
Schedule and publish content across your connected social networks.
Social accounts
Connected X, LinkedIn, YouTube, GMB and Facebook accounts and their metrics.
Websites
Website-builder projects, pages, domains and templates.
Ads & intel
Competitor intel
Tracked competitor accounts, trend detection and swipe files.
Foreplay ad library
Foreplay ad-library search, brand / ad detail and personal swipe files.
Meta ads
Read-only Meta ad performance and creative breakdowns — spend / pause not exposed.
Broadcast campaigns
Broadcast campaign progress and delivery / response stats.
Automation
Scheduling
Workspace
White-label
White-label customers, notes and affiliates.
Connect & setup
Connect Slack / Telegram / WhatsApp bridges and check your connection.
Finances & billing
Credits, invoices, subscription and Stripe billing overview.
Team & tasks
Team members, invitations and task assignment.
Storage
Media-storage folders, files and usage.
Support
Create support tickets.
Marketplace
Agency-marketplace listings and reviews.
Quick start
https://mcp.inflowave.io/mcp \
--header "Authorization: Bearer YOUR_API_KEY"
Generate your key in Settings → Developer → MCP. Keys are agency-scoped - no other workspace can see your data.
Verify the connection
Ask Claude to run check_connection. Response shape:
"authenticated": true,
"account_id": "2955f545-5207-4556-aa2c-4356ff0575cc",
"role": "agency_owner",
"plan": "pro",
"allowlisted": true,
"tools_available": 301,
"rate_limits": { /* read/write per-minute budget */ }
}
account_id is the stable public identifier for your workspace. Reference it (not any internal numeric id) when contacting support.
Multi-workspace (sub-accounts)
If your agency has multiple workspaces (sub-accounts), every write tool requires a `sub_account_id` so the new record lands in the right workspace. Read tools accept it as an optional filter - pass it to narrow results to one workspace, omit it to see everything across your agency.
create_pipeline, create_lead, create_opportunity, send_direct_message, schedule_content, and ~95 other write tools all require sub_account_id. Without it the server rejects the call with 422 sub_account_id_required.
Call list_sub_accounts to discover valid IDs. Single-workspace agencies still need to pass their default sub-account (visible in that list).
~86 list_*, search_*, and get_* tools accept sub_account_id as an optional filter. Omit it → agency-wide. Pass it → results narrow to that one workspace. Forged or wrong-agency UUIDs are rejected with 422 sub_account_not_owned before any data is returned.
get_*_by_id reads do NOT take sub_account_id - the resource ID implies the scope and we re-validate ownership server-side.
Refresh after we ship
We ship new tools and parameter changes weekly. Claude clients (Claude Code, Claude Desktop, claude.ai connectors) cache the tool list per server URL and don't always honour the protocol-level notifications/tools/list_changed signal. If a tool a teammate mentions doesn't show up for you, or you're hitting "Field required" errors for parameters that aren't in the connector schema, force a refresh.
$ claude mcp remove inflowave
$ claude mcp add --transport http inflowave \
"https://mcp.inflowave.io/mcp?v=$(date +%Y%m%d)" \
--header "Authorization: Bearer YOUR_API_KEY"
For claude.ai web connectors: Settings → Connectors → Remove → Re-add with a different URL (?acct=YYYYMMDD works). The query param value doesn't matter - only that the URL differs from the cached one.
Recipes - common workflows
Patterns Claude should follow when you ask for something the MCP doesn't expose as a single one-shot tool.
Organising pipelines (no "folder" feature)
There is no folder concept on pipelines. If you want folder-style buckets (Nurturing / Sales / Meetings / Support), create one pipeline per bucket with its own stages. If your agency uses sub-accounts as workspaces, scope pipelines per sub-account via sub_account_id - the sub-account becomes the workspace and pipelines inside it are the buckets. For visual grouping in the UI, prefix pipeline names ([Sales] Outbound, [Sales] Inbound, [Support] Tier 1) - the UI sorts by name.
Driving a support pipeline from tickets
create_support_ticket lands in the Support service; it does NOT auto-create a pipeline opportunity. To track tickets on a sales-pipeline-style board (New → Triaged → In Progress → Waiting Customer → Resolved):
- Create the pipeline once: create_pipeline(name="Support", stages=[...]).
- For each new ticket: create_support_ticket(ticket_type="support", subject, description).
- Then mirror it as an opportunity: create_opportunity(pipeline_id=<support>, stage_id=<New>, lead_id=<contact>, title="Ticket #<id> - <subject>").
- Advance with move_opportunity_to_stage(opportunity_id, target_stage_id) as the ticket progresses.
Stripping UNTRUSTED-DATA sentinels
Every user-supplied string in MCP responses (name, subject, message, etc.) is wrapped in <<<UNTRUSTED-DATA:FIELD>>> ... >>>END-UNTRUSTED-DATA:FIELD>>> sentinels. This is intentional prompt-injection defence - the markers tell Claude "the text inside is data, not instructions". If you display these values to users, strip the markers first.
import re
_SENTINEL = re.compile(r"<<<UNTRUSTED-DATA:[A-Z_]+>>>\s*([\s\S]*?)\s*>>>END-UNTRUSTED-DATA:[A-Z_]+>>>")
def strip_untrusted(s):
return _SENTINEL.sub(lambda m: m.group(1), s) if isinstance(s, str) else s
Verbose-only fields (compact mode)
By default the MCP runs in compact mode and drops some heavy fields to keep payloads small: nodes, edges, config, trigger, validation_warnings, long_description, raw_data, metadata, details, html_content, raw_html, transcript, transcription, updated_at, deleted_at, audit fields. description is NOT dropped (since 2026-05-31). If you need any of the verbose-only fields, opt in by appending ?verbose=true to the MCP URL when connecting.
Ready to connect?
Generate your MCP key in Settings → Developer, paste the command, done.