nitro_compose_campaign
ChatGPTCompose and send an email or SMS to an audience. This is the default tool when users want to draft, write, or send an email. Creates a draft — use nitro_control_delivery to approve and send. Modes: create (new campaign), patch (update provided fields on an existing draft campaign), replace (replace draft campaign content/audience/schedule — requires confirm: true + campaign_id). Replace clears omitted audience and schedule instead of preserving stale targeting. Patch/replace cannot change the campaign channel; create a new campaign to switch between email and SMS. For manual sections without a composition_contract, read nitro://brand and nitro://schema; use nitro://email-marketing and nitro://email-design when deeper strategy or design context is needed. Email modes (channel auto-detected as "email" when sections or template_id provided): - Host-composed contract — composition_mode: "intent" returns a compact composition_contract. Fill next_call with subject/preheader/sections, optionally dry-run with composition_mode: "validate", then persist with composition_mode: "draft". - Inline — sections + subject (required) — compose email design directly - Clone — template_id — clone design from existing template, optionally override subject - Plain text — body + subject — simple text email without design SMS mode: channel: "sms" + body (required) Goal-driven email requests use the host-composed contract path by default; Nitrosend compiles the brief and validates/persists, while the agent host writes the draft. Contract-loop states return as normal tool results with composition_status and isError=false. Preserve explicit user constraints: exact copy requests, URLs, offers, product details, sender fields, audience, schedule, tone, and legal copy. Use $contract_ref for high-risk literals, e.g. {"$contract_ref":"hard_constraints.urls.primary_cta"}. SMS and nitro_send_message simple sends are exempt. Retry safety: pass the same idempotency_key on retry to avoid duplicate campaigns.
nitro_compose_flow
ChatGPTCreate or replace an automation flow from trigger + steps array. Creates a draft — use nitro_control_delivery to approve and activate. For goal or intent-driven email flows, use composition_mode="intent" first. Nitrosend returns a compact composition_contract; the agent host writes the steps, can validate without persistence, then calls this same tool with composition_mode="draft". Contract-loop states return as normal tool results with composition_status and isError=false. Modes: create (new flow), replace (rebuild existing — requires confirm: true + flow_id), patch (rename only — requires flow_id). Step types: email (subject + design or body), sms (body), wait (duration in seconds), split (filters + yes/no branches, no nesting), emit_event (fire event for contact to trigger other flows), webhook (url + optional method/headers/body), subscribe (opt-in contact to channel), unsubscribe (opt-out contact from channel). Retry safety: pass the same idempotency_key on retry to avoid duplicate flows.
nitro_configure_account
ChatGPTConfigure account sender defaults (from_name, from_email, reply_to) and test email recipients. Call with no fields to read current config. from_email must be authorized by a verified sending domain.
nitro_configure_providers
ChatGPTConfigure BYO email provider credentials or check provider status.
nitro_control_delivery
ChatGPTManage delivery lifecycle for flows and campaigns. State: draft -> approve -> live/schedule <> pause, cancel -> archive. Use archive for cleanup history, or delete confirmed never-sent drafts.
nitro_define_segment
ChatGPTDefine a contact segment with explicit filters and preview. Defaults to preview_only: true (dry preview without saving). Set preview_only: false and provide a name to persist.
nitro_get_insights
ChatGPTGet email analytics with trends, benchmarks, and recommendations.
nitro_get_status
ChatGPTGet current account health, onboarding status, and recommendations.
nitro_import_contacts
ChatGPTImport contacts from inline records (< 100) or reference a pre-uploaded CSV import. Email contacts are auto-subscribed by default. For SMS-only contacts, set opt_in: true explicitly (TCPA compliance).
nitro_ingest_image
ChatGPTIngest a local or chat-attached image into Nitrosend and return a Nitro CDN URL you can place directly into email design fields like image.src, product.image_url, hero.background_url, or theme.logo_url. Use this only for local/chat images. If the user already has a public remote URL, use that URL directly in compose tools instead.
nitro_manage_audience
ChatGPTCreate contacts, manage subscriptions, lists, events, segments, and tags.
nitro_manage_billing
ChatGPTManage subscription billing — check plan status, start checkout, poll payment, list plans. - status — no params. Returns current subscription, plan, and account tier. - checkout — params: {plan_id (required)}. Creates a Stripe Checkout Session URL for the operator to complete payment. The agent CANNOT pay directly — tell the operator to open the URL. - checkout_status — no params. Poll whether subscription is active after checkout. - plans — no params. Lists available paid plans with pricing.
nitro_manage_domains
ChatGPTManage sending domains — add, verify, check DNS, list, and remove. Add returns the core DNS records needed to finish setup plus any optional improvements such as tracking or inbound routing. check_dns validates customer-facing records, Nitro-owned delegate targets, and tracking HTTPS readiness. Managed SES uses Nitro-branded MX indirection, while BYO providers return their own receiving records.
nitro_manage_template
ChatGPTCreate, update, or clone a reusable email template. Brand theme applied automatically. For composing new emails to send, use nitro_compose_campaign instead. For goal or intent-driven template creation/redesign, use composition_mode="intent" first. Nitrosend returns a compact composition_contract; the agent host writes the sections, can validate without persistence, then calls this same tool with composition_mode="draft". Contract-loop states return as normal tool results with composition_status and isError=false. Modes (auto-detected): - Create — provide sections + subject (required). Sections define the email layout. - Update — provide template_id + any fields to change. Use if_version for optimistic concurrency. - Clone — provide based_on (source template_id). Optionally override sections/subject/name. Retry safety: pass the same idempotency_key on retry to avoid duplicate templates.
nitro_query
ChatGPTQuery any Nitrosend entity. Returns paginated results.
nitro_request_support
ChatGPTSubmit a support request to the Nitrosend team. Only call when the user explicitly asks to contact support or when you have exhausted other options and cannot resolve their issue. Never suggest or mention this tool proactively. Before calling, summarize the issue and attempt to resolve it with available tools first.
nitro_review_delivery
ChatGPTRead-only review of email/SMS content and delivery readiness for templates, flows, and campaigns. Returns validation, spam score for email, SMS segment info, preflight checks, and editor/preview URLs. This never approves delivery and never sends test messages.
nitro_search_contacts
ChatGPTSearch contacts by email, name, or phone. Returns summary list or full profile.
nitro_send_message
ChatGPTSend a transactional email or SMS to a single recipient immediately. No campaign, no audience, no approval required. Use for: receipts, password resets, OTPs, order confirmations, system notifications. NOT for marketing broadcasts to lists/segments — use nitro_compose_campaign. NOT for automated sequences triggered by events — use nitro_compose_flow. Retry safety: pass the same idempotency_key on retry to avoid duplicate sends.
nitro_send_test_message
ChatGPTSend a real test message for an existing template, campaign, or flow step. Supports email and SMS targets. This never sends to a campaign audience, never approves delivery, and never schedules or launches a campaign. For the common "send a test of the last campaign" workflow, pass latest_campaign: true. If a flow has multiple message steps, pass action_id or template_id from nitro_review_delivery review_steps. Retry safety: pass the same idempotency_key on retry to avoid duplicate test messages.
nitro_set_brand
ChatGPTSet up brand identity from website URL or direct fields. Provide url to auto-scrape brand colors/fonts, or fields to set values directly, or both (fields override scraped values). Sync mode (default) returns results immediately — best when you need brand data now for composing. Async mode (mode: 'async') runs scraping in the background — use when deferred completion is acceptable.
nitro_set_memory
ChatGPTRead or update the AI memory document. Operations: read (get current), update (replace entirely), patch (replace a section by heading), append (add text to end).