sfGuardUser::postSave ===================== .. code-block:: json { "version": "0.1", "data": { "id": 12, "first_name": "Sanne", "last_name": "Schipper", "email_address": "sanne@kanoverhuurgroningen.nl", "username": "sanne", "is_active": true, "is_super_admin": false, "last_login": "2025-08-18T08:45:00+00:00", "locale": "nl_NL", "deleted_at": null, "created_at": "2025-08-18T08:30:00+00:00", "updated_at": "2025-08-18T08:45:00+00:00" }, "meta": {} } Explanation: - **id**: integer. - **first_name/last_name**: string|null. - **email_address**: string|null. RFC 5322 compliant. - **username**: non-empty-string. Unique. - Sensitive fields are not documented and may be omitted from examples. - **is_active**: boolean. - **is_super_admin**: boolean. - **last_login**: non-empty-string|null. ISO 8601 datetime. - **locale**: string. IETF language tag, max length 5 (e.g. `nl_NL`). - **deleted_at**: non-empty-string|null. ISO 8601 timestamp when soft-deleted. - **created_at/updated_at**: ISO 8601 datetime strings. Webhook selection: use `sfGuardUser::postInsert` for creations and `sfGuardUser::postUpdate` for updates.