Messaging and integrations
Your SMS provider, connected without a release.
Changing SMS provider stops being a development project. The institution writes a short script for its provider's HTTP interface, Fused runs it in a sandbox, and messages go out through an outbox that a retried request cannot send twice.
// Runs in a sandbox. Reads the provider's reply.
export function succeeded(response) {
return response.status === 200
&& response.body.includes('"accepted"');
}Template: “Loan APP-CMB03-2026-000318 is waiting for your approval.”
What it does
Any HTTP SMS gateway
A gateway is a URL and a short script that reads the provider's token and checks its answer for success. The script runs in a sandbox with memory and time limits.
Email through AWS SES
Email is sent through Amazon SES from the same outbox as text messages.
Message templates
Templates with placeholders, rendered when a message is queued, and a test send before a template is used.
A notify step in any flow
An approval flow can queue a message from a template at any step, such as telling a manager that an item is waiting.
An outbox that never sends twice
A message is written in the same transaction as the change it belongs to, under a unique idempotency key. A failure no retry can fix is not retried.
Signed webhooks
Events are posted to your HTTPS endpoint in HMAC-signed batches, oldest first. Five failures in a row pause the subscription until a person resumes it.
What it refuses
A control is only a control if the system enforces it.
- Fused refuses a gateway or webhook address that is not HTTPS or points at a private network.
- Fused refuses a second send of a message a retried request already queued.
- Fused refuses SMS as a sign-in factor.
- Fused refuses retrying a failure no retry can fix, such as a rejected address.
The rules underneath
The detail your finance and IT teams will ask about.
- Sandbox
- QuickJS compiled to WebAssembly, with memory and deadline limits enforced by the interpreter itself.
- Delivery
- At least once, from a transactional outbox, with backoff and full jitter.
- Delivery status
- Sent means the provider accepted the message. Delivery receipts are not collected.
- Webhook signature
- X-Fused-Signature carries a SHA-256 HMAC of the body; a consumer de-duplicates on each event's sequence number.
- Webhook pause
- Five failed deliveries in a row pause a subscription and record it on the audit trail.
- Retention
- Sent and failed messages are pruned after 90 days by default; a message still owed is never pruned.
Works with
- Approvals and controlsApproval flows you draw, quorum rules, one inbox per person, office-scoped roles and a hash-chained audit trail.
- Clients and KYCNIC-aware client records, groups and centres, KYC documents with verification, custom fields and CSV import.
- ReportingFour built-in reports, a designer for your own queries over sandboxed views, and scheduled CSV, XLSX or PDF.
Messaging and integrations: questions
Will it work with our SMS provider?
If your provider accepts HTTP requests, yes. A short script is written for it, and it runs in a sandbox without a software release.
How do we connect our other systems?
Through webhooks. Fused posts its events to your HTTPS endpoint in signed batches, and your system de-duplicates on each event's sequence number.
Do you integrate with CRIB?
Not today. Country compliance packs are on the roadmap.
Do you send sign-in codes by SMS?
No. Sign-in uses an authenticator app, and codes are never sent by SMS.
See it on your own products and numbers.
A walkthrough with the team that builds Fused: your loan products, your branches, your month-end.