Skip to main content
Glama

fetch_drip_enrollments

Read-onlyIdempotent

List the contacts enrolled in a drip campaign: where each one is in the sequence, what is scheduled next, and why anyone left. Defaults to 25 per page, maximum 100. Rows are passed through exactly as the API sends them, in PascalCase. Each row carries SourceType — participant, amoe, lead or subscriber — so read it before treating the id as a participant. This endpoint NEVER returns email addresses or phone numbers: you cannot look a contact up by address here, and source_token is the only handle you get. ExitReason is a closed vocabulary — unsubscribed, suppressed, no_consent, removed, clicked, won, invalid, undeliverable or over_quota: quote the value, do not paraphrase it into a cause you were not given. NextStep is 1-BASED — verified against a live enrolment whose step at Index 0 had been sent and whose NextStep read 2 — while Steps[].Index in get_drip and in fetch_drip_report is 0-based, so NextStep N is the step at Index N-1. A row also carries EnrollmentToken, Status, EnrolledAt, LastSentAt, NextStepAt and EndedAt; ExitReason is null while the contact is still in the sequence, not absent, so treat null as "has not left" rather than as missing data. Ended enrolments are kept 180 days and then disappear: an absent row means "not in the last 180 days", NEVER "this contact was never enrolled". Enrollment rows identify people; report them to the account owner and do not copy them elsewhere. Account-gated, and the two sides of this category are gated differently: the reads need only the Drip Marketing module, while pause_drip, resume_drip and remove_drip_contact need Drip Marketing plus Send Message. The gate was NOT observed on the test account, so on a 403 read back which module the API named instead of guessing. Drips are created, edited, activated and deleted ONLY in the Sweeppea app: those actions run a launch checklist (template, sender, 10DLC registration, content screening, plan allowance) that this API deliberately does not reproduce. There is no create endpoint and that is by design, not a gap — the API leaves these writes out on purpose (confirmed by the API maintainer, October 2026) — say so plainly instead of hunting for a workaround, and never propose or invent a tool for it.

Input Schema

NameRequiredDescriptionDefault
pageNoPage number, starting at 1. Defaults to 1
statusNoEnrollment status to filter by. Note this list differs from the drip statuses used by fetch_drips
drip_tokenYesThe drip campaign token (UUID v4)
source_tokenNoOnly this contact. The contact: a ParticipantToken, OR a lead / subscriber id. NOT always a UUID — pass it through exactly as you received it, and read SourceType in fetch_drip_enrollments to know which kind it is. Never feed it to get_participant without checking SourceType first.
items_per_pageNoResults per page, 1 to 100. Defaults to 25

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (readOnly/idempotent/non-destructive), yet the description adds substantial non-obvious behavior: pagination defaults/max, raw PascalCase passthrough, SourceType enumeration, no email/phone returned, ExitReason closed vocabulary, 1-based NextStep vs 0-based Index, null-vs-absent ExitReason, 180-day retention, and the account-gating split. It also flags a 403/verification caveat rather than guessing, and records that the absence of a create endpoint is by design.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded, but the body sprawls into privacy guidance, gating details, and meta-commentary (maintainer confirmation, launch-checklist rationale) that, while defensible, are dense and packed without hierarchy. Most sentences earn their place, yet the density is closer to a specification than a description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the entire return-value burden and does so thoroughly: row field names, casing, the enumeration of SourceType and ExitReason, null semantics, retention window, and pagination. An agent has everything needed to call and interpret the result correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the structured baseline is 3, but the description adds real meaning the schema cannot: source_token is the only handle, its kind must be inferred from SourceType, and it must be passed through verbatim and never fed to get_participant unchecked. That is value beyond the schema's own field text.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb (List) and resource (contacts enrolled in a drip campaign) plus the three things returned: sequence position, next scheduled step, and exit reason. It distinguishes itself from siblings by explicitly naming get_drip and fetch_drip_report (0-based indexing) and fetch_drips (different status vocabulary).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Strong context on when this fits: you cannot look up by email/phone here, source_token is the only handle, and you must read SourceType before treating an id as a participant. It also scopes the write actions (pause/resume/remove) to their own gating. It stops short of an explicit 'use this instead of fetch_drip_report when…' routing statement, so it is clear context rather than full alternative selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources