Frequently Asked Questions#
General#
What is Outeract?#
Outeract is a unified messaging infrastructure that lets you send and receive messages across multiple platforms (WhatsApp, Instagram, Telegram, Slack, etc.) through a single API.
Which platforms are supported?#
- WhatsApp Business
- Instagram Business
- Facebook Messenger
- Telegram
- Slack
- Discord
- SMS (Twilio)
- Email (Maileroo)
- iMessage (LoopMessage)
Is there a free tier?#
Yes! The free tier includes:
- 1,000 messages/month
- 1 application
- All platform integrations
- Basic support
How does pricing work?#
Pricing is based on message volume and features. See pricing page for details.
Authentication#
How do I get an API key?#
- Sign in to console.outeract.com
- Go to Settings → API Keys
- Click Create API Key
- Copy and securely store the key
What’s the difference between API keys and JWT tokens?#
- API Keys: For application-to-application authentication (your backend → Outeract)
- JWT Tokens: For admin operations and console access
How do I rotate API keys?#
- Create a new API key
- Update your application to use the new key
- Verify it works
- Delete the old key
Platform Connections#
How do I connect WhatsApp?#
- Create a WhatsApp Business Account in Meta Business Manager
- In Outeract, click Add Connection → WhatsApp Business
- Click Connect with Meta and complete OAuth
- Done! Your connection is ready.
Can I connect multiple accounts of the same platform?#
Yes! You can have multiple WhatsApp numbers, multiple Telegram bots, etc. Each is a separate platform connection.
What happens if my OAuth token expires?#
For OAuth platforms (WhatsApp, Instagram, Facebook), tokens are automatically refreshed. If issues occur, reconnect via OAuth.
How do I test without sending real messages?#
Use sandbox mode:
mutation {
sendMessage(
platformConnectionId: "pc_abc123"
toExternalId: "+14155551234"
message: "Test"
sandbox: true
) {
id
}
}Messaging#
What’s the maximum message length?#
Varies by platform:
- WhatsApp: 4,096 characters
- Telegram: 4,096 characters
- Instagram: 1,000 characters
- Facebook: 2,000 characters
- SMS: 1,600 characters (concatenated)
- Discord: 2,000 characters
Can I send files/attachments?#
Yes! Upload files first, then attach to messages:
mutation {
sendMessage(
platformConnectionId: "pc_abc123"
toExternalId: "+14155551234"
message: "Here's the file"
fileIds: ["file_xyz789"]
) {
id
}
}What’s the 24-hour messaging window?#
WhatsApp, Instagram, and Facebook require users to message you first. After their last message, you have 24 hours to respond freely. Outside this window, you must use pre-approved templates.
How do I send messages outside the 24-hour window?#
Use message templates:
mutation {
sendTemplateMessage(
platformConnectionId: "pc_abc123"
toExternalId: "+14155551234"
templateName: "order_update"
parameters: [...]
) {
id
}
}Templates must be pre-approved in Meta Business Manager.
Users & Identity#
What’s the difference between User and Platform User?#
- User: Abstract identity (a person)
- Platform User: Concrete identity on a specific platform (phone number, username)
One User can have multiple Platform Users (same person on WhatsApp and Slack).
How do I link users across platforms?#
Use link codes:
- User requests code on Platform A
- User enters code on Platform B
- Both platform users are linked to the same user
Can I merge duplicate users?#
Yes:
mutation {
mergeUsers(
sourceUserId: "user_duplicate"
targetUserId: "user_keep"
) {
id
platformUsers { id }
}
}Webhooks#
How do I receive incoming messages?#
- Create a webhook subscription:
mutation {
createWebhookSubscription(
name: "Messages"
targetUrl: "https://myapp.com/webhooks"
eventPatterns: ["message.inbound"]
secret: "your-secret"
) {
id
}
}- Handle webhooks at your endpoint
- Verify signatures for security
Why aren’t my webhooks being delivered?#
Common issues:
- Endpoint not returning 200 within 30 seconds
- SSL certificate issues
- Firewall blocking requests
- Signature verification failing
Check webhook delivery logs:
query {
webhookDeliveryLogs(webhookSubscriptionId: "ws_abc123") {
edges {
node {
status
statusCode
errorMessage
}
}
}
}How do I test webhooks locally?#
Use ngrok:
ngrok http 3000
# Use the HTTPS URL as your webhook endpointData & Privacy#
Where is data stored?#
Data is stored in secure cloud infrastructure with encryption at rest.
How long is data retained?#
- Messages: 90 days by default (configurable)
- Events: 90 days
- Files: 30 days after last access
Is data encrypted?#
Yes:
- TLS 1.3 for all connections
- Encryption at rest for stored data
- Secrets stored encrypted
Can I export my data?#
Yes, contact support for data export requests.
Rate Limits#
What are the API rate limits?#
Depends on your plan:
- Free: 60 requests/minute
- Pro: 600 requests/minute
- Enterprise: Custom
What if I hit rate limits?#
Implement exponential backoff:
time.sleep(2 ** attempt) # 2, 4, 8, 16... secondsAre platform rate limits separate?#
Yes, each platform has its own limits in addition to API limits.
Billing#
How are messages counted?#
Each message sent or received counts as one message. Status updates don’t count.
What happens if I exceed my plan?#
You’ll receive a warning at 80% usage. At 100%, additional messages are queued until the next billing cycle or you upgrade.
Can I upgrade mid-cycle?#
Yes, upgrades are prorated.
Technical#
Is there a GraphQL playground?#
Yes: api.outeract.com
Are there SDKs?#
Official SDKs coming soon:
- Python
- Node.js
- Go
Can I self-host?#
Enterprise plans include self-hosting options. Contact sales.
What’s the uptime SLA?#
- Free/Pro: 99.9%
- Enterprise: 99.99%
Getting Help#
How do I contact support?#
- Email: support@outeract.com
- Console: Help → Contact Support
Where can I report bugs?#
GitHub Issues: github.com/outeract/outeract
Is there a community?#
- Discord: discord.gg/outeract
- GitHub Discussions