#Asking Krill
1 messages · Page 1 of 1 (latest)
Better to ask in #help (or a thread in #help) rather than DM.
Reasons:
- Others can learn from the answer (and itâs searchable later)
- More people can jump in if Iâm offline or unsure
- It keeps troubleshooting context (logs/config snippets) in one place
If you have something sensitive (tokens, phone numbers, etc.), redact it before posting. If itâs truly private, say what you can publicly and weâll figure out a safe way to share the minimum needed.
I want my openclaw running on kimi to help me start a digital business development task force. The task force needs to mainly:
- Search for leads
- Do deep research to qualify the leads
- Email the leads and handle replies.
I want this task force to run autonomously on weekdays without me having to trigger.
Whatâs the best way for me to execute this with openclaw?
Doable, but the âbestâ OpenClaw pattern is cron for weekday autonomy + webhooks for email replies + a persistent lead database (file or CRM), with tight guardrails on sending so you donât accidentally spam people.
1) Split the âtask forceâ into 3 lanes (and keep state somewhere)
OpenClaw cron runs are fresh sessions each time, so you want a durable place to track progress:
- Lead DB: a Google Sheet / Airtable / Notion database, or a simple
leads.jsonlfile in the agent workspace. - Fields like:
company,contact,email,source_url,fit_score,notes,status,last_touch,next_followup.
Then your agents do:
- Lead sourcing (find new candidates, dedupe against DB)
- Qualification research (web fetch/browser research â score + notes)
- Outreach + follow-ups (draft emails, schedule follow-ups, update status)
(OpenClaw FAQ also explicitly recommends human-in-the-loop for outreach.)
Docs: https://docs.openclaw.ai/help/faq#can-openclaw-help-with-lead-gen-outreach-ads-and-blogs-for-a-saas
2) Weekday autonomy: use Cron jobs (Gateway scheduler)
Set up isolated cron jobs that run MonâFri and deliver a daily digest back to you (Discord/Telegram/Slack/etc).
Example shape (CLI) is in the cron docs; youâll use a weekday cron expr like 0 9 * * 1-5 with your timezone.
Docs: https://docs.openclaw.ai/automation/cron-jobs
Suggested job set:
- 09:00 âFind 20 new leads matching ICP, append to DBâ
- 10:00 âResearch & score new leads; pick top 5â
- 11:00 âDraft personalized emails for top 5; output as an approval queueâ
- 16:00 âFollow-up check: who hasnât replied in N days? draft follow-upsâ
Tip: cron jobs can set a per-job model override, so you can run Kimi for the heavy text work but switch to a more tool-reliable model for browser-heavy steps if needed. (Cron docs show --model overrides.)
3) Email replies: wire Gmail â Webhooks â agent run (recommended)
For âhandle repliesâ without you triggering anything, the clean path is:
Gmail watch â Pub/Sub push â gog gmail watch serve â OpenClaw webhook mapping
OpenClaw has a full guide + a helper wizard:
openclaw webhooks gmail setup --account <you@gmail.com>
Docs: https://docs.openclaw.ai/automation/gmail-pubsub
(Webhooks overview: https://docs.openclaw.ai/automation/webhook)
Once thatâs in place, new inbound emails can automatically trigger an isolated agent run that:
- classifies the reply (interested / question / not now / unsubscribe / OOO)
- updates the Lead DB
- drafts a suggested response (and optionally sends itâsee next)
4) Sending emails: start with âdraft-onlyâ, then graduate to allowlisted sending
OpenClaw doesnât (yet) have a universal âemail.sendâ channel like chat apps do, so the common approach is:
- let OpenClaw draft
- then either you send, or you add a very narrow, allowlisted command that sends via a CLI (the Gmail PubSub doc uses
gog gmail send)
If you go autonomous on sending, lock it down with exec allowlists/approvals so the agent can only run the exact mail-sending command you intend.
Docs: https://docs.openclaw.ai/tools/exec-approvals
5) Reality checks / guardrails (important)
- Donât automate sources that forbid automation/scraping (some platforms are strict).
- Put hard limits in your prompts: âmax X new leads/dayâ, âmax Y emails/dayâ, âmust include opt-out lineâ, âstop outreach if any hint of âunsubscribeââ.
- Start with a week of daily digests + manual approval; flip to auto-send only after you trust the pipeline.
Quick questions so I can suggest a concrete setup
- Are you using Gmail for outreach + replies?
- Rough volume: how many emails/day are you aiming for?
- Where should the daily digest go (Discord, Telegram, Slack)?
- Do you want fully automatic sending, or âdraft queue + approvalâ?
- If I use gmail for my business, can I choose not to have the â@gmail.comâ domain?
- 20-50 max mails per day
- WhatsApp message
- Start with my review before sending email, until things get stable I will allow it to be fully automatic sending
-
Yes â you can use Gmail without â@gmail.comâ, but youâll want Google Workspace (paid). That lets you use the Gmail UI + Gmail sending/receiving while your address is something like
you@yourdomain.com(orsales@yourdomain.com). You can also create aliases likeoutreach@âŠfor separation. -
20â50/day is a reasonable target, but treat it like a warm-up + cap + compliance problem:
- start lower for a new domain/mailbox, ramp up over days/weeks
- enforce a hard daily send cap and spread sends across the day
- maintain a do-not-contact / unsubscribe list and always honor it
- WhatsApp delivery is a great âcontrol surfaceâ for this. The clean OpenClaw pattern is:
- Cron jobs run MonâFri and send you a WhatsApp digest (new leads found, research scores, drafted emails).
- Webhooks (Gmail Pub/Sub) push inbound replies into OpenClaw, and OpenClaw summarizes them back to WhatsApp.
Cron docs: https://docs.openclaw.ai/automation/cron-jobs
Gmail â webhook wiring: https://docs.openclaw.ai/automation/gmail-pubsub
- âReview before sendâ â best workflow (then later full auto)
Phase A (review gate, safest)
- Weekdays cron generates an Outbox queue (e.g.
outbox/pending.jsonlin the workspace) + sends you the drafts on WhatsApp. - Nothing sends until you reply in WhatsApp with something like:
approve batch 2026-02-15 #1-#7 - Only on that explicit approval message does the agent run the send step.
Phase B (fully automatic)
- Flip one config/behavior switch: the weekday cron that drafts emails also sends them automatically (still with caps + unsubscribe rules).
For the actual âsendingâ step on the gateway host, you typically use a narrow CLI (the docs use gog gmail send) and lock it down with exec allowlists/approvals so the agent canât run arbitrary commands.
Exec approvals/allowlists: https://docs.openclaw.ai/tools/exec-approvals
Also strongly recommended: give the bot its own email identity (and ideally its own WhatsApp/phone if you ever expand autonomy) to reduce blast radius:
https://docs.openclaw.ai/help/faq#should-my-bot-have-its-own-email-github-account-or-phone-number
If you tell me:
- your timezone, and
- whether youâre on Google Workspace already (and what the sender address should be, e.g.
outreach@yourdomain.com)
âŠI can suggest a concrete MonâFri cron schedule (lead find â research â draft) + the exact âapproval commandâ format to use in WhatsApp so itâs hard for the agent to misinterpret.
I am on GMT +8 timezone. Will setup google workspace
Use an IANA timezone in cron like Asia/Shanghai (GMT+8) and youâre set.
Recommended weekday schedule (GMT+8)
These are good âbusiness hoursâ defaults; all run MonâFri (1-5) and deliver to WhatsApp:
- 09:10 â Lead sourcing (find N new leads, dedupe vs your lead DB)
- 10:30 â Deep qualification (research, score, pick top K)
- 14:00 â Draft outreach emails (draft-only, no sending) + generate an âapproval batchâ
- 17:30 â Daily digest (what happened, whatâs pending approval, what replies came in)
Cron expressions:
10 9 * * 1-530 10 * * 1-50 14 * * 1-530 17 * * 1-5
OpenClaw cron docs (including WhatsApp delivery flags): https://docs.openclaw.ai/automation/cron-jobs
Gmail (Workspace) without @gmail.com + automatic reply handling
Since youâre setting up Google Workspace, youâll typically use something like:
outreach@yourdomain.com(and maybereply@yourdomain.com,support@âŠaliases)
Then wire inbound email into OpenClaw so replies get handled without you triggering anything:
- Run:
openclaw webhooks gmail setup --account outreach@yourdomain.com - This sets up Gmail watch â Pub/Sub push â OpenClaw hook mapping
Docs: https://docs.openclaw.ai/automation/gmail-pubsub
(Webhooks overview: https://docs.openclaw.ai/automation/webhook)
For delivery to WhatsApp, youâll either set channel/to in the hook mapping (or rely on channel:"last" once youâve established WhatsApp as the last route).
âReview before sendâ gate (strongly recommend at first)
Make the draft job output something like:
- Batch id:
2026-02-15-A - Drafts:
#1âŠ#12 - And a single clear instruction:
âReply exactly: APPROVE 2026-02-15-A 1-12 or REJECT 2026-02-15-A.â
Only when you send APPROVE ... does it run the actual send step. Later, you can remove the approval requirement and let the cron job send automatically.
(When you get to auto-sending, lock it down with strict exec allowlists/approvals so it can only run the exact email-send command you intend.) Docs: https://docs.openclaw.ai/tools/exec-approvals
Two quick things I need from you to make this concrete
- What WhatsApp target should cron deliver to: your personal DM or a group? (No need to post the number publiclyâjust describe which.)
- Where will you run the Gateway (VPS / home server / laptop)? Cron + Gmail watch only work reliably if the Gateway is up 24/7.
- Any major difference if itâs a personal DM or to a group?
- Home Mac mini running 24x7
1) WhatsApp DM vs WhatsApp group â what changes?
Big differences are access control, safety, and how sessions are separated:
DM (recommended to start)
- Safest control surface: only you can trigger approvals/rejections.
- Less prompt-injection risk (no other group members posting âinstructionsâ).
- Simpler policy: just
dmPolicy+allowFrom. - Session behavior: by default WhatsApp DMs can collapse into the agentâs main session (
session.dmScopedefault ismain), so if you use WhatsApp for lots of random chat, business automation context can get mixed unless you isolate via a separate agent.
Group (useful later, but lock it down)
- Great if you want a dedicated âBizDev Ops roomâ and (later) teammates.
- Higher risk/noise unless you strictly restrict who can talk to the bot.
- By default group replies require a mention (or you explicitly set
/activation alwaysfor that session â owner-gated). - Session behavior: groups are always isolated per group JID, which is nice for keeping your âtask forceâ context clean.
Docs (WhatsApp channel): https://docs.openclaw.ai/channels/whatsapp
Practical recommendation: start with DM for approvals. If you want clean separation, create a private group with only you + the bot number and configure groupPolicy: "allowlist" so only you can issue commands.
Config shape (from docs):
{
channels: {
whatsapp: {
dmPolicy: "allowlist",
allowFrom: ["+YOUR_NUMBER"],
groupPolicy: "allowlist",
groupAllowFrom: ["+YOUR_NUMBER"],
},
},
}
2) Home Mac mini 24/7 â perfect for this
Thatâs basically the ideal host, because:
- Cron jobs run inside the Gateway, so the machine needs to stay up.
- The Gmail watcher / webhook setup also wants a stable always-on process.
Two operational tips:
- Make sure the Mac mini is set to never sleep (display sleep is fine; system sleep breaks cron + watchers).
- For Gmail Pub/Sub inbound triggers, the supported path uses Tailscale Funnel (the wizard expects this). Docs: https://docs.openclaw.ai/automation/gmail-pubsub
Next detail I need (so I can suggest exact âdeliver-toâ settings)
Are you planning to run OpenClaw on:
- a dedicated WhatsApp number for the bot (recommended), or
- your personal WhatsApp?
If itâs dedicated, DM delivery is super clean. If itâs personal, weâll want to be careful about session mixing and self-chat behavior.
I will adopt WhatsApp DM. Message to be delivered to my personal WhatsApp.
On a side note, I remember seeing in openclaw status that my tailscale is off. What do I do
âTailscale: offâ in openclaw status is usually not an error â it just means youâre not using OpenClawâs Tailscale integration right now (default is off), or the tailscale CLI isnât installed/logged in.
Do you actually need Tailscale for your plan?
- WhatsApp DM delivery + weekday cron jobs: No (works fine without Tailscale as long as the Mac mini is online 24/7).
- Automatic Gmail reply handling via the supported Gmail Pub/Sub webhook setup: Yes, typically, because the recommended/âsupportedâ way exposes the Gmail push endpoint using Tailscale Funnel. Gmail is not on your tailnet, so Serve (tailnet-only) wonât be enough.
Docs: https://docs.openclaw.ai/automation/gmail-pubsub
What to do (recommended path for Gmail automation)
- Install and log into Tailscale on the Mac mini
- Install the Tailscale app, sign in
- Verify in Terminal:
tailscale status
-
Use the OpenClaw Gmail webhook wizard (it will write the right config and use Funnel in the supported setup):
openclaw webhooks gmail setup --account outreach@yourdomain.com -
If you later want the Control UI remotely too, you can use:
- Tailnet-only (private):
openclaw gateway --tailscale serve - Public (for Gmail pushes):
openclaw gateway --tailscale funnel --auth password
- Tailnet-only (private):
Docs: https://docs.openclaw.ai/gateway/tailscale
Quick check
Can you paste the Tailscale line from:
openclaw status --all
That line usually tells whether itâs âoff because mode=offâ vs âoff because tailscale isnât installed/running,â and Iâll tell you the exact next step.
Hey Krill
Which model is recommended to use.. I heard claude is getting blocked again? Hows kimi or minimax or glm review by users?
Model ârecommendationsâ go stale fast (and vary a lot by region + provider uptime), so Iâm not going to give you a single definitive pick here. Best move:
- Ask in #models (people post current âwhatâs working this weekâ reports)
- And set up model failover so a temporary block/rate-limit doesnât brick your bot
Docs:
- Models overview + switching: https://docs.openclaw.ai/concepts/models
- Failover behavior: https://docs.openclaw.ai/concepts/model-failover
- Community notes pointer: https://docs.openclaw.ai/concepts/models#model-discussions-community-notes
About âClaude is getting blocked againâ
Could mean a few different things:
- regional networking issues,
- provider-side outages,
- or just 429 rate limits.
Donât guessâcheck what your gateway sees:
openclaw models status
openclaw logs --follow
Kimi / MiniMax / GLM (what users usually report, in general terms)
Very rough trend (and it changes): some folks find GLM-ish options behave better for coding/tool-structured outputs, while MiniMax-ish options feel nicer for writing/âvibesâ. Kimi is often a solid value pick, but tool-calling reliability can vary depending on the exact route/provider you use.
If your workflow depends on tools (browser/webhooks/structured automation), prioritize tool reliability first, then cost.
What Iâd do in practice
- Pick a primary model you like.
- Add 1â2 fallbacks from different providers (so one provider going flaky doesnât stop everything).
- Use
/model listin-chat to pick from whatâs configured/allowed on your instance.
If you tell me what youâre doing most (chat-only vs heavy tools like browser/webhooks), I can suggest a failover shape (which providers to mix), without naming specific model IDs.
How to use /moonshotai/kimi-k2.5 with API in OpenClaw without other Provider?
If you want Kimi via Moonshotâs own API (no OpenRouter / no other provider), donât use moonshotai/... â thatâs an OpenRouter-style model path.
In OpenClaw, the direct Moonshot provider is:
- provider:
moonshot - model ref:
moonshot/kimi-k2.5 - auth env var:
MOONSHOT_API_KEY - base URL:
https://api.moonshot.ai/v1(or China:https://api.moonshot.cn/v1)
Docs: https://docs.openclaw.ai/providers/moonshot
Easiest setup (wizard)
On the gateway host:
openclaw onboard --auth-choice moonshot-api-key
Then select/set the model:
openclaw models set moonshot/kimi-k2.5
openclaw models status
Manual config (minimal)
Add something like this to your openclaw.json (and restart the gateway after):
{
env: { MOONSHOT_API_KEY: "sk-..." },
agents: { defaults: { model: { primary: "moonshot/kimi-k2.5" } } },
models: {
mode: "merge",