On this page
NotiQ email agent setup
One-prompt runbook for Claude, ChatGPT, and Cursor. Scope: email outreach only. NotiQ has no LinkedIn tools — do not invent any.
1. Connect the MCP first
| Client | Auth | Notes |
|---|---|---|
| Claude.ai / ChatGPT | MCP OAuth. Click Connect, then paste your sk_… key on the consent page. | Leave OAuth Client ID / Secret empty (they are not your API key). Never paste the key into chat. |
| Cursor | Dashboard API key as X-API-Key in mcp.json. | Use a separate key from the one OAuth minted. Never rotate or reuse the MCP OAuth key. |
MCP endpoint: https://mcp.notiq.io. The dashboard /api-mcp page shows the exact URL and a copy-ready mcp.json.
The agent cannot create API keys, change billing, change passwords, manage team seats, or edit white-label settings through MCP.
2. The one prompt
Paste this into Claude, ChatGPT, or Cursor once the MCP is connected:
Set up NotiQ email outreach for me using the NotiQ MCP tools only.
Runbook: https://docs.notiq.io/agent-setup
Steps, in order. Stop and ask me whenever a step needs my input:
1. get_setup_status. Report what is missing (mailbox, template, campaign, credits).
2. list_accounts. If no usable mailbox: create_mailbox_connect_link with mailboxKind one of gmail, outlook, imap, give me the link, wait until I say connected, then list_accounts again.
3. Ask me for ICP (category + location) and lead count if missing. get_credits if needed. create_campaign with userQuery + full numberOfSearch. wait_for_campaign_leads until READY_TO_SEND with extensionStatus null (resume on time_budget). If I already have a campaign, use that instead.
4. create_template (subject, body, signature). Show me the draft first.
5. assign_template. If the campaign is in progress, tell me instead of retrying.
6. preview_lead on one lead. Show me the preview.
7. Summarize mailbox, template, campaign, lead count. Ask for my explicit OK.
8. Only after I confirm, start_campaign. It sends real email.
Rules: email only (no LinkedIn). Never ask me to paste an API key in chat. Do not call tools that are not in tools/list. Do not shrink numberOfSearch for MCP convenience.
3. Step-by-step flow
| # | Tool | Purpose | Gate |
|---|---|---|---|
| 1 | get_setup_status | Readiness snapshot | None |
| 2 | list_accounts | Mailboxes + daily usage | ≥1 healthy mailbox |
| 3 | create_mailbox_connect_link | Browser connect URL | Only if no usable mailbox |
| 4 | create_campaign + wait_for_campaign_leads | Maps search with full numberOfSearch; wait until READY_TO_SEND with extensionStatus null | Or reuse existing campaign |
| 5 | create_template | Email agent copy | Show draft first |
| 6 | assign_template | Attach agent | 409 while campaign in progress |
| 7 | preview_lead | Dry-run one email | Show before ask-to-start |
| 8 | start_campaign | Start/resume sending | Explicit user confirmation |
Mailbox kinds
create_mailbox_connect_link requires mailboxKind — exactly one of: gmail · outlook · imap.
The user finishes the connection in the browser. The agent never handles mailbox passwords or OAuth tokens.
Maps discovery wait
wait_for_campaign_leads is MCP-only. It polls GET /campaigns/:id until discovery is ready (READY_TO_SEND / already sending / paused / done) and extensionStatus is null. It keeps polling while the campaign is still discovering or while extensionStatus is "FINDING_LEADS". On time_budget, resume with the same campaignId — do not create a second campaign. Optional minLeads is bounded; default readiness is by status + extension, not a fixed lead count. Discovery does not send email; start_campaign still needs explicit confirmation. Use the user’s full requested numberOfSearch (credit-bound) — do not shrink it for MCP convenience.
Template fields
Email subject, body, and signature only. LinkedIn invite-note fields are not part of the public template write. Template updates (update_template) are echo-all: call get_template first, then send the full writable set.
4. Safety rules
- Confirm before
start_campaign,send_message,delete_leads_batch,delete_template,delete_campaign,delete_lead,delete_account, and exclude-deskremove_*. - Full Auto agent knowledge and asset uploads are dashboard-only.
- If a tool is absent from
tools/list, tell the user the MCP build is behind. Do not invent tool names. - If
get_setup_statusreports a blocker the agent cannot fix (billing, plan, or key), send the user to the dashboard. - Overview goal write value is
Meeting booked(not “Meetings”).
5. Troubleshooting
| Symptom | Fix |
|---|---|
| Claude connector fails at Connect | Leave Advanced OAuth Client ID / Secret empty. Paste only the sk_… key on the consent page. |
| Cursor returns 401 | Check headers.X-API-Key in mcp.json. Use a dashboard key, not the MCP OAuth key. |
assign_template returns 409 | The campaign is in progress. Pause it or pick another campaign. |
list_accounts empty after connecting | Re-run list_accounts. If still empty, mint a new connect link. |
wait_for_campaign_leads returns time_budget | Call again with the same campaignId until READY_TO_SEND. |
Campaign is READY_TO_SEND but extensionStatus is FINDING_LEADS | “Add more leads” still running — keep waiting until extensionStatus is null. |
Tool missing from tools/list | Production MCP may not be updated yet — ask the workspace owner. |