Skip to main content

AI-proposed segments and ad-hoc exports

These two operations serve the campaign desk side of the contacts module — the screen where marketers shape an audience by hand or by prompt and take the rows out. Use the autopilot to translate a natural-language prompt into rules plus a live match-count preview in one round-trip; use the export to pull an unsaved FilterAst into a CSV without persisting anything. Build from a description. POST /api/v1/contacts/segments/autopilot returns operator (the boolean the LLM chose), rules (the flat list the dashboard renders), filters (the normalized FilterAst the segmentation engine consumes — so the following “Create” click needs no second translation), and preview (match_count + sample_contacts). The Node SDK has no typed helper for this surface; use the generic request() escape hatch shown below — it keeps the { data, meta } envelope identical. Request
The proposed rules are constrained to the segmentation engine’s allowlisted fields and engine-dry-run validated before the preview, so a 422 means “try rephrasing” (the response echoes the first 500 chars of the LLM’s raw output). A 503 SERVICE_UNAVAILABLE means the AI backend is not configured for the platform — fall back to the manual segment builder. Both endpoints require the contacts:write scope (owner / admin / developer). Export an unsaved audience. POST /api/v1/segments/export.csv resolves the same FilterAst shape the manual builder produces — a single condition or a nested AND / OR group — live against the tenant’s contacts and returns the matched rows as an RFC-4180 CSV download. PII columns (phone, email) honor the caller’s role and reveal context exactly as the dashboard renders them. A truncated export (past the 50,000-row ceiling, limit-clamped below it) sets the X-Export-Truncated: true response header so you know you got a partial pull.

SDK surface bridge — Translate a natural-language audience into engine-validated rules, or export an unsaved FilterAst out to CSV — both reachable through the SDK escape hatch.

These three tabs mirror SDK status and coverage. Python fronts client.request, Go fronts client.Request, and TS fronts fetch-TS — each with the sandbox key.

Describe a segment (AI autopilot)

Export an ad-hoc audience as CSV