APIs and webhooks
Automatable by default.
A GraphQL API for every first-class platform object. Webhook events for lifecycle moments. Tenant-scoped API keys with per-key scopes. Plus the Functions primitive — your code runs inside Owlie, not alongside it.
GraphQL
Every platform object. One schema.
Owlie exposes a GraphQL schema covering every first-class platform object — identities, resources, entitlements, assignments, operations, tickets, requests. Read and mutate from automation, from your ticketing system, from your own tools. Authentication is tenant-scoped API keys or session-based for browser calls. Rate limits apply on sensitive endpoints.
GraphQL query + response
Static peek: a query against the GraphQL schema and its structured response.
Webhooks
Events that matter. Delivered.
Lifecycle events — request created, ticket approved, operation completed, drift detected — produce webhook deliveries with structured payloads. Delivery is at-least-once with idempotency keys; consumers are expected to handle that. Retries are bounded; exhausted deliveries surface in the outbox for operator investigation.
At-least-once. Bounded retries. Failures stay visible.
Webhooks vs. Functions
React from outside. Participate from inside.
Webhooks move data out of Owlie. Functions run your code inside — as an approval step, a fulfillment path, a custom admin action, or an HTTP endpoint. The two coexist. If your integration needs to participate in an approval decision or a fulfillment step, reach for a Function. If it just needs to react, reach for a webhook.