/users/upsertUpsert 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.
https://seggwat.com/api/v1Request Body
application/jsonemailstringnullableOptional 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.
alex@acme.comproject_idstringrequiredProject this user belongs to. Must be owned by the API key's organization.
507f1f77bcf86cd799439011trial_ends_atstring (datetime)nullable(datetime)ISO-8601 timestamp for trial expiry. Setting this enables trial-ending-soon scheduling; null cancels.
2026-06-15T00:00:00Zuser_refstringrequiredStable identifier for this user in your system. Echoes back as `submitted_by` on survey responses.
user_abc123