Application
One product inside your workspace. It owns its API keys, environments, message definitions, webhooks, activity, and delivery history. A workspace can hold several applications.
Fabrik is a communications control plane for product teams operating in Ghana and Nigeria. Your server sends through one authenticated API; your team controls content, routes, sender identity, delivery evidence, and spend from the dashboard.
Application
One product inside your workspace. It owns its API keys, environments, message definitions, webhooks, activity, and delivery history. A workspace can hold several applications.
Environment
Sandbox and live are isolated. The sk_test_ or sk_live_ prefix selects which one a request
uses.
Message
A direct request owns its content. A managed request addresses a released definition by a stable
key such as order.shipped.
Delivery
The accepted request, delivery attempts, terminal status, cost, and webhook history form one traceable record.
| Channel | Best for | Runtime surface | Live prerequisite |
|---|---|---|---|
| SMS | OTPs, alerts, receipts, operational updates | fabric.sms or fabric.messages |
An active sender ID for each destination country |
| Receipts, product mail, account notices | fabric.email or fabric.messages |
A verified sending domain | |
| Approved-template notifications and conversations | fabric.whatsapp or fabric.messages |
WhatsApp provider and template configuration |
Direct resources are useful when your application owns the final payload. Managed messages are useful when product, operations, or compliance teams need to update approved content without a deploy.
An HTTP success is not the same as handset or inbox delivery. Treat message.delivered,
message.undelivered, and message.failed as the terminal evidence for a send.