Wazap

io.github.razvangirgiz由 GitHub 帳號 razvangirgiz 發布v1.6.0更新於 Oct 30, 2026

WhatsApp for your agent: chats, messages, media, contacts and groups behind MCP tools.

概覽

AI 產生的概覽

把使用者自己的 WhatsApp 帳號當成裝置連結,為助理提供 23 個工具,用來讀取聊天、搜尋歷史、取得媒體並起草或傳送訊息。

可以做什麼
  • 讀取會話、訊息、動態與訊息完整內容,並跨帳號彙整漏掉的內容
  • 依語意與關鍵字搜尋歷史,查找聯絡人、群組與通訊錄項目
  • 取得媒體:語音訊息轉成文字、照片以圖片呈現、檔案存到磁碟
  • 起草文字、媒體、投票、位置與轉寄,再送出經使用者確認的草稿
  • 編輯、回應、刪除訊息,管理聊天、群組與排程訊息
  • 在本機保存關於某人的備註、標籤與提醒,並等待新訊息進來
適用情境
適合不想打開 WhatsApp 而直接問助理的情境:今天漏掉什麼、誰在等回覆、某張發票或地址傳到哪裡、某段語音說了什麼,或請助理代為起草並傳送回覆。
執行需求
以 stdio 本機程序透過 npx 執行;需要 Node.js 22.16+(22 系列)或 24+,以及一支裝有 WhatsApp 的手機完成一次性連結(QR 碼或配對碼)。可選的 HTTP 模式使用 bearer 權杖或 OAuth。資料存放於 WAZAP_DATA_DIR,預設為 ~/.wazap。
安裝前請注意
採用非官方的逆向工程協定,而非 WhatsApp Business API;協定變動可能導致失效,大量或騷擾式傳送可能讓帳號被限制或停用。寫入類工具可傳送、編輯、刪除訊息並變更群組;先起草再確認只是流程約定,並非強制同意,可用 WAZAP_READ_ONLY 移除寫入工具。憑證與訊息歷史保存在本機磁碟;WhatsApp 流量、npm 登錄檔、模型下載,以及設定的轉錄 API 或 webhook 會離開本機。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Wazap,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

╭───────────────╮│        ▄██▀   │   ██╗    ██╗ █████╗ ███████╗ █████╗ ██████╗│      ▄██▀     │   ██║    ██║██╔══██╗╚══███╔╝██╔══██╗██╔══██╗│    ▄███████▀  │   ██║ █╗ ██║███████║  ███╔╝ ███████║██████╔╝│       ▄██▀    │   ██║███╗██║██╔══██║ ███╔╝  ██╔══██║██╔═══╝│     ▄█▀       │   ╚███╔███╔╝██║  ██║███████╗██║  ██║██║╰─╮╭────────────╯    ╚══╝╚══╝ ╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝╚═╝  ╰╯                WhatsApp for your AI agent.

[npm] [License: MIT] [M8ven Score]

wazap is an MCP server for your own WhatsApp account. It links as a device, the way WhatsApp Web does, keeps what it sees on your machine, and gives any MCP client — Claude, ChatGPT, Gemini, Cursor, Codex — 23 tools over your chats, messages, media, contacts and groups.

You stop opening WhatsApp to find things and ask instead:

  • "What did I miss on WhatsApp today?" — one answer across every linked account: who is waiting on you, mentions, missed calls, busy groups condensed.
  • "Find the invoice Dan sent in spring." — search by meaning and by words at once, then open the file.
  • "What did the voice note from mama say?" — voice notes come back as text.
  • "Tell Ana I'll be twenty minutes late." — you see the recipient and the exact words first. Nothing leaves until you say yes.

No browser, no business account, no third-party service. There is no wazap cloud: it runs where you run it.

Get started

You need Node.js 22.16+ on the 22 line, or 24+, and a phone with WhatsApp.

bash
npx wazap-mcp setup

setup links your account, finds the MCP clients installed on this machine (Claude Code, Claude Desktop, Cursor, Codex, Gemini CLI), writes their config, installs the five skills where the client reads them, and tells you what to restart. Then ask your assistant: "what did I miss on WhatsApp today?"

Rather let your agent do it? Paste this into it:

Set up WhatsApp for me: run npx wazap-mcp setup --agent and follow what it prints.

npx wazap-mcp on its own, in a terminal, starts nothing: it prints where you stand and the next command. When something is off, npx wazap-mcp status is the first thing to run; it prints a fix next to anything broken.

