I need to understand the product
Start with the platform model to see how applications, channels, delivery, and billing fit together.
Fabrik helps your team connect business events to customer communication, then see what happened and what it cost. You can start with a sandbox request before you configure a sender, provider, or wallet for live traffic.
I need to understand the product
Start with the platform model to see how applications, channels, delivery, and billing fit together.
I need to send a message
Follow the Node.js quickstart for a safe sandbox send from a trusted server.
I need to prepare for launch
Follow the going-live checklist for sender IDs, domains, funding, consent, and webhooks.
Application
One product inside your workspace. It owns its keys, environments, message definitions, webhooks, activity, and delivery history.
Environment
Sandbox and live are isolated. Your sk_test_ or sk_live_ key chooses the environment.
Channel
Send SMS, email, or WhatsApp through a direct resource or a managed definition.
Delivery
A send can be accepted before the provider confirms the final outcome. Follow the delivery to a terminal state.
Cost
Sandbox activity uses test capacity. Live sends reserve wallet funds and expose exact costs in minor units.
| Choose this | When it fits | Example |
|---|---|---|
| Direct send | Engineering owns the final payload and deploy cycle | A service sends a one-off receipt with fabric.email.send() |
| Managed message | Product, operations, or compliance needs controlled copy without a deploy | A service sends order.shipped with fabric.messages.send() |
| Batch send | The application needs to send up to 100 SMS items in one request | A consented campaign or scheduled notification run |
The delivery model is the same across these paths: use an idempotency key for retriable writes, consume signed webhooks for outcomes, and reconcile the delivery with your business reference.
FABRIC_API_KEY in a server-side secret manager.| Key | Environment | What it does |
|---|---|---|
sk_test_… |
Sandbox | Uses virtual delivery and test capacity; no live provider charge |
sk_live_… |
Live | Uses configured providers; requires the live setup for the channel |
The SDK derives the environment from the prefix and rejects any other secret-key format before a network request. Sandbox and live definitions, webhook endpoints, activity, and provider resources are deliberately separate.