Vendo AI

com.vendo-ai由 vendo-ai.com 发布官方发布者v1.0.0更新于 Oct 26, 2026

Autonomous AI sales: agents, signal-based prospecting, outreach, CRM — 149 tools.

已验证Streamable HTTP可网页运行商业与电商媒体与设计AI 与机器学习

概览

AI 生成的概览

Vendo AI 的远程 MCP 服务器让助手创建、编写脚本、配置语音并发布 AI 销售、客服与信息代理,以及其网站组件和幻灯片演示。

可以做什么
  • 创建与配置代理:新建、更新、设置头像、公司信息、联系渠道和集成开关
  • 编写与测试内容:生成或替换脚本、上传和删除学习资料、测试回复、从网址生成知识
  • 扫描网站:列出页面、生成页面描述、深度扫描公司网站与 LinkedIn、查询任务状态
  • 管理渠道:创建、修改、预览和删除网站组件、按钮、演示、Google Meet、电话和 Telegram 渠道,并获取嵌入代码
  • 演示文稿:读取和保存幻灯片、生成单页讲稿、设置主讲语音与外观、生成过渡语
  • 分析与会话:渠道统计、组件分析、会话列表和语音通话录音
适用场景
当你希望助手端到端搭建或维护 Vendo AI 的销售、客服或信息代理——撰写脚本、上传资料、扫描公司网站、发布组件并查看会话——而不必在 Vendo AI 应用里逐项操作时使用。
运行要求
通过 streamable HTTP 连接 api.vendo-ai.com 远程端点。需要 Vendo AI 账号,以及在应用 Settings 的 API & MCP 中创建的 API 密钥,以 bearer 令牌放在 Authorization 请求头中。多项操作需要账户有积分余额。
安装前请注意
许多工具会消耗 Vendo AI 账户积分(例如深度扫描 15 积分、脚本生成 1 积分、演示语音每分钟 17 积分),运行前应确认费用并先预览。部分工具会覆盖或删除数据且无法撤销:脚本、幻灯片、公司描述以及渠道删除。深度扫描会读取公司网站和 LinkedIn,并保存提取出的公司、团队和联系人数据。工具会暴露访客会话和语音通话录音。API 密钥拥有完整账户权限,须妥善保管。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Vendo AI,将其添加到工作区。
  2. 连接 Authorization token 凭据。它们会被私密存储,绝不会在公开页面上展示。
  3. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/com.vendo-ai%2Fvendo-ai/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "vendo-ai": {
      "type": "http",
      "url": "https://api.vendo-ai.com/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

工具

200

create_agent

Create a new agent

Create an AI agent like step 1 of the app's builder. Choose its direction: purpose "sales" (default), "support" or "info". The agent starts in DRAFT and contacts nobody. Needs at least 1 credit on the balance (checked, not charged). Fails with a plan-limit error when all agent slots are used (see get_agent_plan_limits). Next: set_agent_company → generate_agent_script → channels.

输入参数name必填genderpurposedescriptionavatar_preset

update_agent

Update agent basics

Change an agent's name, description, direction (purpose), voice gender or preset face. Only the fields you pass change. Company name/website/description → set_agent_company; contacts → set_agent_contact_channels. Free.

输入参数id必填namegenderpurposedescriptionavatar_preset

set_agent_avatar_from_url

Set the agent's own photo

Upload a custom avatar photo (JPG, PNG or GIF, ≤5 MB) from a public image URL or base64. Replaces the preset face. Free.

输入参数id必填image_urlimage_base64

set_agent_contact_channels

Set the contacts the agent hands out

Set the meeting link, presentation link, email, phone, WhatsApp, Telegram and up to 10 custom links that the agent gives to visitors (also shown as screen cards). MERGE: only the channels you pass change; pass "" (or null for custom_links) to clear one. Write, free.

输入参数id必填emailphonetelegramwhatsappmeeting_urlcustom_linkspresentation_url

list_voice_catalog

List voices (Voice v2 catalogue)

All voices for the website widget, Slide Presenter and Telegram voice: engine, gender, accent, expressive support, Ukrainian support, recommended flag, preview audio. Read-only. Use a voice_id from here in set_agent_voice / set_presentation_voice / set_telegram_voice_settings.

无需输入参数。

set_agent_voice

Turn on / configure the website-widget voice

Configure the voice of the agent's website widget exactly like the app's widget settings page and create/update the voice agent at the voice provider, so voice calls in the widget really work. Only the settings you pass change (the rest keep their saved values or the app defaults). voice_id is required the first time (list_voice_catalog). Takes up to ~1 min. Free to configure; widget voice calls cost 14 credits/min.

输入参数id必填llmrulesspeedvolumeambientemotionhandbookvoice_idlanguagesend_call_sbackchannel另有 10 个

test_agent_reply

Ask the agent a test question (text)

Send a message to the agent and get its reply using its current script — a text test, nobody is contacted. Needs a generated script. Use history for a multi-turn test.

输入参数id必填historymessage必填

update_agent_script

Edit the agent's script stages

Replace the script stages (rename, reorder, edit, add or remove stages) and optionally the tone, like the builder's script editor. Send the FULL list of stages you want; the full text is rebuilt from them. Get the current stages from get_agent (script_sections). Free.

输入参数id必填sections必填email_scriptscript_style

add_agent_document

Attach a knowledge file to the agent

Upload a material the agent learns from (PDF, DOC, DOCX, TXT, XLS, XLSX, CSV, PPT, PPTX, KEY; ≤10 MB) from a public URL or base64. Used the next time the script is generated (generate_agent_script). Free.

输入参数id必填file_urlfilename必填file_base64

remove_agent_document

Remove a knowledge file from the agent

Remove an uploaded material from the agent (see get_agent → documents[].url). Free.

输入参数id必填urlfilename

generate_knowledge_from_url

Turn a web page into a knowledge block

Read a public web page and return a knowledge text block about it. Costs 1 credit. NOT saved — append the result to company_description with set_agent_company if you want the agent to know it.

输入参数id必填url必填

scan_agent_website

Scan the agent's website structure

List the pages of a website (path, title, description, keywords) for this agent — used by the page-navigation feature. Costs 2 credits. Read-only for the agent (nothing saved).

输入参数id必填website_url必填

generate_agent_page_descriptions

Describe website pages with AI

Write AI descriptions + keywords for website pages (output of scan_agent_website). Costs 1 credit per 5 pages. Not saved.

输入参数id必填pages必填

generate_support_script

Generate a support knowledge script (legacy)

Legacy support-script generator of the old text-widget creators. Prefer generate_agent_script with purpose "support". Needs company name + description. Costs 1 credit.

输入参数id必填

generate_transition_phrases

Generate slide transition phrases

Generate the phrases the Slide Presenter uses to move between slides, in the presentation's language, and save them on the agent. Needs saved slides (set_presentation_slides).

输入参数id必填

set_agent_integrations

Set legacy integration flags

Legacy flags on the agent (zoom_enabled, google_meet_enabled, website_embed_enabled). Channels are managed with the connection tools; this does not connect anything. Free.

输入参数id必填zoom_enabledgoogle_meet_enabledwebsite_embed_enabled

preview_deep_scan

Preview a deep website scan

Show what deep_scan_agent would do: cost (15 credits), duration (60-180 s) and what gets saved. Nothing runs. ALWAYS call first and get the user's approval.

输入参数id必填persistcompany_namecompany_website

deep_scan_agent

Deep-scan the company website (15 credits)

Read the company website + LinkedIn and extract description, team, employee count, contacts, social links and pricing. Costs 15 credits, takes 60-180 s. With persist=true (default) the result is SAVED like in the app: company_description replaced, team/contacts/social/pricing stored (creates company + people records, fills blank contact channels). Waits up to ~200 s; if still running it returns a job_id — then call get_agent_job. Only call after preview_deep_scan and the user's approval.

输入参数id必填persistauto_updatecompany_namecompany_website

get_agent_job

Get a long job (deep scan / script) result

Status and result of a deep scan or script generation job started by deep_scan_agent / generate_agent_script (kept 1 hour). Poll every 10-20 s while status is "running". Read-only.

输入参数id必填job_id必填

list_agent_jobs

List recent long jobs of an agent

Deep scans and script generations of this agent in the last hour (status only) — use when a job_id was lost. Read-only.

输入参数id必填

save_scan_data

Save scan facts onto the agent

Save company facts (team, contacts, social links, pricing, employee count, auto re-scan) onto the agent — what the app does after a scan. Side effects: stores them in the agent, creates/updates the company and people records, fills BLANK contact channels (never overwrites manual ones). Not needed after deep_scan_agent with persist=true. Free.

输入参数id必填pricingcontactsdirectorsauto_updatecompany_name必填social_linksemployee_countcompany_website必填

generate_agent_description

Draft the company description from the website

AI-write "what the agent knows" about the company from its website (no full scan). Costs 1 credit. NOT saved — pass the text to set_agent_company (company_description).

输入参数id必填company_namecompany_websitetarget_language

generate_agent_script

Generate the agent's script

Generate the agent's script (stages + full text + email/LinkedIn script) in the chosen tone for its direction (sales / support / info), using the company description and uploaded files. Saves it on the agent (overwrites). Costs 1 credit, takes 60-90 s. Needs company_name and company_description (set_agent_company). If it is still running after ~200 s you get a job_id → get_agent_job.

输入参数id必填purposescript_style必填

get_agents_dashboard

Legacy agents dashboard numbers

Older overview numbers of all agents (superseded by get_analytics_agents). Read-only.

无需输入参数。

get_agent_connection

Get one channel of an agent

Full settings of one channel (website widget, button, presentation, Google Meet, phone, Telegram). Read-only.

输入参数id必填connection_id必填

create_agent_connection

Add a channel to an agent

Add a channel. WEBSITE_WIDGET needs website_url; new widgets get the app defaults (Modern design) plus your widget_config — then get_widget_embed_code. WEBSITE_BUTTON: just creates the channel (style it in get_widget_embed_code). PRESENTATION_WIDGET = publish the Slide Presenter (optional website_url). GOOGLE_MEET: prefer connect_google_meet. PHONE_CALL: prefer setup_phone_agent. Telegram → connect_telegram_bot; WhatsApp → connect_whatsapp_account. A second widget for the same URL updates the existing one. Free. Interactive cards in chat need design "modern"; in voice they need set_agent_voice screen_cards=true.

输入参数id必填nametype必填website_urlwidget_configphone_call_configgoogle_meet_config

update_agent_connection

Change a channel's settings

Change a channel: website widget look and behaviour (design, colours, button picture, invitation/auto-open, sounds, contact form and its wording, greetings, page navigation, voice view), name, website_url, Google Meet settings or phone texts. Only what you pass changes; widget texts and theme are merged. Free.

输入参数id必填namewebsite_urlconnection_id必填widget_configphone_call_configgoogle_meet_config

preview_delete_agent_connection

Preview removing a channel

Show what removing a channel would do. Nothing is removed. ALWAYS call first and show the user before delete_agent_connection.

输入参数id必填connection_id必填

delete_agent_connection

Remove a channel (irreversible)

Remove a channel from the agent (the embed code stops working). No undo. Only after preview_delete_agent_connection and explicit user approval.

输入参数id必填connection_id必填

get_agent_connection_stats

Channel counters

Conversations, messages, unique visitors, last activity of one channel. For widgets prefer get_connection_analytics (fresher). Read-only.

输入参数id必填connection_id必填

get_connection_analytics

Widget/button channel analytics

For a website widget/button/presentation channel: widget loaded, activated, chats started, voice calls started, plus estimated credits (text messages, voice minutes) for a date range. Read-only.

输入参数id必填date_todate_fromconnection_id必填

get_widget_embed_code

Get the embed code of a channel

HTML to paste on a site for a channel: website widget (settings load from the server), website button (style it here: text, colours, radius, size — not stored server-side) or Slide Presenter (also the direct link). Read-only.

输入参数id必填sizetexttext_colorborder_radiusconnection_id必填background_colormodal_primary_color

create_widget_test_page

Create a test page for a widget

Create (or return the existing) private, unlisted test page with this website widget installed, to try it before adding it to a real site. Only the agent's creator can do this. Free.

输入参数id必填connection_id必填

list_connection_conversations

List conversations of a channel

Conversations of a widget/presentation channel with messages, mode (chat/voice), visitor name/email/phone and page. Paged (limit ≤500). Read-only.

输入参数id必填pagelimitconnection_id必填

get_conversation_recordings

Get voice recordings of a conversation

Recording URLs (WAV), duration and start time of the voice calls in one widget conversation (up to 10 calls). Read-only.

输入参数id必填connection_id必填conversation_id必填

get_presentation

Get the agent's Slide Presenter

The agent's presentation: PDF name, slides (text + presenter script; images with include_images), look, call-to-action, presenter voice, published channels and direct link. Read-only. (list_agent_presentations shows only the legacy creator.)

输入参数id必填include_images

set_presentation_slides

Save the presentation slides

Save the slide deck — REPLACES all slides (add, remove, reorder, edit). Each slide: image (public URL or base64; JPG/PNG/WebP/GIF ≤5 MB; omit to keep the stored image of an existing slide id), extracted text and presenter script. PDF upload is not supported by the API: render the PDF pages to images first. Then write scripts with generate_slide_script and set_presentation_voice. Free.

输入参数id必填slides必填pdf_name

generate_slide_script

Write the presenter script for a slide

AI-write what the presenter says on one slide, in the presentation's language. 1 credit (2 with image_url — the AI looks at the slide). NOT saved — put it into narrator_script with set_presentation_slides.

输入参数id必填image_urlslide_number必填total_slides必填extracted_textnext_slide_textprevious_script

set_presentation_voice

Set the presenter's voice

The Slide Presenter's own voice and model (the website widget voice is not touched). Same settings as the app; only what you pass changes. Needs saved slides. Takes up to ~1 min. Free to configure; presentation voice costs 17 credits/min.

输入参数id必填llmrulesspeedvolumeambientemotionhandbookvoice_idlanguagesend_call_sbackchannel另有 10 个

set_presentation_look

Set the presentation look & behaviour

Theme, colours, corner radius, controls, autoplay, voice on/off, chat on/off, Modern look (background, glass, font, panel side, presenter bubble, voice visual), slide transition and button texts. Only what you pass changes. Free.

输入参数id必填textsthemedesignmodernautoplaytextColortransitionbuttonColorchatEnabledborderRadiusshowControls另有 4 个

set_presentation_cta

Set the presentation call-to-action

The button viewers see: a lead form (fields) or a link. Only what you pass changes (fields replaces the whole field list). Leads land in list_narrator_leads. Free.

输入参数id必填typefieldsenabledlinkUrlbuttonTextsuccessMessagelinkOpenInNewTab

get_presentation_embed_code

Get the presentation embed code & link

Direct link (narrator page) and the HTML snippet with the saved look. Publish it as a channel first (create_agent_connection type PRESENTATION_WIDGET). Read-only.

输入参数id必填

list_agent_presentations

List legacy presentations

Presentations made with the OLD presentation creator (deprecated). The current Slide Presenter is in get_presentation. Read-only.

输入参数id必填

get_narrator_analytics

Presentation analytics

Slide Presenter analytics. view "summary" (default): views, presentations started, watch time, unique viewers, average duration, completion rate, recent sessions, per channel. view "period" with date_from/date_to: widget loads, starts, watch minutes, unique viewers, credits used. Read-only. (No per-slide drop-off.)

输入参数id必填viewdate_todate_from

list_narrator_leads

List presentation leads

Leads from the presentation call-to-action form (form data, page, status, notes). Filter by status, page with limit/offset. Read-only.

输入参数id必填limitoffsetstatus

update_narrator_lead

Update a presentation lead

Set a presentation lead's status (new / contacted / converted / spam) and notes. Free.

输入参数id必填notesstatuslead_id必填

preview_delete_narrator_lead

Preview deleting a presentation lead

Show the lead that would be deleted. Nothing is deleted. Call first and show the user before delete_narrator_lead.

输入参数id必填lead_id必填

delete_narrator_lead

Delete a presentation lead (irreversible)

Permanently delete a presentation lead. Only after preview_delete_narrator_lead and explicit user approval.

输入参数id必填lead_id必填

connect_google_meet

Connect Google Meet (invite address)

Turn on the Google Meet channel the way the app does: returns the agent's own invite address ([email protected]). Invite that address to any Google Calendar event with a Meet link and the agent joins automatically. No Google login needed. Also saves the meeting settings. Free to connect; meeting minutes are billed.

输入参数id必填languageauto_joinmeeting_modegreeting_messagejoin_before_minutes

get_google_meet_settings

Get Google Meet status & settings

Whether Google Meet is connected for this agent, its invite address, settings and totals. Read-only.

输入参数id必填

update_google_meet_settings

Change Google Meet settings

Auto-join, minutes before start, greeting, language, meeting mode (voice only / presentation — needs slides). Only what you pass changes. Free.

输入参数id必填languageauto_joinmeeting_modegreeting_messagejoin_before_minutes

preview_disconnect_google_meet

Preview disconnecting Google Meet

Show what disconnecting Google Meet would do. Nothing changes. Call first and show the user.

输入参数id必填

disconnect_google_meet

Disconnect Google Meet

Remove the Google Meet channel from the agent and turn auto-join off. Already scheduled meetings are not cancelled (use cancel_meeting). Only after preview_disconnect_google_meet and user approval.

输入参数id必填

list_google_meet_history

Meeting history of an agent

All meetings of this agent (newest first) with status, times, duration, whether a transcript exists. Paged. Read-only.

输入参数id必填pagelimit

get_google_meet_analytics

Google Meet analytics of an agent

Meetings, minutes, completed, missed and credits used for a date range. Read-only.

输入参数id必填date_todate_from

list_meetings

Meetings calendar (all agents)

Google Meet meetings of all your agents in a date range (default: next 7 days, max 62 days) — title, time, link, organizer, attendees, status, agent, has transcript. Read-only.

输入参数endstartagent_id

list_meeting_agents

Agents with Google Meet

Agents that have Google Meet connected (the calendar's agent filter). Read-only.

无需输入参数。

get_meeting

Get a meeting

One meeting with transcript, summary, action items, join/leave time and duration. Read-only.

输入参数meeting_id必填

get_meeting_transcript

Get a meeting transcript

Transcript messages, summary and action items of a meeting (from the database or the recording service). Read-only.

输入参数meeting_id必填

preview_cancel_meeting

Preview cancelling a meeting for the agent

Show which meeting the agent would skip. Nothing changes. Call first and show the user.

输入参数meeting_id必填

cancel_meeting

Cancel a meeting for the agent

The agent will NOT join this scheduled meeting (the calendar event itself stays). Only scheduled, not yet started meetings. No undo. Only after preview_cancel_meeting and user approval.

输入参数meeting_id必填

preview_remove_agent_from_meeting

Preview removing the agent from a live call

Show whether the agent is in this live meeting and what removing it does. Nothing changes.

输入参数meeting_id必填

remove_agent_from_meeting

Remove the agent from a live call

The agent leaves the live Google Meet call right now. Only works while the meeting is in progress. Only after preview_remove_agent_from_meeting and user approval.

输入参数meeting_id必填

set_telegram_voice_calls

Turn Telegram voice calls on/off

Show or hide the VOICE button of the agent's Telegram bot (voice calls in the mini app). Needs a connected bot. Free.

输入参数id必填enabled必填

set_telegram_voice_settings

Set the Telegram voice

Voice and behaviour of the Telegram bot's voice calls (separate from the website widget): the same settings as set_agent_voice plus the mini app look (visual). Only what you pass changes. Needs a connected bot. Takes up to ~1 min. Free to configure; calls are billed per minute.

输入参数id必填llmrulesspeedvisualvolumeambientemotionhandbookvoice_idlanguagesend_call_s另有 11 个

reconfigure_telegram_bot

Re-apply Telegram bot commands

Re-apply the bot's commands and menu button (for private and group chats) — use when the bot menu looks wrong. Free.

输入参数id必填

list_telegram_chats

List Telegram chats

People/groups talking to the agent's Telegram bot: name, username, type, message count, last message time. Paged. Read-only.

输入参数id必填pagelimit

get_telegram_chat

Read a Telegram chat

All messages of one Telegram chat, incl. voice-call turns with recording URL and duration. Read-only.

输入参数id必填chat_id必填

preview_send_telegram_message

Preview an operator Telegram message

Show the recipient and exact text of an operator message. Nothing is sent. ALWAYS call first and show the user the text.

输入参数id必填chat_id必填message必填

send_telegram_message

Send a Telegram message as the operator

Sends a REAL Telegram message from the bot to this person (human takeover). Only after preview_send_telegram_message and the user approved the exact text.

输入参数id必填chat_id必填message必填

get_telegram_analytics

Telegram analytics

Chats, messages, voice calls, text messages, unique users and credits (text/voice) of the agent's Telegram bot for a date range. Read-only.

输入参数id必填date_todate_from

list_phone_numbers

List my phone numbers

Phone numbers already on your account (number, country, type, monthly cost, per-minute rate). Buying numbers is done in the app. Read-only.

无需输入参数。

generate_phone_script

Draft a phone call script

Draft a call script and greeting from the agent's sales script for a call objective, in the agent's language. Free. Not saved — pass it to setup_phone_agent (or let setup_phone_agent generate it).

输入参数id必填voice_gendercall_objective

setup_phone_agent

Set up the Voice Call channel

Create/update the agent's Voice Call channel like the app: attach one of YOUR numbers (list_phone_numbers), objective, script (generated if omitted), greeting, voice, pace, emotion, language, rules, inbound calls on/off, background sound, silence/reminder timings. Creates the phone voice agent at the provider and links the number. Takes up to ~1 min. Free to set up; calls cost 25 credits/min.

输入参数id必填speedemotionlanguagevoice_idcall_scriptvoice_genderambient_soundconnection_idcall_objectiveaccept_incomingphone_number_id另有 6 个

preview_phone_test_call

Preview a test call

Show which number would be called from which, and the cost (25 credits/min, max 2 min). Nothing is dialled. ALWAYS call first.

输入参数id必填to_number必填connection_id

phone_test_call

Make a test call (real phone)

DIALS A REAL PHONE: the agent calls to_number from the channel's number (max 2 min, 25 credits/min). Only call the user's own number, only after preview_phone_test_call and explicit approval.

输入参数id必填to_number必填connection_id

list_phone_calls

List the agent's phone calls

Phone calls of this agent (incl. test and inbound) with transcript, recording URL, summary, outcome, sentiment, duration and credits, plus totals by outcome/sentiment. Read-only.

输入参数id必填limit

get_phone_channel_stats

Voice Call channel counters

Calls attempted/completed/successful, minutes and credits of one Voice Call channel. Read-only.

输入参数id必填connection_id必填

list_whatsapp_accounts

List WhatsApp accounts

WhatsApp accounts connected to your user (phone, name, status: connecting / ok / error / credentials / stopped). Account-level: auto-replies use your latest campaign's agent. Read-only.

无需输入参数。

connect_whatsapp_account

Get a WhatsApp connect link

Returns a hosted link; the user opens it and scans the QR code with WhatsApp (Linked devices). Poll list_whatsapp_accounts until status is "ok". Free.

无需输入参数。

preview_disconnect_whatsapp_account

Preview disconnecting WhatsApp

Show the WhatsApp account that would be disconnected. Nothing changes. Call first.

输入参数account_id必填

disconnect_whatsapp_account

Disconnect WhatsApp (irreversible)

Disconnect and delete the WhatsApp account; auto-replies stop and reconnecting needs a new QR scan. Only after preview_disconnect_whatsapp_account and user approval.

输入参数account_id必填

list_campaigns

List campaigns

List classic Sales Process campaigns with status and live stats. Archived campaigns are hidden unless include_archived=true. Read-only.

输入参数include_archived

get_campaign

Get a campaign

Full campaign: status, settings (all wizard fields), sequence, channel paused flags, channelStatuses, today's sends, stats.totalContacts. Read-only.

输入参数id必填

create_campaign

Create a campaign (DRAFT, not launched)

Create a classic campaign in DRAFT — nobody is contacted until launch_campaign. Needs an audience (audienceId from save_audience/list_audiences, OR customAudienceId of a READY uploaded/CRM list) and should get an agentId (a campaign cannot be launched without an agent: AGENT_REQUIRED). branchId = CRM branch for replies (crm_list_branches; null = General). Settings (all optional): channels, dailyLimit, dailyEmailLimit, dailyLinkedinLimit, timezone, workingHours, excludeWeekends, campaignDurationDays, customInstructions (Communication Rules incl. form of address), emailSignature, notifyEmails, ccEmail, autoResponseEnabled, autoResponseDelayMinutes, followUpInterval, maxFollowUps, trackOpens, emailSenderMode (managed needs a paid plan), senderEmailIds, emailContent {mode, prompt, tone, variants, htmlSteps, followUps[{delayDays, prompt|subject+body}]}, linkedinContent {mode, invite_prompt, invite_tone, invite_exact_text, followup_delay_minutes, followup_exact_text}, selectedLinkedinAccountIds, linkedinAutoReplyDisabled. Ids are checked against the workspace. Free, no sending.

输入参数name必填agentIdbranchIdsettingsaudienceIddescriptioncustomAudienceId

update_campaign

Update campaign (wizard settings)

Change a campaign's name, description or any wizard setting (partial: send only what changes; settings are merged). agentId and branchId can be changed only while the campaign is a draft. Settings (all optional): channels, dailyLimit, dailyEmailLimit, dailyLinkedinLimit, timezone, workingHours, excludeWeekends, campaignDurationDays, customInstructions (Communication Rules incl. form of address), emailSignature, notifyEmails, ccEmail, autoResponseEnabled, autoResponseDelayMinutes, followUpInterval, maxFollowUps, trackOpens, emailSenderMode (managed needs a paid plan), senderEmailIds, emailContent {mode, prompt, tone, variants, htmlSteps, followUps[{delayDays, prompt|subject+body}]}, linkedinContent {mode, invite_prompt, invite_tone, invite_exact_text, followup_delay_minutes, followup_exact_text}, selectedLinkedinAccountIds, linkedinAutoReplyDisabled. On a running campaign, changed email steps/delays are not applied once anything was sent (settings.smartleadSequencePending). No sending, no credits.

输入参数id必填nameagentIdbranchIdsettingsdescription

preview_launch_campaign

Preview launching a campaign

Readiness report for launch/resume — NOTHING IS SENT: ready flag, blockers (AGENT_REQUIRED, AUDIENCE_REQUIRED, CLIENT_MAILBOX_NOT_CONNECTED, PAID_PLAN_REQUIRED for Vendo managed senders, INVALID_STATUS), warnings, real recipient count, channels, daily email/LinkedIn limits, sender mode, email steps, schedule and the LinkedIn accounts that will be activated. ALWAYS call this first and show the result to the user before launch_campaign.

输入参数id必填linkedin_account_ids

launch_campaign

Launch / resume a campaign (sends real outreach)

Start (or resume a paused) campaign exactly like the app: starts email sending and queues LinkedIn on the selected (or all connected) accounts. Contacts receive REAL outreach in the working hours; credits are spent as messages go out. Only call AFTER the user reviewed preview_launch_campaign and approved it. Returns the campaign plus linkedin_activation.

输入参数id必填linkedin_account_ids

duplicate_campaign

Duplicate a campaign

Copy a campaign (settings + audience) into a new DRAFT named '<name> (Copy)'. Nothing is sent. Note: the copy re-uses company-based audiences only and has no CRM branch; check get_campaign of the copy before launching.

输入参数id必填

sync_campaign_stats

Refresh campaign email counters

Pull the latest sent/opened/clicked/replied/bounced counters from the sending provider and store them. Max once per minute per campaign. No credits.

输入参数id必填

get_campaign_pulse

Campaign pulse (live status)

What the campaign is doing now (sending / idle / outside_hours / paused / queue_empty / done), today vs daily limits, 7–28-day email + LinkedIn series and the latest events. Read-only.

输入参数id必填dayslimit

get_campaign_live_status

Campaign email progress

Email channel progress: audience size, processed, % complete, event counts, queue depth and provider status / sent today. Read-only.

输入参数id必填

get_campaign_analytics

Campaign analytics (all campaigns)

Sales Process KPIs for the workspace: totals (campaigns, emails sent, opens, clicks, replies, contacts, rates) and per-campaign performance, optionally for a date range. Read-only. For SDR + campaigns combined use the SDR analytics tool.

输入参数tofrom

preview_campaign_email

Preview a campaign email (first or follow-up #k)

Render the exact email a campaign would send — first email or follow-up #k — with the writing rules, tone, Communication Rules or fixed text. Pass campaign_id to use its saved settings (any field you pass overrides them), or agent_id + rules for an unsaved draft. No sending, no credits.

输入参数modetonepromptsamplevariantagent_idfollow_upcampaign_idcustom_instructions

preview_campaign_linkedin_invite

Preview a campaign LinkedIn invite

Render the LinkedIn connection note a campaign would send (AI from rules/tone, or fixed text with placeholders), with its length vs the 200-char limit. Pass campaign_id to use saved settings. No sending, no credits.

输入参数modetonepromptsampleagent_idexact_textcampaign_id

preview_campaign_linkedin_followup

Preview the LinkedIn message after connect

Render the first LinkedIn message sent after an invite is accepted (AI from the agent, or the fixed text with placeholders filled). Pass campaign_id to use saved settings. No sending, no credits.

输入参数modesampleagent_idexact_textcampaign_id

preview_agent_email

Preview an email the agent would write

Render a sample outreach email from an agent — no sending, no credits. Optional mode/prompt/tone/customInstructions/variant/followUp{index,delayDays,previous}/sample make it render exactly like a campaign would (same as preview_campaign_email).

输入参数id必填

get_campaign_email_stats

Campaign email funnel incl. delivery

Email funnel: sent, delivered, opened, clicked, replied (real / auto-reply / bounce), bounced; delivery block (delivered vs not delivered: bounced, rejected as spam, unsubscribed; sender inbox-placement test — real inbox vs spam folder is not reported by providers) and unique opened/clicked/replied. Read-only.

输入参数id必填

list_campaign_emails

List sent / queued / prepared emails

state=sent: emails already sent (filter by status, search by address); state=queued: scheduled/queued emails waiting to go out; state=prepared: pre-generated emails pipeline with status counts and preparation progress. Read-only.

输入参数id必填limitstate必填offsetsearchstatus

prepare_campaign_emails

Pre-generate campaign emails (legacy)

Generate emails for every contact ahead of sending (legacy company-based audiences only; people/custom-audience campaigns prepare automatically after launch). Can take minutes. Nothing is sent. No credits.

输入参数id必填

retry_campaign_email_preparation

Retry failed email preparation

Put prepared emails that failed validation/generation back in the queue (max 3 attempts each). Nothing is sent.

输入参数id必填

preview_schedule_campaign_delivery

Preview scheduling prepared emails

Dry-run: how many ready prepared emails would be scheduled into the campaign working hours. Nothing changes. Call before schedule_campaign_delivery.

输入参数id必填

schedule_campaign_delivery

Schedule prepared emails for delivery

Spread all ready prepared emails over the campaign's working-hour slots; they are then SENT for real automatically. Only after the user approved preview_schedule_campaign_delivery.

输入参数id必填

preview_send_campaign_emails_now

Preview sending prepared emails now

Dry-run: how many prepared emails would be sent immediately (outside the schedule). Nothing is sent.

输入参数id必填limit

send_campaign_emails_now

Send prepared emails now (REAL emails)

Send up to `limit` prepared emails immediately, ignoring the schedule. REAL emails to real people. Only after the user approved preview_send_campaign_emails_now.

输入参数id必填limit

list_campaign_replies

Campaign replies inbox

Email replies received by a campaign with body and classification: real (a person answered), auto_reply (out of office), bounce. Read-only.

输入参数id必填type

list_campaign_email_leads

Engaged email leads

Recipients with their open/click/reply counts, read live from the sending provider (throttled: once per 15 s per campaign). Read-only.

输入参数id必填filter

get_campaign_email

Open one campaign email

One sent email by email id (from list_campaign_emails / list_campaign_replies): content, recipient, related open/click/reply events, the reply and the conversation. Read-only.

输入参数email_id必填

refresh_campaign_email_reply

Reload a reply from the provider

Fetch the latest reply text for an email from the sending provider (when a reply shows as empty). No credits, nothing sent.

输入参数email_id必填

preview_reply_to_campaign_email

Preview a manual reply to a lead

Dry-run of replying to a lead's email reply: shows recipient, subject and the exact text. Nothing is sent. Call before reply_to_campaign_email and show the text to the user.

输入参数body必填email_id必填

reply_to_campaign_email

Send a manual reply to a lead (REAL email)

Send the reply immediately in the lead's thread (bypasses daily limits). REAL email. Only after the user approved the exact text from preview_reply_to_campaign_email.

输入参数body必填email_id必填

list_campaign_threads

AI email conversations of a campaign

Conversations the AI is handling for a campaign (filter by status ai_handling|human_takeover|closed and sentiment positive|objection|referral|unsubscribe|neutral), plus counters by status and sentiment. Only threads of the API key's user. Read-only.

输入参数id必填limitoffsetstatussentiment

get_campaign_thread

Open an AI email conversation

One conversation with all messages (AI, human and contact). Read-only.

输入参数thread_id必填

takeover_campaign_thread

Take over an AI email conversation

Stop the AI from replying in this conversation; a human continues (reply_in_campaign_thread). Nothing is sent.

输入参数thread_id必填

close_campaign_thread

Close an AI email conversation

Mark the conversation closed (no more AI replies). Nothing is sent.

输入参数thread_id必填

preview_reply_in_campaign_thread

Preview a human reply in a conversation

Dry-run: recipient, subject (defaults to Re: last subject) and the exact text. Nothing is sent. Call before reply_in_campaign_thread and show the text to the user.

输入参数body必填subjectbody_htmlthread_id必填

reply_in_campaign_thread

Send a human reply in a conversation (REAL email)

Send the email to the contact now. REAL email. Only after the user approved preview_reply_in_campaign_thread. Consider takeover_campaign_thread first so the AI stops answering.

输入参数body必填subjectbody_htmlthread_id必填

get_campaign_monitor

Campaign monitor

Monitor page data: AI lead discovery config + stats, audience growth by day, the last 100 activity events, event counts and credits (balance, spent today/total, daily budget). Read-only.

输入参数id必填

get_campaign_discovery

Get AI lead discovery config

AI lead discovery settings of a campaign (null when never configured). Read-only.

输入参数id必填

preview_update_campaign_discovery

Preview AI lead discovery settings

Dry-run of enabling/changing automatic lead discovery: source, daily credit budget, leads/day. Nothing changes. Call before update_campaign_discovery whenever discovery is (or stays) enabled.

输入参数id必填enabledrequire_emailsearch_sourcemax_leads_per_dayapollo_search_configmax_total_discoveredsignal_search_configsearch_interval_minutesdaily_discovery_budget_credits

update_campaign_discovery

Enable / change AI lead discovery (SPENDS CREDITS)

Turn on or adjust automatic lead discovery: it runs daily, SPENDS CREDITS up to daily_discovery_budget_credits and adds new leads to the campaign audience. Same args as preview_update_campaign_discovery; only after the user approved that preview. Disabling (enabled=false) needs no preview.

输入参数id必填enabledrequire_emailsearch_sourcemax_leads_per_dayapollo_search_configmax_total_discoveredsignal_search_configsearch_interval_minutesdaily_discovery_budget_credits

list_campaign_discovered_leads

Leads found by AI discovery

Leads found by AI lead discovery for a campaign, filterable by status (discovered, enriching, enriched, added_to_audience, rejected, duplicate, enrichment_failed). Read-only.

输入参数id必填limitoffsetstatus

get_campaign_activity

Campaign activity feed

Paged activity events of a campaign (discovery, outreach, engagement, system, billing). Poll it instead of a live stream. Read-only.

输入参数id必填limitoffsetcategory

list_sender_emails

Email senders + capacity

Sending addresses available to this workspace (Vendo managed pool + own mailboxes) with warm-up level, daily limit and status; summary.emails_per_day_ready = capacity in managed mode. Managed senders require a paid plan to launch (summary.paid_plan). Use ids in settings.senderEmailIds. Read-only.

无需输入参数。

list_client_mailboxes

Own sending mailboxes

The workspace's own connected mailboxes (status connecting|warming|ready|error|disconnected, warm-up reputation, last error). Capacity ≈ 50 emails/day per READY box. Used when settings.emailSenderMode=client_owned (classic campaigns and SDR). Read-only.

无需输入参数。

connect_client_mailbox

Connect an own mailbox (SMTP/IMAP app password)

Connect the user's OWN mailbox for sending. Requires SMTP/IMAP hosts+ports and an APP PASSWORD, which passes through this conversation: prefer asking the user to connect it in the app (Settings → Email Sending) unless they explicitly give you the password. WARM-UP STARTS IMMEDIATELY: the real mailbox sends and receives warm-up mail. The password is never returned. Gmail: smtp.gmail.com:465 / imap.gmail.com:993; Outlook: smtp.office365.com:587 / outlook.office365.com:993.

输入参数email必填password必填providerfrom_nameimap_host必填imap_port必填smtp_host必填smtp_port必填

reconnect_client_mailbox

Reconnect an own mailbox

Retry the SMTP/IMAP connection of a mailbox in status error and refresh its status. No credits.

输入参数mailbox_id必填

preview_disconnect_client_mailbox

Preview disconnecting an own mailbox

Dry-run: which client_owned campaigns are affected and how many usable mailboxes remain. Nothing changes.

输入参数mailbox_id必填

disconnect_client_mailbox

Disconnect an own mailbox

Stop using the mailbox as a sender. If none remain, client_owned campaigns cannot send or launch. Only after the user approved preview_disconnect_client_mailbox.

输入参数mailbox_id必填

list_linkedin_accounts

List connected LinkedIn accounts

LinkedIn accounts of the workspace and their status (ok = can send; ~70–80 invites/day each). detailed=true adds owner/role, campaigns and SDR searches using each account, 7-day activity, prospecting caps, warm-up stage, premium tier and proxy country. Read-only.

输入参数detailed

get_linkedin_account_settings

LinkedIn account settings

Per-account LinkedIn settings shared by every campaign and SDR process using the account: AI auto-replies (on/off, tone, instructions, pitch, booking link, reply delays, daily limit, working hours, agent, contact info), invites (on/off, tone, pitch, instructions, CTA), follow-ups (on/off, pitch, instructions, CTA) and signature (text, first_message|every_message). The first read creates defaults (pre-filled from campaign_id's agent).

输入参数account_id必填campaign_id

update_linkedin_account_settings

Update LinkedIn account settings

Change AI auto-replies, invite / follow-up pitch, CTA, signature, reply delays/limits for ONE LinkedIn account (applies to all campaigns and SDR processes using it). Send only changed fields. To switch AI replies off for a single campaign use update_campaign settings.linkedinAutoReplyDisabled. No credits.

输入参数toneenabledagent_idtimezoneaccount_id必填invite_ctainvite_tonecalendly_urlcontact_infofollowup_ctainvite_pitchproduct_pitch另有 13 个

preview_linkedin_account_messages

Sample LinkedIn messages for an account

Sample invite, follow-up and auto-reply plus suggested pitch/signature for an account in a campaign (built from the campaign's agent). No sending, no credits.

输入参数account_id必填campaign_id必填

list_campaign_linkedin_accounts

LinkedIn accounts working a campaign

Accounts working this campaign with per-account counters (pending, invites sent, connected, messaged, replied). Read-only.

输入参数id必填

add_campaign_linkedin_account

Add a LinkedIn account to a campaign

Add a connected account to a running campaign; pending contacts are rebalanced across accounts and backfilled. It starts sending invites in the next cycles. No credits.

输入参数id必填account_id必填

remove_campaign_linkedin_account

Remove a LinkedIn account from a campaign

Stop using an account for this campaign; its pending contacts move to the remaining accounts. Already-sent invites stay.

输入参数id必填account_id必填

preview_activate_campaign_linkedin

Preview activating LinkedIn on a campaign

Dry-run: which accounts would get the campaign audience queued, how many contacts and what is already queued. Nothing changes. Call before activate_campaign_linkedin.

输入参数id必填account_ids

activate_campaign_linkedin

Activate LinkedIn on a campaign

Queue the campaign audience for LinkedIn on the given (or selected/all connected) accounts and add linkedin to the channels. On an active campaign REAL connection invites start within the next cycles. Only after the user approved preview_activate_campaign_linkedin.

输入参数id必填account_ids

list_campaign_linkedin_outreach

LinkedIn outreach of a campaign

Contacts in the campaign's LinkedIn queue with their status (pending, invite_sent, connected, message_sent, replied, failed, skipped), optionally for one account. Read-only.

输入参数id必填limitoffsetstatusaccount_id

get_campaign_linkedin_stats

LinkedIn stats of a campaign

LinkedIn counters (total, pending, invites sent, connected, messaged, replied, failed), invites sent today, effective daily limit and active accounts; optionally for one account. Read-only.

输入参数id必填account_id

takeover_linkedin_contact

Take over a LinkedIn contact

Stop the AI from messaging this LinkedIn contact (outreach id from list_campaign_linkedin_outreach or list_linkedin_conversations); pending auto-replies are cancelled. Nothing is sent.

输入参数outreach_id必填

list_linkedin_conversations

LinkedIn conversations

LinkedIn chats of the workspace (optionally of one campaign and/or account): contact, last message, pending AI reply, human takeover flag, outreach status. Read-only.

输入参数limitoffsetaccount_idcampaign_id

get_linkedin_conversation

Open a LinkedIn conversation

All messages of one LinkedIn chat (chat_id from list_linkedin_conversations). Read-only.

输入参数chat_id必填

preview_send_linkedin_message

Preview a manual LinkedIn message

Dry-run: recipient, exact text, cost (5 credits) and whether the balance suffices. Nothing is sent. Call before send_linkedin_message and show the text to the user.

输入参数text必填chat_id必填

send_linkedin_message

Send a LinkedIn message (REAL, 5 credits)

Send a REAL LinkedIn message in the chat; costs 5 credits, the AI stops messaging this contact (human takeover) and the CRM lead moves to Manager Dialog. Only after the user approved preview_send_linkedin_message.

输入参数text必填chat_id必填

preview_activate_campaign_phone

Preview AI phone calls for a campaign

Dry-run of activating the phone channel with numbers the account already owns: numbers, objective, calls/day, window and estimated credits per call/day. Nothing is scheduled. Numbers cannot be bought through the API.

输入参数id必填timezonecall_objectivetalking_pointsexclude_weekendsphone_number_ids必填max_calls_per_dayworking_hours_endworking_hours_startmax_call_duration_seconds

activate_campaign_phone

Activate AI phone calls (REAL calls, credits per minute)

Schedule REAL outbound AI calls to every audience contact with a phone number; credits are charged per call minute. Same args as preview_activate_campaign_phone; only after the user approved that preview. Pause with pause_channel channel=phone_call.

输入参数id必填timezonecall_objectivetalking_pointsexclude_weekendsphone_number_ids必填max_calls_per_dayworking_hours_endworking_hours_startmax_call_duration_seconds

get_campaign_phone_stats

Phone stats of a campaign

Call counters: total, completed, active, pending, no answer, voicemail, failed, interested, meetings booked, not interested, average/total duration. Read-only.

输入参数id必填

list_campaign_phone_calls

Calls of a campaign

Calls with contact, status, outcome, duration, sentiment, summary and recording URL. Read-only.

输入参数id必填limitoffsetstatus

list_content_accounts

Social publishing accounts

LinkedIn / Instagram accounts connected for publishing posts (Settings → Social), with status. Read-only.

无需输入参数。

connect_content_account

Get a link to connect a social publishing account

Returns a hosted URL a HUMAN must open in a browser to authorise a LinkedIn or Instagram publishing account. Give the link to the user; nothing is connected until they finish.

输入参数provider必填redirect_path

preview_disconnect_content_account

Preview disconnecting a social publishing account

Dry-run of removing a publishing account. Nothing changes.

输入参数account_id必填

disconnect_content_account

Disconnect a social publishing account

Remove the publishing account; it can no longer publish posts. Only after the user approved preview_disconnect_content_account.

输入参数account_id必填

list_custom_audiences

List My Audiences (custom lists)

List the workspace's custom audiences — uploaded CSV/XLSX lists, purchased audience sets, CRM selections — with status (processing|ready|enriching|error), contact counts and enrichment progress. These are different from campaign audiences (`list_audiences`). Read-only, free.

输入参数pagelimit

get_custom_audience

Get one custom audience

One custom audience: status, counts (with email/phone/LinkedIn), enrichment progress, column mapping and the first 20 contacts. Page through all contacts with `get_custom_audience_contacts`. Read-only, free.

输入参数id必填

get_custom_audience_contacts

Page through custom audience contacts

Paged contacts of a custom audience (max 100 per page). Contacts added by Vendo SDR carry signal_context (why they were picked: reasoning, relevance score, ICP group). Read-only, free.

输入参数id必填pagelimit

create_custom_audience

Create an empty custom audience

Create an empty, named custom audience (status ready) — then fill it with `add_custom_audience_contacts`. To create one from a file use `upload_custom_audience`. No credits.

输入参数name必填

rename_custom_audience

Rename a custom audience

Rename a custom audience. Reversible, no credits.

输入参数id必填name必填

add_custom_audience_contacts

Add contacts to a custom audience

Append up to 5000 contacts to a custom audience. Deduplicated inside the audience by email, LinkedIn URL or phone (duplicates and contacts with no email/LinkedIn/phone are skipped). Returns added / skipped / total_contacts. No credits.

输入参数id必填contacts必填

update_custom_audience_contact

Edit a contact in a custom audience

Edit one contact of a custom audience (only the fields you pass change). No credits.

输入参数id必填cityemailphonecountrywebsitepositiontelegramwhatsappfull_namelast_namecontact_id必填另有 5 个

preview_delete_custom_audience_contact

Preview removing a contact (dry-run)

Dry-run of removing one contact from a custom audience. Changes nothing. Show the result to the human before `delete_custom_audience_contact`.

输入参数id必填reasoncontact_id必填

delete_custom_audience_contact

Remove a contact from a custom audience

Permanently remove one contact from a custom audience (not reversible). Optional reason (UI choices: Not relevant, Wrong contact, Already a customer, Bad data, Other) is logged to improve automatic selection. Only call after the user approved `preview_delete_custom_audience_contact`.

输入参数id必填reasoncontact_id必填

preview_delete_custom_audience

Preview deleting a custom audience (dry-run)

Dry-run: shows the audience name and how many contacts would be deleted. Changes nothing. ALWAYS call before `delete_custom_audience` and show the result.

输入参数id必填

delete_custom_audience

Delete a custom audience

Permanently delete a custom audience with all its contacts and source file. NOT reversible. Only call after the user approved `preview_delete_custom_audience`.

输入参数id必填

preview_custom_audience_file

Detect columns of a contacts file

Step 1 of an upload: send a CSV/XLSX/XLS/TSV/TXT file (base64 or https URL) and get the detected headers, a suggested column mapping, sample rows, total rows and the list of target fields. Creates nothing, no credits. Then call `upload_custom_audience` (optionally with a corrected column_mapping).

输入参数file_urlfilenamecontent_base64

upload_custom_audience

Create a custom audience from a file

Create a custom audience from a CSV/XLSX/XLS/TSV/TXT file given as base64 or an https URL. Parsing runs in the background: poll `get_custom_audience` until status is "ready". No credits (enrichment is a separate, paid step).

输入参数namefile_urlfilenamecolumn_mappingcontent_base64

export_custom_audience_csv

Export a custom audience as CSV

Download every contact of a custom audience as CSV text (filename, total_rows, csv). Can be large. Read-only, free.

输入参数id必填

preview_enrich_custom_audience

Preview enriching a custom audience (cost)

Dry-run of enrichment: how many contacts still need enrichment, the maximum credits (1 per contact), estimated minutes, the current balance and whether it can start. Spends nothing. ALWAYS call first and show the cost to the human.

输入参数id必填

enrich_custom_audience

Enrich a custom audience (SPENDS CREDITS)

SPENDS CREDITS: starts background enrichment (email, phone, LinkedIn, WhatsApp lookups) of the not-yet-enriched contacts — 1 credit per contact actually enriched, charged as it runs. Only call after the user approved `preview_enrich_custom_audience`. Then poll `get_custom_audience_enrichment`; stop with `stop_custom_audience_enrichment`.

输入参数id必填

get_custom_audience_enrichment

Enrichment progress of a custom audience

Status and progress of a running (or finished) enrichment: status, enrichment_total, enrichment_done, enrichment_progress (%), done flag. Poll every 10–30 s. Read-only.

输入参数id必填

stop_custom_audience_enrichment

Stop a running enrichment

Stop an in-progress enrichment after the current contact (stops further spending). Already-enriched contacts stay enriched and charged.

输入参数id必填

prepare_campaign_audience_from_custom

Use a custom audience in a campaign

Turn a READY custom audience into a campaign audience and return its id ({ id, name, stats }) — pass it as audienceId to `create_campaign`. Sends nothing, no credits. The "Launch campaign" button of My Audiences.

输入参数id必填name

get_audience_set_contact

One contact card of an audience set

Full card of one contact in a marketplace set: person, company, buying signal, channels. Contact details stay masked until the set is bought. Contact ids come from `get_audience_set_contacts`. Read-only, free.

输入参数slug必填contact_id必填

crm_reorder_stages

Reorder pipeline stages

Set the full left-to-right order of one pipeline's stages (every stage id exactly once — get them from crm_list_stages with the same branch). Applies to the whole workspace. Reversible.

输入参数branchstage_ids必填

crm_list_all_branches

List every CRM pipeline (for moves)

Every pipeline of the workspace (id, name, is_default) — wider than crm_list_branches for members; use it to pick a destination for crm_add_lead_to_branch / crm_move_lead_to_branch. Read-only.

无需输入参数。

crm_get_branch

Get one CRM pipeline

One pipeline by id (id, name, is_default). Read-only.

输入参数id必填

crm_create_branch

Create a CRM pipeline (branch)

Create an isolated pipeline (team / direction / client) with its own default stages. member_user_ids = who can see it (General stays open to all). Workspace admins/owner only. No credits.

输入参数name必填member_user_ids

crm_update_branch

Rename a pipeline / change its members

Rename a pipeline and/or replace its member list. The General pipeline cannot be changed. Admins/owner only.

输入参数id必填namemember_user_ids

preview_delete_crm_branch

Preview deleting a pipeline (dry-run)

Dry-run: shows the pipeline and how many leads would fall back to General. Changes nothing. ALWAYS call before delete_crm_branch.

输入参数id必填

delete_crm_branch

Delete a pipeline

Delete a non-default pipeline; its leads are not deleted but return to General. NOT reversible. Admins/owner only. Only call after the user approved preview_delete_crm_branch.

输入参数id必填

crm_get_lead_branches

Pipelines a lead is in

Every pipeline a lead currently sits in, with its stage and owner per pipeline. Read-only.

输入参数id必填

crm_add_lead_to_branch

Add a lead to another pipeline

Place the lead in another pipeline too (entry stage); it stays in its current ones. Reversible via crm_move_lead_to_branch.

输入参数id必填branch_id必填assignee_user_id

crm_move_lead_to_branch

Move a lead between pipelines

Move the lead out of one pipeline into another (entry stage, or to_stage_id of the destination). Reversible.

输入参数id必填to_stage_idto_branch_id必填from_branch_id必填assignee_user_id

crm_preview_email_to_lead

Preview an email to a lead (dry-run)

Dry-run of crm_send_email_to_lead: shows recipient, subject and body exactly as they would be sent. Sends nothing. ALWAYS call first and show the draft to the human.

输入参数id必填tobody必填subject必填

crm_send_email_to_lead

Send a REAL email to a lead

Sends a REAL email from the CRM card ("<your name> via Vendo AI", replies go to your own address) and logs it on the card. Members need the crm-contact-details permission. Only call after the user approved the exact draft from crm_preview_email_to_lead.

输入参数id必填tobody必填subject必填

crm_import_leads

Import leads into the CRM

Import up to 1000 parsed rows as leads into the chosen pipelines (entry stage). Dedup by email/phone: an existing lead only gets its blank fields filled (never overwritten) and is added to the pipelines. Returns created / updated / skipped (+ reasons). No credits.

输入参数rows必填branch_ids

crm_promote_contact_to_lead

Promote a contacted person to a CRM lead

Turn a person from the Communications stream (crm_communication_history row) into a CRM lead in the New stage. Deduplicated: returns { lead_id, already_existed }. Needs at least one of email / linkedin_url / phone. No credits.

输入参数emailphonetitleavatar_urlcompany_namecontact_namelinkedin_urlassigned_user_id

crm_list_lead_documents

List documents on a lead

Files attached to a lead card (id, name, type, size, uploader, date). Read-only.

输入参数id必填

crm_upload_lead_document

Attach a document to a lead

Attach one file to a lead card (base64 or https URL). Allowed: pdf, doc(x), xls(x), csv, txt, rtf, odt, ods, ppt(x), png, jpg, gif, webp, heic, zip. Stored privately; adds an activity entry. No credits.

输入参数id必填file_urlfilenamecontent_base64

crm_get_lead_document

Download a lead document

Returns the file as base64 with its name and mime type (files up to 5 MB; larger ones only via REST). Read-only.

输入参数id必填document_id必填

preview_delete_crm_lead_document

Preview deleting a lead document (dry-run)

Dry-run: shows which file would be deleted. Changes nothing.

输入参数id必填document_id必填

delete_crm_lead_document

Delete a lead document

Permanently delete a file from a lead card. NOT reversible. Only call after the user approved preview_delete_crm_lead_document.

输入参数id必填document_id必填

list_app_notifications

List app notifications (bell)

The caller's in-app notifications, newest first (type, subject, preview, isRead, createdAt), with unreadCount and paging. Types include MEETING_TRANSCRIPT, MEETING_NOTIFICATION, SUBSCRIPTION_*, PAYMENT_RECEIPT, LOW_CREDITS, CREDITS_ADDED, INVITATION, CUSTOM. CRM lead notifications are separate (crm_list_notifications). Read-only.

输入参数pagelimit

get_app_notifications_unread_count

Unread app notifications count

Number of unread in-app notifications (the bell badge). Read-only.

无需输入参数。

mark_app_notification_read

Mark an app notification read

Mark one in-app notification as read.

输入参数id必填

mark_all_app_notifications_read

Mark all app notifications read

Mark every in-app notification of the caller as read (clears the badge).

无需输入参数。

delete_app_notification

Delete an app notification

Remove one in-app notification from the caller's list.

输入参数id必填

list_crm_integrations

List CRM integrations

External CRM connections of the workspace (Kommo, HubSpot): status, account, sync settings and counters. Tokens are never returned. Read-only.

无需输入参数。

get_crm_integration

Get one CRM integration

Status and settings of the Kommo or HubSpot connection ({connected:false} if none). Use it to poll after connect_crm_integration. Read-only.

输入参数provider必填

get_crm_integration_logs

CRM integration sync log

Recent sync events (contact/lead created, errors) of the caller's own Kommo/HubSpot connection. Read-only.

输入参数limitprovider必填

版本历史

1
  1. v1.0.0最新Sep 16, 2026

评分

已满足适用检查项的 83%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分

    请声明包含 README 的 GitHub 仓库,或在 OAuth 受保护资源元数据中提供 resource_documentation。

  • 许可证不适用

    托管服务按其提供方的条款使用,因此这里不要求许可证。此检查项不计入百分比。