{"slug": "how-to-run-a-team-of-ai-marketing-agents-from-slack", "title": "How to run a team of AI marketing agents from Slack", "summary": "Vercel Labs has released an open-source, MIT-licensed template for running a team of AI marketing agents from Slack. The template, built on the eve agent framework and deployed on Vercel, features five specialist agents coordinated by a team lead that delegates tasks and includes human approval gates for irreversible actions. The project emphasizes context-free briefs, one-way dependencies, and honest reporting of unverifiable data.", "body_md": "AI marketing agents work best as a team of specialists, not one generalist. The [marketing team eve template](https://github.com/vercel-labs/marketing-team-eve-template) is an open-source, MIT-licensed project from vercel-labs that gives you five specialist agents behind a single team lead. You message the lead in Slack, it routes your request to the right specialist, and the result comes back as a Notion page, a Typefully draft, or a Resend campaign.\n\nThis article explains what the template does, how the multi-agent architecture works, and how to deploy it yourself.\n\nIt's a team of AI agents built on [eve](https://eve.dev), an agent framework, and deployed on Vercel. The team covers five marketing functions:\n\nYou don't talk to the specialists directly. A team lead reads your request, briefs one specialist with everything it needs, and hands back what it produced.\n\nThe lead delegates. It never writes the deliverable itself.\n\nThis matters because each specialist runs in a fresh session with no conversation history and no inherited tools or skills. The lead can't rely on shared context, so its main job is writing a complete brief. That constraint turns out to be a feature: a brief that works for a context-free agent is a brief a human contractor could work from too.\n\nThe team is one level deep by design. Specialists find their own evidence with web search and edit their own drafts against a written rubric, rather than handing work to further sub-subagents. Each handoff costs a full context transfer, so the template keeps handoffs to one.\n\nThe only case where two specialists chain is a newsletter: the content marketer writes the prose, then the email specialist reworks it for the inbox and sends it through Resend.\n\nOne document. The product marketer authors a brand context document that every other specialist reads at the start of every task. The dependency runs one way, and a single specialist owns the document, so when the team's output drifts off-message there's exactly one place to fix it.\n\nYes. Every irreversible action pauses for an approve or deny decision, rendered as a button in Slack or the terminal UI. That includes:\n\nDrafting flows through without gates, because a draft can be thrown away. Sending can't.\n\nThe email agent goes one step further. Its Resend connection uses an allow list that cuts roughly 85 available tools down to 47, so account administration like API key creation and domain changes is never reachable, gated or not. Sends are also attributed per user: whoever approves a campaign is the person Resend records as the sender.\n\nTwo specialists are built to say what they couldn't check rather than guess. The SEO agent has no crawler, rank tracker, or Search Console access, so its audit checklist marks every item as verifiable by fetch or not verifiable at all. The email agent can't see inbox placement or domain reputation, and its deliverability checklist does the same.\n\nIf you've watched an AI agent invent a confident answer where it had no data, you'll recognize why this is the most useful pattern in the template.\n\nThere's one static credential in the whole project (the Typefully API key). Notion, Resend, and Slack all authenticate through Vercel Connect, so you manage connector IDs instead of tokens.\n\nThe repo's Deploy button provisions the Notion, Resend, and Slack connectors, a Blob store, and prompts for the Typefully key. One manual step remains: verify a sending domain in the Resend dashboard, since the agent can pick from your verified domains but can't create one or edit DNS for you.\n\nFor local development:\n\n```\nvercel link\nvercel env pull\npnpm dev\n```\n\nThen talk to the lead in the dev TUI. Approval gates render there too, so you can confirm a send actually stops before it goes out.\n\nIf you work in Claude Code or Cursor, the README includes a prompt you can paste that walks your coding agent through the whole setup.\n\nAdding a specialist means adding a directory under `agent/subagents/`\n\n. There's no registry file: a tool's name is its filename, and eve discovers everything at build time. Each specialist's craft lives in its `instructions.md`\n\nand a set of skills that load on demand, so changing how the content marketer writes blog posts means editing a markdown file, not redeploying a pipeline.\n\nSpecialists don't have to live in the repo either. eve's remote agents let the lead delegate to an agent in its own deployment, with deployment-to-deployment auth handled by OIDC instead of a shared secret:\n\n``` js\n// agent/subagents/paid_ads.ts\nimport { defineRemoteAgent } from \"eve\";\nimport { vercelOidc } from \"eve/agents/auth\";\n\nexport default defineRemoteAgent({\n  url: () => process.env.PAID_ADS_AGENT_URL,\n  description:\n    \"Plan and write paid search and social ads. \" +\n    \"Pass the campaign goal, audience, budget, and brand constraints.\",\n  auth: vercelOidc(),\n});\n```\n\nThe lead picks the remote specialist up from its `description`\n\nthe same way it does the local ones.\n\nThe approval gates, banned word lists, and the email agent's tool allow list are all plain configuration in the repo, documented in `CUSTOMIZING.md`\n\n.\n\nThe template is open source under the MIT license:\n\n**Repo**: [github.com/vercel-labs/marketing-team-eve-template](https://github.com/vercel-labs/marketing-team-eve-template)\n\n**Guide**: [Run a marketing team from Slack with eve](https://vercel.com/kb/guide/marketing-team-eve)\n\n**Framework docs**: [eve.dev/docs](https://eve.dev/docs/introduction)\n\nEven if you never ship marketing content with it, the patterns are worth reading: a lead that briefs instead of writes, one owned document as shared state, approval gates on anything irreversible, and agents that report what they couldn't verify.", "url": "https://wpnews.pro/news/how-to-run-a-team-of-ai-marketing-agents-from-slack", "canonical_source": "https://dev.to/bensabic/how-to-run-a-team-of-ai-marketing-agents-from-slack-plm", "published_at": "2026-08-03 01:51:17+00:00", "updated_at": "2026-08-03 02:12:48.493027+00:00", "lang": "en", "topics": ["ai-agents", "developer-tools", "generative-ai"], "entities": ["Vercel Labs", "eve", "Slack", "Notion", "Typefully", "Resend", "Vercel Connect"], "alternates": {"html": "https://wpnews.pro/news/how-to-run-a-team-of-ai-marketing-agents-from-slack", "markdown": "https://wpnews.pro/news/how-to-run-a-team-of-ai-marketing-agents-from-slack.md", "text": "https://wpnews.pro/news/how-to-run-a-team-of-ai-marketing-agents-from-slack.txt", "jsonld": "https://wpnews.pro/news/how-to-run-a-team-of-ai-marketing-agents-from-slack.jsonld"}}