<provider>
<provider kind="notification"> is the reusable root for a project-specific notification transport.
Why use it
Use it when approvals or lifecycle messages must travel through a provider WOML does not include, while keeping decision authority, retries, and settlement in the Rust runtime.
Common use cases
- Send approval actions through an internal messaging API.
- Integrate a project-specific incident system.
- Standardize one custom notification transport across workflows.
Syntax
WOML
<woml>
<props>
<prop name="api-token" required="true" secret="true" />
<prop name="destination" required="true" />
</props>
<provider kind="notification">
<script>
return services.http.request({
url: "https://messaging.example.com/messages",
method: "POST",
headers: { authorization: `Bearer ${props.apiToken}` },
json: {
destination: props.destination,
text: notification.message,
actions: notification.actions
}
}, { name: "deliver-notification" });
</script>
</provider>
</woml>Rules and behavior
- Only
kind="notification"exists in v1. - The provider script receives
props,notification, services, and Fetch. - The provider transports bounded notification data but does not own the approval decision.
- Imported custom provider tags are used directly inside
<notify>. - Custom provider triggers and child-generating custom tags are not supported.