assess_sequence_deliverability
ChatGPTAssess the saved email content in a Mixmax sequence for deliverability risks. The first call queues an asynchronous assessment. If it returns queued or running, wait briefly and call again with the returned assessmentId. Returns a narrative plus structured findings attributed to sequence stages and A/B variants.
calls_read
ChatGPTRead your phone/dialer calls placed with the Mixmax Dialer (Twilio) — NOT meeting recordings; use the meetings tool (get_meeting_transcript) for those. Read-only, and strictly your own calls. Actions: - list_calls: your dialed calls, newest first. Filter with hasRecording (true/false). Results come in pages of at most 25 rows: when a response has hasNext: true, call again with next set to the returned cursor, verbatim; judge the end by hasNext, never by row count, and never invent a cursor. - get_call: one call's metadata (timing, outcome, duration, numbers, CRM linkage, whether a recording exists) by callId from a list_calls row. - get_call_transcript: the diarized transcript (speaker turns: name, message, timestamp) for a call by callId, sliced with skip/limit (default 100, max 200 turns per page); judge the end by pagination.hasMore. A transcript may still be generating (queued — retry shortly) and transcripts are retained for 30 days.
confirm_sequence_activation
ChatGPTActivate the recipients from the activation review currently shown in the Mixmax card. The card calls this tool after the user presses Activate. It revalidates the review and refuses if recipients, capacity, or timing changed.
list_reminders
ChatGPTList the authenticated Mixmax seller's ACTIVE follow-up reminders. Read-only. Action: - list_reminders: list your upcoming reminders. Each row has reminderId (pass it to edit_reminder / delete_reminder), contact (the recipients), subject (thread subject), triggerType (noReply | notRead | regardless), and scheduledDate (ISO-8601, when it fires). Paginated via limit + next. Scope: ACTIVE / upcoming reminders only — those still scheduled to fire. It EXCLUDES reminders that have already fired or been cancelled/completed, and excludes AI smart-followups. Owner-only: you only ever see your OWN reminders. Pagination: an empty results page can still return a "next" cursor — keep paging with it; an empty page does NOT mean you have no reminders.
live_feed
ChatGPTRead the Mixmax Live Feed — real-time tracked-email engagement activity. Read-only. Actions: - get_live_feed: List recent engagement activity across your tracked emails. Filter with a live-feed search string (query), e.g. "opened:last7days from:acme.com". Use this to answer "who engaged recently" / "what happened with my outreach". - get_message_events: Get the chronological engagement timeline (opens, clicks, replies) for a single message (messageId) OR for a contact (contactEmail). Exactly one of the two is required. Paging (both actions): results come in pages of at most 25 rows. When a response has hasNext: true, call the same action again with next set to the returned cursor. Judge the end by hasNext, never by row count: a full page can be the last one, and the last get_message_events page can be empty. Stop only when hasNext is false. The feed is live: a row that gets new engagement after you have passed it moves to the top of the feed and is not revisited by the current walk, so each page reflects activity as of that call. If you re-walk from the start, dedupe by messageId. get_live_feed returns stats on the first page only; they describe the whole query, not the page (stats.sent is the total number of matching messages). Keep the default limit of 25 and narrow long walks with a dated query such as "sent:last30days". If a call times out or fails with retryable: true, retry the same cursor at most once, then report the error. Never restart from page 1 and never invent a cursor.
meetings
ChatGPTQuery Mixmax meetings and calendar data. Actions: get_event, search_events, find_event_by_meet_id, get_calendar, get_meeting_prep, list_meeting_preps, get_meeting_summary, search_meeting_summaries, get_meeting_transcript, get_meeting_assistant_settings, list_meeting_types, get_admin_copilot_settings
messages
ChatGPTSend, schedule, list, and cancel emails as the authenticated Mixmax seller, with open/link/file tracking ON by default. Actions: send (now); schedule (future — pass scheduledAt as ISO-8601 with a timezone offset, e.g. 2026-06-10T09:00:00-07:00); list_scheduled (your not-yet-sent scheduled emails); unschedule (cancel one by messageId from a prior list_scheduled). send/schedule send a REAL email — not a draft. Optionally attach an interactive poll (clickable multiple-choice) to a send/schedule via the poll param. Disable a tracking kind via trackingEnabled / linkTrackingEnabled / fileTrackingEnabled = false. To read inbox threads/messages, use the read-only emails surface.
mixmax_info
ChatGPTGet information about Mixmax
preview_sequence_activation
ChatGPTReview how pending recipients will be distributed across sending days before activating a Mixmax sequence. Shows daily capacity already used by other sequences, weekend/holiday blocks, and recipients held by the monthly limit. This call never activates recipients. Use it before every activation.
reminders_write
ChatGPTCreate, edit, and delete the authenticated Mixmax seller's OWN follow-up reminders. Actions: - create_reminder: schedule a follow-up reminder on an email thread. Required: trigger (noReply | notRead | regardless), date (epoch milliseconds, in the future), service (gmail | outlook), and at least one of serviceThreadId / serviceMessageId / mixmaxMessageId. notRead REQUIRES mixmaxMessageId. Optional: threadSubject, description, archiveThread. Returns the created reminder including its reminderId (use it to edit_reminder / delete_reminder). - edit_reminder: change an UPCOMING reminder by reminderId. Editable: date, description. (If the reminder has already fired or been dismissed, nothing changes.) - delete_reminder: permanently remove an upcoming reminder by reminderId. DESTRUCTIVE and irreversible (no undo). Owner-only: you can only manage your OWN reminders. create is at-least-once (no idempotency) — if a create times out, do NOT retry blindly; verify with list_reminders. Get a reminderId from list_reminders.
sequences
ChatGPTQuery and inspect Mixmax email sequences. Sequences are automated multi-touch email campaigns. Actions: - list_sequences: List your sequences. Filter by name or folder. - get_sequence: Get a specific sequence with its stages (subject lines, delays, step order) and recipient counts. - get_sequence_insights: Get performance analytics for a sequence with per-stage open, click, reply, and bounce rates. Useful for comparing stage performance, identifying drop-off points, and optimizing outreach. - find_contact_in_sequences: Check if a contact email is enrolled in any of your sequences. - get_daily_send_count: Get how many sequence emails you have sent today and your daily limit. - validate_sequence: Check if a sequence is valid and ready to launch.
sequences_read
ChatGPTQuery Mixmax sequences: list, fetch, insights, contact lookup, daily send count, and validate. Also list_folders (your sequence folders, with a sequence count each). Read-only. Responses carry an appUrl linking to the sequence in Mixmax — include it when you mention a sequence so the user can open it. A/B testing sequences hold several variants of each step content, and get_sequence reports them: stageContentModel on the sequence says whether it is one, and abTest on a step lists its variants with their ids, names, active state and content. get_sequence_insights reports each variant results under its step, plus an unattributed bucket for people who were already on the sequence when the test started and so never got a variant; a step totals exceed the sum of its variants by exactly that bucket, which is expected rather than an error. get_recipient_details shows which variant one person was given and how it was decided; get_recipient is a lighter, metadata-only enrolment read with no per-stage or variant data. list_recipients lists the people on a sequence but defaults to only the ones you enrolled, so pass enrolledBy "all" when asked who is on it.
sequences_write
ChatGPTCreate, modify, enrol, activate, pause, clone, and archive Mixmax sequences. Actions: create_sequence (draft-only); apply_sequence_operations (stage-addressed update/remove/add diff); enroll_recipients (add recipients as DRAFTS, or activate immediately where the activation-review rollout is off); activate_sequence (requires the confirmationToken from preview_sequence_activation and the same reviewed timing when activation review is enabled); pause_sequence (bulk-pause active recipients); clone_sequence (duplicate an existing sequence); archive_sequence (soft-delete, reversible via the Mixmax UI); remove_recipients (take specific people OFF a sequence so they get no further steps — called "exit" in the Mixmax UI. TWO-PHASE: the first call removes nobody and returns a preview plus a confirmationToken; re-run with that token only after the user explicitly agrees. Not the same as pause_sequence, and NOT archive_sequence, which affects everyone on the campaign); create_folder (make a sequence folder); move_to_folder (file 1-25 sequences into a folder BY ID or exact name — this both files an unfiled sequence and MOVES a filed one, since a sequence lives in at most one folder; an ambiguous folder name is refused with candidates rather than guessed). All actions are lever-gated. Responses carry an appUrl linking to the sequence in Mixmax — include it when you mention a sequence so the user can open it. A/B testing sequences hold several variants of each step content, and Mixmax splits recipients between them. On those sequences the subject, body and description on the step itself are maintained by Mixmax from the first active variant and are read-only, so apply_sequence_operations can still change timing, names and settings but cannot change the content; that is refused, and the reason returned says to edit the variant instead. Do not change the type of a step on an A/B sequence that is already running, because doing so discards every variant on that step along with the results they have collected. Variant actions: add_variant, update_variant, activate_variant, deactivate_variant, select_winner (keeps one variant and switches off the rest, ending the test on that step), and delete_variant. They all take stageId, and all but add_variant take variantId. delete_variant is permanent and is refused once the variant has sent to anyone, so confirm with the user before calling it.
tasks_read
ChatGPTQuery your Mixmax tasks (personal action items — todos, calls, LinkedIn touches): list_tasks, get_task. Read-only. Tasks are NOT sequences/campaigns and NOT calendar meetings.
tasks_write
ChatGPTCreate and manage your Mixmax tasks (personal action items): create_task (todo | call | linkedin — NOT email; to SEND an email use the messages tool), update_task, complete_task, delete_task. create is at-least-once (a retry makes a second task). All actions are lever-gated.