Daily operations
A morning brief from the CRM, researched.
#sales-opspublic channel4 tool calls
A routine with a longer prompt: every morning it searches the CRM for the contacts created yesterday, reads each company's site, drafts the outreach, and posts one brief in a fresh thread. Its writes run pre-approved, because a card posted at six is nobody's to press — and the person asking can have them held instead.
Dan6:00 AM
@attest_tag every day at 6am ET, find the leads created in HubSpot yesterday, research each one, and post a brief here
attest_tagApp6:04 AM
- hubspot_search · contacts · createdate ≥ yesterday · 4 contacts
- fetch_url · 4 company sites
- web_search · 2 companies · funding, headcount
- http_request · PATCH api.hubapi.com/crm/v3/objects/contacts/… · pre-approved by routine
Morning brief — 4 new leads since yesterday 06:00 ET:
- Northwind Logistics (ops lead, 200–500 people) — freight forwarder, recent SOC 2 announcement. Draft: the invoice-processing angle, two lines below.
- Two further leads with company notes and drafts; one address bounced on lookup — flagged, not drafted.
Each contact’s lead status is set to “Brief posted” in HubSpot (pre-approved by this routine); the drafts are in this thread.
google/gemini-flash41k in2.3k out$0.021Configure
How the turn went
A prompt with a job in it, the proxy everywhere, and writes at six in the morning.
- 01
A prompt with a job in it
The routine’s prompt is the brief: what to find, how to research it, what to post. It runs on cron in the scope’s timezone, in a fresh thread, as the person who created it.
- 02
Named tools where they exist, the proxy everywhere
hubspot_searchfrom the HubSpot pack for the contacts;fetch_urlandweb_searchfor the research, through the SSRF guard;http_requestfor the status update, through the proxy with the token injected. - 03
Writes at six in the morning
A routine’s writes are pre-approved by default: a held write would only expire. The person creating it can ask for them held; writes that need an approver still go to one.
- 04
What it costs
The longest turns in the audit table are routines like this one. Each run’s tokens and cost are recorded, and the channel budget pauses it at the ceiling.
What it needs
The setup, in the console.
What it will not do
Enforced outside the model.
The drafts are posted in the thread, not sent; sending was never in the brief.
Fetching the web goes through the SSRF guard: no private, loopback or link-local hosts, no non-HTTP schemes.
Try it
Say it in a channel it is in.
The sentence as it was typed. It works in any channel the bot has been invited to that carries the connection above — no command syntax, no form, and follow-ups in the thread need no mention.
@attest_tag every day at 6am ET, find the leads created in HubSpot yesterday, research each one, and post a brief here
create_routinehubspot_searchweb_searchfetch_url
More in Daily operations
The calendar, the inbox and the handbook — as the person asking.
- Change the meeting, and the invites go out.#design-team · add Sam, Priya and Dan to Tuesday's design review — that occurrence only — and put the agenda in: five-file review
- Your inbox, as you — and never anyone else's.#design-team · get me Dan's last five emails and list who he's been talking to
- The handbook answer, with the page named.#people-ops · what's our policy on carrying leave into next year? check our docs
Bring the channel this would live in.
Sign up, connect the service above in one channel, and type this sentence yourself — or run the same binary on your own infrastructure.