Integrations

Automated Loops

How to set up Coppermind's automated loops -- scheduled briefings, scorecards, audits, and alerts that run on autopilot and post to Slack.


What Are Loops?#

Loops are scheduled automations that run inside Claude on a cron schedule. Each loop gathers data from your clients, email, calendar, and Slack, then posts a formatted summary to your chosen Slack channel.

You don't write any code. You tell Claude two things -- which Slack channel to post to and which channels to monitor -- and Coppermind handles the rest.

17 loops are available across four cadences:

CadenceLoops
DailyMorning Briefing, End-of-Day Wrap, Unanswered Email Nag, Meeting Follow-Up Check
WeeklyMonday Sprint Kickoff, Friday Scorecard, Content Calendar Audit, Client Health Pulse, Pipeline Poke, Team Standup Rollup
MonthlyRock Progress Report, Client Win Harvester, Churn Risk Radar, Brand Voice Drift Check
QuarterlyQuarter Close Summary, Next Quarter Rock Draft, Client Engagement Retrospective

Prerequisites#

Before setting up loops, make sure you have:

  1. Coppermind installed in Claude Desktop (see Installation and Setup)
  2. At least one client mind created with some memories stored
  3. Slack connected -- Claude Desktop needs access to your Slack workspace
  4. Email and calendar connectors connected -- Gmail/Google Calendar, Outlook/Microsoft 365, or another email/calendar MCP

One-Time Setup#

Every loop shares the same two settings. You configure them once and they apply to all loops.

In any Claude conversation, say:

Set up my loops

Claude will ask two questions:

  1. "What Slack channel should your briefing post to?" -- This is where loop output lands. Most CMOs create a private channel like #cmo-daily or #cmo-dashboard.
  1. "Which Slack channels should I monitor for items needing your attention?" -- These are the channels Claude scans for fires, unanswered threads, and team activity. Example: general, leadership, marketing.

That's it. Claude will automatically resolve each channel name to a Slack channel ID and cache it. This means loops skip the slow Slack channel search on every run -- they use the cached ID directly.

Everything else -- your name, role, agency, email, timezone, client list -- is auto-derived from your Coppermind profile.

To verify your settings:

Show my loop preferences

To change them later:

Update my loop preferences -- change the delivery channel to #cmo-ops

Setting Up a Loop#

Loops run as cloud scheduled agents on Anthropic's servers -- not on your laptop. This means they fire reliably even when your computer is off, asleep, or offline.

Automatic Setup (Claude Code)#

If you're using Claude Code (the CLI), Claude can create the cloud triggers for you automatically. After your preferences are configured, say:

Set up my loops

Claude will:

  1. Call loops with action="setup" to get the trigger configurations
  2. Call RemoteTrigger to create each cloud scheduled agent on Anthropic's servers
  3. Report back the trigger IDs and schedules

The triggers are created as cloud agents and run 24/7 regardless of whether your laptop is on.

Manual Setup (Claude Desktop or claude.ai)#

If you're using Claude Desktop or claude.ai, create the triggers manually in the Scheduled panel:

Step 1: Open Scheduled Agents

In Claude Desktop or claude.ai, go to Scheduled (clock icon in the sidebar). Make sure you're creating a cloud trigger, not a local one. Cloud triggers run on Anthropic's servers and stay active 24/7.

Step 2: Create a new trigger

