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

ClientAuthNotes
Claude.ai / ChatGPTMCP 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.
CursorDashboard 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

#ToolPurposeGate
1get_setup_statusReadiness snapshotNone
2list_accountsMailboxes + daily usage≥1 healthy mailbox
3create_mailbox_connect_linkBrowser connect URLOnly if no usable mailbox
4create_campaign + wait_for_campaign_leadsMaps search with full numberOfSearch; wait until READY_TO_SEND with extensionStatus nullOr reuse existing campaign
5create_templateEmail agent copyShow draft first
6assign_templateAttach agent409 while campaign in progress
7preview_leadDry-run one emailShow before ask-to-start
8start_campaignStart/resume sendingExplicit 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-desk remove_*.
  • 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_status reports 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

SymptomFix
Claude connector fails at ConnectLeave Advanced OAuth Client ID / Secret empty. Paste only the sk_… key on the consent page.
Cursor returns 401Check headers.X-API-Key in mcp.json. Use a dashboard key, not the MCP OAuth key.
assign_template returns 409The campaign is in progress. Pause it or pick another campaign.
list_accounts empty after connectingRe-run list_accounts. If still empty, mint a new connect link.
wait_for_campaign_leads returns time_budgetCall 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/listProduction MCP may not be updated yet — ask the workspace owner.