Per client

ClientFastest path
Claude Code/plugin marketplace add razvangirgiz/wazap, then /plugin install wazap@wazap
Claude Desktopdownload wazap-<version>.mcpb from Releases and double-click it
Cursorthe badge below, then npx wazap-mcp skills install cursor
Codex CLInpx wazap-mcp connect codex, then npx wazap-mcp skills install codex
Gemini CLInpx wazap-mcp connect gemini
claude.ai, ChatGPT, other hosted agentsa URL they sign in to with OAuth: see Remote access
Anything elsecommand npx -y wazap-mcp, transport stdio

[Install in Cursor]

The hand-written entry, for any client that takes the usual JSON:

json
{  "mcpServers": {    "whatsapp": { "command": "npx", "args": ["-y", "wazap-mcp"] }  }}

Every step setup takes, each file connect writes, and upgrading are in docs/install.md.

Linking your account

Linking is a one-time step. setup does it for you; on its own it is:

bash
npx wazap-mcp login                      # QR code: Settings → Linked devices → Link a devicenpx wazap-mcp login --phone +15550100    # pairing code instead, no camera needed

With --phone, wazap prints an 8-character code. On the phone, go to WhatsApp → Settings → Linked devices → Link a device → Link with phone number instead and type it in. The pairing code works over SSH and on a headless server, where a QR is impractical.

An assistant can link the account itself, too: the link_account tool returns the same code, so a Claude Desktop user never needs a terminal.

Several WhatsApp accounts can live in one wazap (wazap account add <id>, then wazap login --account <id>); see docs/accounts.md.

The 23 tools

What every argument means, and every error code, is in docs/tools.md. The assistant gets all of it by calling learn.

