POST/users/upsert

Upsert a customer user

Register or update one of your users so SeggWat can schedule time-based lifecycle surveys (chiefly trial-ending-soon) at the right moment. Idempotent on (project_id, user_ref) — re-calling with a new trial_ends_at reschedules; passing null cancels pending schedules.

Base URLhttps://seggwat.com/api/v1

Request Body

required
application/json
object
emailstringnullable

Optional contact email. Stored so the dashboard can correlate in-app survey responses with an address. SeggWat does not send anything to it — survey magic-link URLs are returned in the lifecycle/dispatch response for you to relay via your own channel. Pass null to clear.

Example: alex@acme.com
project_idstringrequired

Project this user belongs to. Must be owned by the API key's organization.

Example: 507f1f77bcf86cd799439011
trial_ends_atstring (datetime)nullable(datetime)

ISO-8601 timestamp for trial expiry. Setting this enables trial-ending-soon scheduling; null cancels.

Example: 2026-06-15T00:00:00Z
user_refstringrequired

Stable identifier for this user in your system. Echoes back as `submitted_by` on survey responses.

Example: user_abc123

Responses

Navigation