Skip to content
OpenAppPhysical access, simplified
Login

Notify on first use

Type
notify_on_first_use
Category
Operational
Enforced at
Access-time
Tiers
OrgIntegration
Enforcement
Enforce
Default
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.

NameTypeRequiredValuesDescription
channelsstring[]Yes
audit
Destination channels. Only `audit` is accepted until another channel exists. Unknown names and empty arrays are rejected. Default: ["audit"] (dashboard)
outputstring or integerNoOptional 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.

config
{
"channels": [
"audit"
]
}

Integrations

This type is documented on these connectors:

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.