ToolKindWhat it does
learnreadThe guide to every tool, id format, workflow and error code. Call it first.
get_statusreadConnection, sync, linked accounts, how fresh the history is, webhook delivery, versions.
link_accountreadLink an account from the assistant; returns the 8-character code to type into the phone.
list_chatsreadConversations newest-first: all, unread, groups, individual or archived.
read_messagesreadOne chat, paging back into the phone's history; chat_id: "status" reads the stories.
catch_upread"What did I miss?" across every account, in one call and within a token budget.
searchreadMessages by meaning and by words at once, narrowed by chat, sender or date.
get_messagereadOne message in full: its quote, reactions and who left them, poll votes, delivery and read receipts.
find_contactreadWho "mama", a nickname, a group name or a number means, before anything is drafted.
list_contactsreadThe phone's address book a page at a time: saved name, number, when you last talked.
get_group_inforeadParticipants, admins, group settings, the invite link for an admin.
get_mediareadA voice note as its transcript, a photo as an image, any file saved to disk; served from the copy kept on arrival first.
wait_for_messagesreadBlock up to 55 s until a message arrives, with a cursor so nothing is missed between calls.
rememberlocalA note, tags or details about a person, kept on this machine. Nothing changes on WhatsApp.
send_messagewriteDraft a message, media, poll, location or forward — and send nothing. send_at drafts it for a later time.
confirm_sendwriteSend that draft, once, after the user has seen the preview and said yes; a draft for later is scheduled.
edit_messagewriteEdit your own message, within WhatsApp's 15-minute window.
react_to_messagewriteAdd or remove an emoji reaction.
delete_messagewriteDelete for everyone (your own message, or anyone's in a group you admin), or only on this account.
manage_chatwritePreview archive, pin, mute, star, clear, delete, block and undo actions; confirm the preview to apply once. mark_read remains direct.
manage_groupwriteCreate, join, rename, add, remove, promote, invite links, join requests, settings, leave.
scheduled_messageswriteList the scheduled messages (sent, missed, failed too) or cancel one before it goes.
reminderlocal"Remind me if Ana has not answered in 2 days": set, list or cancel; posted to your webhook when due.

Scheduled messages and reminders. send_message with send_at ("tomorrow at 9" as 2026-10-12T09:00 in Europe/Bucharest) drafts a message for later; the user's yes to that preview, time included, schedules it, and every send check runs again when it goes. One wazap could not send within 15 minutes of its time is reported as missed, never sent late. reminder keeps "remind me if Ana has not answered in 2 days" and posts it to your webhook when due. Both survive restarts; see Scheduling a message and Reminders.

Two features are off by default and can run entirely on your machine: voice transcription with whisper.cpp (docs/voice.md) and semantic recall, so search matches meaning and not only words (docs/recall.md). Turn them on with wazap config transcribe local and wazap config recall local.

Skills

Tools say what is possible; the five Agent Skills in skills/ say how to do the job well.

SkillWhat the agent does
whatsapp-inboxTriage: needs you / FYI / noise, plus replies you forgot. Read-only.
whatsapp-recallFind an address, an invoice, a photo, a thing someone said. Read-only.
whatsapp-groupsCatch up on a busy group: decisions, dates, what is asked of you. Read-only.
whatsapp-sendFind who you mean, draft in the chat's own tone, show it, send on a yes.
wazap-setupDiagnose, link or repair the connection.

setup installs them for Claude Code, Codex and Cursor (npx wazap-mcp skills install <harness> does it by hand). Every other client gets the same five as MCP prompts from the server, with nothing to install.

Transports

stdio is the default: the client starts npx -y wazap-mcp and talks to it over stdin/stdout. Nothing listens on the network.

HTTP (Streamable HTTP) is for a server that outlives the client, or one another machine reaches:

bash
npx wazap-mcp serve --http                 # http://127.0.0.1:8766/mcp, health at /healthz

--host/--port (or WAZAP_HOST/WAZAP_PORT) move it. wazap refuses to bind anything but loopback without WAZAP_READ_TOKEN. Clients authenticate with a static bearer token (WAZAP_READ_TOKEN, plus WAZAP_WRITE_TOKEN for the write tools) or with OAuth 2.1, which wazap serves itself. Details in docs/self-host.md.

Remote access

Two commands keep wazap running and reachable from hosted agents:

bash
npx wazap-mcp service install   # a launchd agent (macOS) or systemd user unit (Linux)npx wazap-mcp expose            # a public https URL through Tailscale Funnel or Cloudflare Tunnel

expose prints the URL and a consent password. Give the agent only the URL; it registers itself, and the consent page asks you for the password and whether that agent may only read or also send. See Keep it running.

The service recovers by itself: a dropped link is retried with backoff, a watchdog replaces a socket that went dead across a sleep or stopped answering, and when reconnecting keeps failing wazap exits so launchd or systemd starts it fresh. The linked session is never deleted for any of that; only WhatsApp unlinking the device needs a new link. Set WAZAP_WEBHOOK_EVENTS to include alert to be told when the link has been down for 5 minutes, when it is back, and when it needs linking again (Link alerts); get_status shows the same under link.

Deployment

On a server of your own, the session never leaves it. With Docker (images for amd64 and arm64 at ghcr.io/razvangirgiz/wazap):

bash
mkdir wazap && cd wazapcurl -fsSLO https://raw.githubusercontent.com/razvangirgiz/wazap/main/docker-compose.ymlprintf 'WAZAP_READ_TOKEN=%s\nWAZAP_WRITE_TOKEN=%s\n' $(openssl rand -hex 32) $(openssl rand -hex 32) > .envdocker compose run --rm wazap login --phone +15550100   # once; the session lands in the volumedocker compose up -dcurl -s http://127.0.0.1:8766/healthz

The container publishes port 8766 on loopback only; put TLS in front (deploy/Caddyfile is two lines). A systemd unit is in deploy/wazap.service. Both setups, reverse-proxy trust and the OAuth server are in docs/self-host.md. Calling wazap from your own product, and receiving signed webhooks for incoming messages, is in docs/api-and-webhooks.md.

Configuration

Every setting is optional. They are environment variables, read from the process or from ~/.wazap/.env (a real environment variable wins, a flag wins over both). You rarely edit them by hand: wazap config shows the effective settings and changes one.

SettingDefaultWhat it does
WAZAP_DATA_DIR~/.wazapWhere credentials, databases and models live (--data-dir too).
WAZAP_READ_ONLYunset1 does not register the write tools at all. wazap config writes on|off.
WAZAP_PERSIST_HISTORY10 keeps no messages on disk across restarts.
WAZAP_HOST / WAZAP_PORT127.0.0.1 / 8766Where serve --http listens.
WAZAP_READ_TOKEN / WAZAP_WRITE_TOKENunsetStatic bearer tokens for HTTP; only the write token gets the write tools.
WAZAP_PUBLIC_URL / WAZAP_OAUTH_PASSWORDunsetBoth together turn on OAuth for hosted agents. wazap expose sets them.
WAZAP_TRANSCRIBEofflocal (whisper.cpp) or openai (an OpenAI-compatible API).
WAZAP_RECALLofflocal turns on semantic search with a local embedding model.
WAZAP_WEBHOOKoffon posts incoming messages to WAZAP_WEBHOOK_URL, signed with WAZAP_WEBHOOK_SECRET.
WAZAP_MEDIA_KEEPunmutedWhich chats' media is downloaded on arrival and kept, so get_media outlives WhatsApp's copy: unmuted, all, chats or off. Limits: WAZAP_MEDIA_KEEP_MAX_MB, WAZAP_MEDIA_KEEP_QUOTA_MB, WAZAP_MEDIA_KEEP_DAYS.

The full list, including the webhook filters, kept-media limits, retention and proxy trust, is in docs/settings.md; .env.example is the same list as a commented file.

Security and privacy

  • Nothing is sent without a yes. send_message only drafts: it returns the recipient and the exact text and touches no network. Only confirm_send sends, and a draft goes out at most once, even across a crash. Draft-then- confirm is a workflow, not proof of consent: an agent can call both tools unless your client makes you approve the second one.
  • Read-only is a real switch. With WAZAP_READ_ONLY=1, --read-only or wazap config writes off, the write tools are not registered, so the assistant cannot message anyone even by mistake. The Claude Desktop bundle ships with read-only ticked.
  • Recipients can be pinned. wazap config send allow +15550100,… limits an account to a list, deny refuses the ones named; both are checked at draft and again at send (docs/send-rules.md).
  • Writes are rate limited, 20 a minute per account by default, because sending faster than a human is how numbers get banned.
  • Your data stays on your machine. Credentials, messages, media and notes live in ~/.wazap (0700, credential files 0600). No account, no telemetry. What leaves the machine: WhatsApp traffic; the npm registry, for the version check; Hugging Face, when you download a transcription or embedding model; a transcription API, only if you chose openai; your own webhook, if you set one (docs/data.md).
  • Some people can be kept out. Tag a contact #private and their words stay out of everything the assistant did not ask about them by name, and out of the webhook. #no-catchup keeps their chat out of catch_up.
  • What it does not do. No bulk send, no scheduler, no campaigns. It never marks anything read on its own, and sends text without link previews, so nothing fetches the pages you link.

Threat model, findings and the limits of each of these: docs/security-audit.md.

Known limitations

  • The protocol is unofficial. wazap is built on Baileys, a reverse-engineered implementation of WhatsApp's multi-device protocol. It is not the WhatsApp Business API and Meta does not support it. A protocol change can break wazap until Baileys catches up, and an account that sends in bulk or to people who did not ask can be restricted or banned. The safeguards above reduce that risk; they do not remove it, and the risk is yours.
  • Model behaviour is measured on Claude only. The evaluation in eval/ (58 cases, each run three times) has been run on Claude. Other clients get the same tools and the same server-side guards, but nobody has measured how their models use them. The manual protocol for ChatGPT is eval/chatgpt-protocol.md.
  • History is what the phone syncs to a linked device, not your whole archive. read_messages with before asks the phone for more, within what WhatsApp still keeps.
  • Old media expires. WhatsApp drops old attachments from its servers; get_media then returns MEDIA_UNAVAILABLE, unless wazap kept a copy when it arrived. By default it keeps the photos, voice notes, audio and documents of unmuted chats, up to 16 MB each, 1 GB in all and 90 days, while wazap serve runs; media that arrived and expired while nothing was keeping it cannot be brought back.
  • Names come from the phone's address book, which WhatsApp only sends to a fresh connection. If contacts read as numbers (contacts_named: 0 in get_status), wazap contacts resync asks again while no server runs.
  • @lid ids. Newer accounts are addressed by a privacy id; wazap maps it back to a number when it has learned the mapping.
  • Calls are WhatsApp calls only, and a call that starts and ends while wazap is stopped may be missing. Cellular calls are never visible.
  • The phone must stay reachable. A linked device stops receiving once the phone has been offline too long; get_status says so.

What the 1.x line promises not to break is in docs/stability.md.

Documentation

docs/install.mdsetup step by step, each client, the background service, expose, upgrading, skills
docs/tools.mdThe 23 tools in full, the workflows, every error code
docs/accounts.mdSeveral WhatsApp accounts, several MCP clients on one server
docs/voice.mdVoice notes as text: whisper.cpp locally, or an OpenAI-compatible API
docs/recall.mdSemantic search with a local embedding model
docs/data.mdThe data directory, wazap backup, retention, deleted and disappearing messages
docs/send-rules.mdRead-only mode, per-account send rules, rate limits
docs/self-host.mdHTTP mode, systemd, Docker, tunnels, proxy trust, OAuth
docs/api-and-webhooks.mdStatic tokens in, signed webhook events out
docs/settings.mdEvery WAZAP_* setting and its default
docs/security-audit.mdThe security audit
docs/stability.mdWhat 1.0 promises to keep stable
CHANGELOG.mdRelease by release

Contributing

bash
git clone https://github.com/razvangirgiz/wazap && cd wazapnpm cinpm run check                  # lint, typecheck, then build and testnode test/smoke-stdio.mjs      # drives the built binary over MCP stdionpm run dev -- status          # run from source with tsx

The tests need no WhatsApp account. CLAUDE.md is the contributor's map: layout, the rules that must never break, and the release procedure. Issues and pull requests are welcome at github.com/razvangirgiz/wazap.

License

MIT © Răzvan Girgiz

來源:README.md,提交 de7478f

工具

23

learn

Learn how to use the WhatsApp tools

The guide to these tools: ids, account_id with several accounts, the workflows, the message shape and what to do about each error code. Read it once, before the other tools; it never touches WhatsApp.

輸入參數account_id

get_status

Get the WhatsApp connection status

Whether the account works: status (connected, not_linked, linking with its pairing code…), sync, how fresh the history is, webhook delivery, versions. accounts lists every account, with default. Call it on NOT_CONNECTED, NOT_LINKED or SYNC_IN_PROGRESS.

輸入參數account_idinclude_picture

list_chats

List WhatsApp chats

Conversations, most recently active first: chat_id, name, type, unread count, last message, and whether archived, pinned, muted or left. Use it to find a chat_id.

輸入參數taglimitcursorfilteraccount_idinclude_pictures

read_messages

Read messages from a WhatsApp chat

Read one chat, oldest to newest: the latest messages, or older ones with before (wazap asks the phone when the local history runs out). Long texts are cut unless full_text. chat_id "status" reads the stories people posted, newest first, from the last hours (at most a day); they show nowhere else.

輸入參數hourslimittypesbeforechat_id必填full_textaccount_idinclude_previews

catch_up

Catch up on what the user missed

What the user missed, all accounts, within budget_tokens: waiting (every open ask of 14 days, whatever the window), mentions, calls, people, groups, stories. account_id narrows it to one account; get_status names them. The mark moves first; a lost answer is since: "previous". more.cursor: the rest.

輸入參數hourssincecursorincludeaccount_idbudget_tokens

remember

Remember something about a person

Keep what the user says about someone, locally, never on WhatsApp: a note, tags, details find_contact matches ({"relatie": "mama"}), or handled: true for an ask dealt with elsewhere. #private keeps their words out of what you did not ask about them by name; #no-catchup keeps them out of catch_up.

輸入參數notefieldschat_id必填handledadd_tagsaccount_idremove_tagsremove_fields

wait_for_messages

Wait for new WhatsApp messages

Wait for messages from other people, up to timeout_seconds, and return them with a cursor: pass it to the next call so nothing that lands between calls is missed. addressed_to_me wakes only for direct messages, mentions and replies to the user. For agents that stay on the line.

輸入參數cursorchat_idaccount_idaddressed_to_metimeout_seconds

get_message

Get one WhatsApp message in full

One message in full, its words never cut: the message it quotes, each reaction with who left it, poll votes and event answers by person, its media, and on the user's own messages who it reached and who read it. Without account_id the id is looked for on every account.

輸入參數account_idmessage_id必填

find_contact

Find who the user means

Who a name, nickname, relationship ("mama"), filed detail ("AP-123"), group, number or id means, before drafting. resolved: contact.chat_id, with number, note, tags, details and, when writing, context. ambiguous or not_found: ask the user; never guess. Several accounts: see fix. tag: its people.

輸入參數tagkindnamelimitqualifieraccount_idinclude_context

list_contacts

List the phone's address book

The phone's address book on one account, a page at a time: saved name, phone (E.164), chat_id, contact_id, and when the last direct message was and its direction. No message words; #private people left out. address_book_synced false: not arrived yet.

輸入參數limitordercursoraccount_id

get_group_info

Get WhatsApp group info

A group's name, description, owner and participants (up to 500), whether the account is admin, its settings (info_locked, member_add_mode, join_approval, disappearing_seconds), its community, and the invite link for an admin. Call it before manage_group.

輸入參數group_id必填account_id

get_media

Get the media of a WhatsApp message

What a message's media holds: a voice note or audio as its transcript (kept once made; an API provider bills it), or with save_to its file; a photo attached as an image; any file saved at path on the machine running wazap; a copy kept on arrival answers first. MEDIA_UNAVAILABLE: gone, none kept.

輸入參數save_tolanguageaccount_idmessage_id必填

send_message

Draft a WhatsApp message

Drafts text, media, polls, locations, forwards; sends nothing. Call it as soon as you have recipient and text: it returns draft_id and preview (recipient, number, exact text). Show that preview; confirm_send only on a yes to this text and recipient — a send in the same request is that yes.

輸入參數asurltext必填addresschat_id必填forwardoptionssend_atlatitudereply_tofile_pathlongitude另有 4 個

edit_message

Edit a WhatsApp message you sent

Replace the text of a message the linked account sent. WhatsApp allows it for 15 minutes after sending; later, send a correction instead.

輸入參數text必填account_idmessage_id必填

react_to_message

React to a WhatsApp message

React to a message with one emoji, or pass "" to take your reaction off.

輸入參數emoji必填account_idmessage_id必填

confirm_send

Send a drafted WhatsApp message

Send a draft the user approved — this text, this recipient: the only call that sends, once per draft. A yes about something else: show the preview again and ask. Expired, missing or stale: draft again, show the new preview, ask again. SEND_OUTCOME_UNKNOWN: read_messages, never redo it unasked.

輸入參數draft_id必填account_id

delete_message

Delete a WhatsApp message

Delete a message; confirm with the user first. for_everyone: true retracts it for everyone within 2 days: the account's own message, or anyone's in a group where it is admin. for_everyone: false removes any message from the linked account's devices only.

輸入參數account_idmessage_id必填for_everyone必填

manage_chat

Manage a WhatsApp chat

Preview archive, pin, mute, pin_message, star_message, clear, delete, block and undo. After approval repeat chat_id/action with confirmation_id, without options. Expires in 15m; one attempt. mark_read runs directly.

輸入參數action必填chat_id必填pin_hoursaccount_idmessage_idmute_hoursconfirmation_id

manage_group

Manage a WhatsApp group

Create a group, join one from an invite (preview first, then confirm: true), or administer one: members, name, description, photo, invite link, join requests, settings, leave. Most actions need admin. Every change shows to all members at once: say what will change, wait for a yes.

輸入參數urlvalueaction必填inviteconfirmgroup_idfile_pathaccount_idmessage_idparticipant_ids

scheduled_messages

List or cancel scheduled WhatsApp messages

The account's scheduled messages: list (waiting ones soonest first, then the week's sent, missed, failed and cancelled ones) or cancel one by schedule_id before it goes. To schedule one, send_message with send_at, then confirm_send. Tell the user about every missed or failed one.

