hs_list_marketing_emails
Retrieve marketing emails from HubSpot with optional filtering by publication state to organize and review drafts, scheduled, published, or archived emails.
Instructions
List marketing emails, optionally filtered by publication state (DRAFT, SCHEDULED, PUBLISHED, ARCHIVED).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| state | No | Filter by publication state |
Implementation Reference
- src/tools/emails.ts:30-34 (schema)Zod schema defining input for hs_list_marketing_emails: optional limit (1-100, default 20) and optional state filter (DRAFT, SCHEDULED, PUBLISHED, ARCHIVED).
export const ListMarketingEmailsSchema = z.object({ limit: z.number().int().min(1).max(100).default(20).optional(), state: z.enum(["DRAFT", "SCHEDULED", "PUBLISHED", "ARCHIVED"]).optional() .describe("Filter by publication state"), }); - src/tools/emails.ts:36-44 (handler)Handler function listMarketingEmails that calls the HubSpot marketing-emails API with limit, offset, orderBy, and optional state filter, returning the list of marketing emails.
export async function listMarketingEmails(args: z.infer<typeof ListMarketingEmailsSchema>) { const params: Record<string, string | number | boolean> = { limit: args.limit ?? 20, offset: 0, orderBy: "-updatedAt", }; if (args.state) params.state = args.state; return hubspot("/marketing-emails/v1/emails", "GET", undefined, params); } - src/index.ts:48-48 (registration)Import of ListMarketingEmailsSchema and listMarketingEmails from ./tools/emails.ts.
ListMarketingEmailsSchema, listMarketingEmails, - src/index.ts:232-237 (registration)Registration of the 'hs_list_marketing_emails' tool on the MCP server with its schema and handler wrapper.
server.tool( "hs_list_marketing_emails", "List marketing emails, optionally filtered by publication state (DRAFT, SCHEDULED, PUBLISHED, ARCHIVED).", ListMarketingEmailsSchema.shape, async (args) => { try { return ok(await listMarketingEmails(args)); } catch (e) { return err(e); } }, );