@@@ @@@
@@ @@ @@ #
@@ @@ @@ @@
@# @@ @@ #@
@= @@ @@ =@
@@. @@ @@ -@@
@@ @@ @@ @@
@@ @@@@ @@
@@ @ @@
@@ @@
@@@@ %# @@@@
@%...* =@@. =...@@
@@=*#....@@ @@....#++@@
@@@-.:=.*#=.@@ @%.=*+.==.=@@@
@@*++=..+.+:*..:@@ @@@::.#:---..==++@@
%:+..=..+--+.*+=*.@@ @%::#++.*-.+..=..=:#@
@@@@@+..#+.@@.#...%@ @%...*.@@.*#..+@@@@@
@=.....-..%..:*=*.#@ @#.+=*:..%..:.....=@
@@@@%.*=:*.@.=.@*@@ @@*@:=.@.*:=+.@@@@@
@..*.@.+.=-.@ @.=..*.%.*..@
@@@..=.@@@@@ @@@@@.=..@@@
@@@@@ @@@@@┌┬┐┌─┐┌─┐┬─┐┌─┐┌┬┐┌─┐┬─┐ ││││ │├─┘├┤ ├┬┘├─┤ │ │ │├┬┘ ┴ ┴└─┘┴ └─┘┴└─┴ ┴ ┴ └─┘┴└─
Marketing Operations AI Agent
Open Source · github.com/joe-reitz/oss-moperator
mOperator is an open-source AI agent that connects your marketing operations tools through a single Slack interface. Ask questions in plain English — mOperator figures out which tools to call, runs the queries, and responds in your thread.
Built on Next.js, Vercel AI SDK, and Vercel AI Gateway. Deploy to Vercel in minutes. Add your own integrations with a few prompts or lines of code.
# Clone the repo
git clone https://github.com/joe-reitz/oss-moperator.git# Install dependencies
cd oss-moperator && npm install# Copy environment template
cp .env.example .env.local# Add your API keys to .env.local (see setup guides below)
open .env.local# Start the dev server
npm run dev# Or test via the CLI
npm run cli# ─── AI Model (required — pick one) ─────────────────────────── # Option A: Vercel AI Gateway (recommended — one key, any model) AI_GATEWAY_API_KEY= # Your Vercel AI Gateway key # Option B: Direct API key (simpler, single provider) # ANTHROPIC_API_KEY= # From console.anthropic.com # OPENAI_API_KEY= # From platform.openai.com AI_PROVIDER=anthropic # "anthropic" or "openai" # ─── Slack Bot (required) ──────────────────────────────────── SLACK_BOT_TOKEN= # xoxb-your-bot-token SLACK_BOT_USER_ID= # The bot's Slack user ID # ─── Authorized Users & Approvals ──────────────────────────── AUTHORIZED_USER_EMAILS= # Comma-separated emails # SLACK_APPROVER_GROUP_ID= # Slack user group ID # ─── Redis (required for approvals) ───────────────────────── # UPSTASH_REDIS_REST_URL= # UPSTASH_REDIS_REST_TOKEN= # ─── Salesforce (optional) ─────────────────────────────────── SALESFORCE_CLIENT_ID= SALESFORCE_CLIENT_SECRET= SALESFORCE_ACCESS_TOKEN= SALESFORCE_INSTANCE_URL= # ─── HubSpot (optional) ───────────────────────────────────── HUBSPOT_API_TOKEN= # Private App access token # ─── Marketo (optional) ───────────────────────────────────── MARKETO_CLIENT_ID= MARKETO_CLIENT_SECRET= MARKETO_REST_ENDPOINT= # e.g., https://123-ABC-456.mktorest.com # ─── Project Management (optional) ────────────────────────── LINEAR_API_KEY= LINEAR_TEAM_NAME=ENG # ─── GitHub (optional) ────────────────────────────────────── GITHUB_TOKEN= # Personal access token GITHUB_REPO=owner/repo # e.g., acme/marketing-site
Create a Vercel account and deploy mOperator with one click. Free tier is all you need.
Connect mOperator to an AI model (Claude or GPT-4o). Use AI Gateway or plug in your own API key.
Set up a Slack bot so your team can talk to mOperator with @mentions and slash commands.
Query campaigns, contacts, and leads. Update records and export CSV — all from Slack.
Search contacts, companies, and deals. Manage lists and CRM records from Slack.
Search leads, manage static lists, trigger campaigns, and view programs from Slack.
File bugs and feature requests from Slack to Linear, Asana, Monday.com, or your PM tool of choice.
View commits, generate release notes, and see what shipped this week.
mOperator is designed to be extended. The real power comes from building your own integrations — small modules that teach mOperator about your internal tools and APIs.
Upload a CSV to Slack, have mOperator parse it, validate emails, and import contacts into your CRM or MAP automatically.
Connect mOperator to your internal docs so it understands your field mappings, lifecycle stages, and scoring models.
Build a module that checks campaign naming conventions, UTM parameters, and audience sizing before launch.
Connect your BI tool and generate weekly marketing reports posted to Slack on a schedule.
@mOperator What campaigns are active?@mOperator Show me all contacts at Acme Corp@mOperator Export all leads as CSV@mOperator What shipped this week?/moperator bug Dashboard spinner never stops@mOperator File a feature request: add dark mode to reportsCLI (npm run cli) Slack (@mOperator)
| |
v v
POST /api/agent POST /api/slack
| |
+----------+-----------+
|
v
AI SDK (Claude / GPT-4o)
|
+-- Tools (auto-discovered from integrations):
+-- Salesforce (if configured)
+-- HubSpot (if configured)
+-- Marketo (if configured)
+-- Project Management (if configured)
+-- GitHub (if configured)
+-- Your custom tools