輸入參數limitactionaccount_idschedule_idinclude_closed

reminder

Set, list or cancel a reminder about a chat

The user's reminders about a chat, kept locally and posted to their webhook when due: create (chat_id, note, after_hours or due_at); condition "no_reply" fires only if nobody wrote there since ("if Ana has not answered in 2 days"). list, cancel. Nothing goes to WhatsApp.

輸入參數notelimitactiondue_atchat_idconditiontime_zoneaccount_idafter_hoursreminder_idinclude_closed

版本歷史

19
  1. v1.6.0最新Oct 22, 2026
  2. v1.5.0Oct 22, 2026
  3. v1.4.7Oct 21, 2026
  4. v1.4.3Oct 21, 2026
  5. v1.4.2Oct 17, 2026
  6. v1.4.0Oct 12, 2026
  7. v1.3.8Oct 11, 2026
  8. v1.3.7Oct 10, 2026
  9. v1.3.6Oct 10, 2026
  10. v1.3.4Oct 9, 2026
  11. v1.2.0Oct 6, 2026
  12. v1.1.0Sep 28, 2026
  13. v1.0.3Sep 23, 2026
  14. v1.0.2Sep 22, 2026
  15. v1.0.1Sep 21, 2026
  16. v1.0.0Sep 21, 2026
  17. v0.23.1Sep 17, 2026
  18. v0.22.0Sep 17, 2026
  19. v0.21.0Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分
  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分