Integrations
Connect AfricaOS with external services
Connect AfricaOS to your existing tools and services.
Integrations extend AfricaOS functionality by connecting to external platforms. Most integrations are configured per-module.
| Integration | Module | Setup |
|---|
| Stripe | Payments | API keys, webhooks |
| Paystack | Payments | API keys, webhooks |
| Flutterwave | Payments | API keys, webhooks |
| Manual | Payments | No setup required |
| Integration | Module | Setup |
|---|
| Twilio | Notifications, Bookings | Account SID, Auth Token |
| SendGrid | Notifications | API key |
| Postmark | Notifications | Server token |
| Slack | Workflows, Notifications | OAuth app |
| Microsoft Teams | Workflows, Notifications | Webhook URL |
| WhatsApp Business | Notifications, Bookings | Meta Business account |
| Integration | Module | Setup |
|---|
| Google Calendar | Bookings, Patients, Calendar | OAuth |
| Outlook/Office 365 | Bookings, Patients, Calendar | OAuth |
| Calendly | Bookings | API key |
| Integration | Module | Setup |
|---|
| QuickBooks Online | Finance, Payments | OAuth |
| Xero | Finance, Payments | OAuth |
| Sage | Finance | API credentials |
| Zoho Books | Finance | OAuth |
| Integration | Module | Setup |
|---|
| Shopify | Stock, Payments | Private app |
| WooCommerce | Stock, Payments | Consumer key/secret |
| Takealot | Stock | API key |
| Amazon SP-API | Stock | Developer registration |
| Integration | Module | Setup |
|---|
| DHL | Stock | Account credentials |
| FedEx | Stock | Account credentials |
| Aramex | Stock | API key |
| Local Couriers | Stock | API/Webhook |
| Integration | Module | Setup |
|---|
| HubSpot | All | OAuth |
| Salesforce | All | Connected App |
| Mailchimp | Notifications | API key |
| ActiveCampaign | Notifications | API key, URL |
| Integration | Module | Setup |
|---|
| Zapier | All | Zapier account |
| Make (Integromat) | All | Make account |
| n8n | All | Self-hosted or cloud |
| Google Sheets | All | Service account |
| Airtable | All | API key |
| Integration | Module | Setup |
|---|
| Webhooks | All | Endpoint URL, secret |
| REST API | All | API token |
| GraphQL | All | API token |
| Custom Scripts | Workflows | TypeScript editor |
- Go to Settings → Integrations
- Find the integration
- Click Configure
- Enter credentials
- Test connection
- Enable for modules
All webhooks include:
- Signature - HMAC-SHA256 with shared secret
- Timestamp - Prevent replay attacks
- Event ID - Deduplication
Verify in your endpoint:
const crypto = require('crypto');
const signature = req.headers['x-africaos-signature'];
const expected = crypto
.createHmac('sha256', process.env.WEBHOOK_SECRET)
.update(req.body)
.digest('hex');
if (signature !== expected) {
return res.status(401).send('Invalid signature');
}
| Integration | Limit |
|---|
| REST API | 100 req/min |
| GraphQL | 50 req/min |
| Webhooks | 1000/min |
| Zapier/Make | Per plan |
Full API access for custom development:
- Base URL -
https://api.africaos.dev/v1
- Auth - Bearer token (Settings → API Tokens)
- Docs -
/docs/api/reference
Flexible queries for complex data:
- Endpoint -
https://api.africaos.dev/graphql
- Schema - Introspection enabled
- Playground - Available in settings
Run TypeScript in workflows:
// Available globals: fetch, console, Date, Math, JSON
// Context: trigger, record, user, org
async function main() {
const response = await fetch('https://api.external.com/data', {
headers: { 'Authorization': `Bearer ${secrets.EXTERNAL_API_KEY}` }
});
return response.json();
}
| Issue | Solution |
|---|
| "Invalid credentials" | Regenerate API keys, check permissions |
| "Webhook timeout" | Endpoint must respond < 10s |
| "Rate limited" | Implement exponential backoff |
| "Schema mismatch" | Check API version, update mapping |
| "OAuth failed" | Verify redirect URIs, scopes |
- Check Settings → Integrations → Logs
- View request/response payloads
- Test with Test Connection button
- Check external service logs