Click New Agent and fill in:

  • Name: The loop name (e.g., "Morning Briefing")
  • Schedule: The UTC cron expression (see the table below)
  • MCP connections: Enable Coppermind CMO, Slack, and whichever email/calendar connectors you use. Set their tools to "allow without asking." A scheduled task runs unattended -- if the tools are left on "ask every time," the run stops on the first tool call (you'll see MCP tool call requires approval in the run log) and nothing posts.
  • Prompt: Paste this text, changing only the loop slug and name:
You are a Coppermind automation agent. Execute a single loop.

1. Find the Coppermind CMO loops tool. Use ToolSearch with
   keyword "+coppermind loops" to find it regardless of
   environment naming.
2. Call loops(action="get", name="morning-briefing")
3. If status is "error", DM the CMO via Slack and stop.
4. If status is "setup_required", DM the CMO: "Your Morning
   Briefing loop needs setup. Open Claude and say 'set up my
   loops'." Stop.
5. If status is "ready", execute the template exactly as written.
   When the template references tool names that don't match your
   environment, use ToolSearch keyword search to find the correct
   tool (e.g. search "+coppermind mind" instead of using
   an exact select).
6. If a tool call fails, note the failure and continue.
7. If you cannot post to Slack, DM the result instead.

Replace morning-briefing with the slug and Morning Briefing with the loop name.

Step 3: Enable

Toggle the trigger on. It runs in the cloud on the cron schedule -- your laptop doesn't need to be open.

Important: Cloud vs Local#

Cloud (recommended)Local
Runs when laptop is closedYesNo
Survives restartsYesNo
MCP connectionsClaude.ai managedLocal config
Where to createScheduled agents panel or loops(action="setup")Settings > Scheduled

Always use cloud triggers for loops. Local triggers only fire when Claude Desktop is running.

Repairing a Broken Scheduled Loop#

If a scheduled loop says Coppermind CMO tools are missing, the scheduled agent does not have the Coppermind connector enabled. This is different from Coppermind working in a normal Claude chat; each scheduled agent needs its own connector access.

Open Scheduled in Claude Desktop or claude.ai, select the broken loop, and check its MCP connections. Enable:

  • Coppermind CMO
  • Slack
  • Your email connector, if the loop reads inbox or sent mail
  • Your calendar connector, if the loop reads meetings
  • monday.com, if that loop uses monday.com

Then replace the scheduled agent prompt with the current short runner prompt from the Manual Setup section above. Do not paste the full loop template into the scheduled agent. The scheduled agent should call loops(action="get", name="morning-briefing") so it always pulls the latest template from Coppermind.

If the scheduled agent UI does not let you edit MCP connections, delete the broken agent and create a new cloud scheduled agent from the current setup instructions.

After repairing it, run the agent once manually. If it still says Coppermind CMO tools are unavailable, reconnect Coppermind from Settings > Connectors, then recreate the scheduled agent.

"MCP tool call requires approval" in the run log#

If the run log shows Streamable HTTP error: Error POSTing to endpoint: MCP tool call requires approval, the scheduled task can see the Coppermind connector but isn't allowed to use its tools without a human clicking "Allow." A scheduled task runs unattended, so there's nobody to approve the prompt and the run stops on the first tool call.

Open the task, find the Coppermind CMO connector, and set its tools to allowed / don't ask (not "ask every time"). If the panel only lets you allow tools individually, allow at least loops plus the tools the loop reads (e.g. search_memory, mind). Then Run now to confirm. If the panel won't let you edit tool permissions, delete the task and recreate it as a remote task, granting the connector's tools when prompted.


Loop Reference#

Use this table to set up each loop. The cron expression is in UTC -- adjust if your timezone offset changes with daylight saving time.

Daily Loops#

LoopSlugSuggested TimeCron (UTC)
Morning Briefingmorning-briefingWeekdays 7am CT0 12 <em> </em> 1-5
End-of-Day Wrapend-of-day-wrapWeekdays 5:30pm CT30 22 <em> </em> 1-5
Unanswered Email Nagunanswered-email-nagWeekdays 11am & 3pm CT0 16,20 <em> </em> 1-5
Meeting Follow-Up Checkmeeting-followup-checkWeekdays every 2h, 9am-5pm CT0 14,16,18,20,22 <em> </em> 1-5

Weekly Loops#

LoopSlugSuggested TimeCron (UTC)
Monday Sprint Kickoffmonday-sprint-kickoffMonday 8am CT0 13 <em> </em> 1
Friday Scorecardfriday-scorecardFriday 4pm CT0 21 <em> </em> 5
Content Calendar Auditcontent-calendar-auditWednesday 9am CT0 14 <em> </em> 3
Client Health Pulseclient-health-pulseThursday 9am CT0 14 <em> </em> 4
Pipeline Pokepipeline-pokeTuesday 9am CT0 14 <em> </em> 2
Team Standup Rollupteam-standup-rollupFriday 3pm CT0 20 <em> </em> 5

Monthly Loops#

LoopSlugSuggested TimeCron (UTC)
Rock Progress Reportrock-progress-report1st of month, 9am CT0 14 1 <em> </em>
Client Win Harvesterclient-win-harvester28th of month, 9am CT0 14 28 <em> </em>
Churn Risk Radarchurn-risk-radar1st of month, 10am CT0 15 1 <em> </em>
Brand Voice Drift Checkbrand-voice-drift-check15th of month, 9am CT0 14 15 <em> </em>

Quarterly Loops#

LoopSlugSuggested TimeCron (UTC)
Quarter Close Summaryquarter-close-summaryLast Mon of quarter, 9am CT0 14 28 3,6,9,12 *
Next Quarter Rock Draftnext-quarter-rock-draft1st Mon of quarter, 9am CT0 14 1 1,4,7,10 *
Client Engagement Retrospectiveclient-engagement-retrospectiveLast Fri of quarter, 10am CT0 15 28 3,6,9,12 *

Don't set up all 17 at once. Start with these three and add more as they prove useful:

  1. Morning Briefing -- your daily dashboard. Covers clients, fires, email, and calendar in one post.
  2. End-of-Day Wrap -- compares your plan to what actually happened. Keeps you honest.
  3. Friday Scorecard -- weekly EOS snapshot. Rocks, sprints, on/off track across all clients.

Once those feel natural, add:

  1. Unanswered Email Nag -- catches client emails falling through the cracks
  2. Client Health Pulse -- weekly early-warning system for cold clients
  3. Monday Sprint Kickoff -- starts the week with clear priorities per client

What Each Loop Does#

Morning Briefing#

Runs every weekday morning. Scans your email, calendar, Slack, and all client minds. Produces a briefing with a "Sharpen the Ax" guide recommendation, Two Dos (the two most important-not-urgent items), fires, per-client status, and team items. Everything links back to the source.

End-of-Day Wrap#

Finds the morning briefing from earlier that day and scores it: which Two Dos got done, which fires resolved, which meetings got follow-ups. Suggests tomorrow's top 3 priorities.

Unanswered Email Nag#

Scans your connected email for client and team emails older than 4 hours with no reply. Filters out newsletters and noise. Posts a ranked list with direct links to each thread.

Meeting Follow-Up Check#

Every 2 hours, checks recent meetings for missing follow-up emails or Slack recaps. Flags overdue ones in red.

Monday Sprint Kickoff#

Pulls each client's current sprint plan and posts the week's deliverables, owners, and due dates. Highlights everything the CMO owns across all clients.

Friday Scorecard#

The EOS weekly snapshot. Rocks progress (% complete, on/off track), sprint delivery stats (done/slipped/carried), and a watch list for next week.

Content Calendar Audit#

Checks what's publishing in the next two weeks, what's overdue, and where there are gaps in the content pipeline across clients.

Client Health Pulse#

Reads engagement signals -- email volume, meeting frequency, sentiment in recent conversations -- and flags any client going cold or showing churn language.

Pipeline Poke#

Reviews your sales pipeline: proposals that went stale, leads without follow-up, and contracts coming up for renewal. Suggests a next action for each.

Team Standup Rollup#

Digests a week of daily standups from Slack into a single summary: who shipped what, who's blocked, who went silent.

Rock Progress Report#

Monthly deep-dive on every rock across every client. Actual vs expected pace, projected finish dates, and specific blockers.

Client Win Harvester#

Surfaces wins worth sharing back to clients: campaign metrics, milestones hit, positive feedback. Drafts a one-line talking point for each.

Churn Risk Radar#

Flags contracts ending in 30/60/90 days and clients with declining engagement. Ranks by severity and suggests a concrete next move.

Brand Voice Drift Check#

Pulls recent published content for each client and compares it against their stored brand voice profile. Catches tone, vocabulary, and messaging drift before clients notice.

Quarter Close Summary#

End-of-quarter closeout: rocks completed vs missed, campaigns shipped, revenue impact, and the top lessons learned across the portfolio.

Next Quarter Rock Draft#

Suggests 3 candidate rocks per client for the upcoming quarter, based on open issues, missed rocks, and trends from memories. Bring these to each client's quarterly planning session.

Client Engagement Retrospective#

Reconstructs the full arc of each client relationship over the quarter: how it started, what changed, and where it's headed. Recommends a posture for next quarter (double down, steady, rebuild, or offboard).


Customizing Loop Defaults#

Each loop has sensible defaults (email lookback windows, word limits, thresholds). To change them:

Update my loop preferences -- set the email nag stale threshold to 6 hours

Under the hood, this calls loops with action="set_preferences" which deep-merges your changes without overwriting other settings.

Common customizations:

SettingDefaultWhat It Controls
slack_lookback_hours18 (morning) / 12 (EOD)How far back to scan Slack
email_lookback1dyour connected email search window
max_words400-900 per loopOutput length cap
stale_threshold_hours4Email nag delay
cold_threshold_days10Client health cold flag
stale_proposal_days7Pipeline stale proposal flag
renewal_lookahead_days60How far ahead to flag renewals

Skipping Client Minds#

Some client minds shouldn't appear in loops -- your personal mind, test client minds, or archived prospects. Add them to your skip list:

Update my loop preferences -- skip minds "Ben Personal" and "Test Client"

Skipped client minds are excluded from all loops automatically.


Troubleshooting#

"setup_required" message in Slack: Your loop preferences aren't configured yet. Open Claude and say "set up my loops."

"MCP tool call requires approval" in the run log: The scheduled task isn't allowed to use the Coppermind tools unattended. Set the connector's tools to "allow without asking." See Repairing a Broken Scheduled Loop above.

Loop runs but nothing posts: Check that Claude has access to your Slack workspace and the delivery channel exists. Private channels require Claude to be invited.

Missing client data: Loops only know what's in Coppermind. If a client is missing from the briefing, make sure they have a client mind created with some memories stored.

Wrong timezone: Cron expressions are in UTC. If your loop fires at the wrong time, adjust the cron expression by your UTC offset. Central Time is UTC-5 (CST) or UTC-6 (CDT).

A section says "data unavailable": One of the data sources failed. The loop continues with whatever it has. If it persists, run a health check.

Want to disable a loop temporarily: Toggle the trigger off in Claude Desktop's Scheduled panel. Your preferences are preserved.

Ready to try this yourself?

Coppermind is free to start and runs inside Claude. Your first meeting prep will convince you.

Try Coppermind Free
Browse all guides →