Notify on first use
- Type
- notify_on_first_use
- Category
- Operational
- Enforced atWhen this policy is checked: while someone tries to open, while they create or change an invitation or hold, or after a denial (notify only).
- Access-time
- TiersWhere an admin can set this policy: the whole organization, one integration, or the physical device when the connector supports a device steward.
- OrgIntegration
- EnforcementHow a configured row behaves. Enforce blocks. Require approval opens an admin inbox when the type supports it. Audit only records and never blocks.
- Enforce
- DefaultWhat happens when no row of this type is configured.
- Not configured — first invitation use is not additionally notified.
A post-success access-time hook. When an invitation is used for the first time (uses 0→1) and channels includes audit, OpenApp writes an audit event. This type does not itself block access. Only `audit` is accepted on write.
When it is enforced
Evaluated when someone opens a door or gate or triggers an entity action. If this policy applies, the open is denied even when roles and grants would otherwise allow it.
Where to set it
Settings → Policies (org) or the integration Policies tab.
Policies never grant access. See thepolicies architecture guidefor how org, integration, and device tiers combine.
Arguments
The config object on create/update. Shared row fieldsenforcement (enforce, require_approval,audit_only) and enabled apply to every type;audit_only and disabled rows never block.
| Name | Type | Required | Values | Description |
|---|---|---|---|---|
| channels | string[] | Yes | audit | Destination channels. Only `audit` is accepted until another channel exists. Unknown names and empty arrays are rejected. Default: ["audit"] (dashboard) |
| output | string or integer | No | — | Optional channel or output id. When set, the policy binds only that output. When omitted, it binds every output of the tier target. A scoped row does not apply when the acting output is unknown. |
How overlapping rows combine
Union of channels across applicable rows. Emit audit only when "audit" is present.
Example
The first time a guest redeems an invitation, Activity shows the first-use audit event. Later uses do not emit it again.
{ "channels": [ "audit" ]}Integrations
This type is documented on these connectors:
- Home Assistant (home_assistant)
- KNX (knx)
- MQTT (mqtt)
- PalGate Cloud (palgate_cloud)
- Shelly Cloud (shelly_cloud)
- Shelly Websocket (shelly_websocket)
- Tasmota (tasmota)
- Virtual Access (virtual_access)
- Virtual Demo Devices (virtual_demo)
- Waveshare (waveshare)
Related
- Policy catalog
- Policies architecture guide
- Notify on new sharing (notify_on_new_sharing)
- Notify on curfew attempt (notify_on_curfew_attempt)
- Max invitation uses (invitation_max_uses)
Typed configuration
Section titled “Typed configuration”The OpenAPI contract names this object NotificationPolicyConfig:
{ "channels": ["audit"], "output": "main"}Only audit is currently accepted in channels; an empty array or another channel is rejected. The optional scope fields are available to the generated schema and use the same principal/output rules as other policies.