How Feedback Notifications Work
When users submit feedback on your support page or via the API, SupportDock delivers it to you through every channel you have configured — simultaneously.
Notification Channels
Email to your support address
Config: Toggle in Contact tab
Slack
POST to webhook URL
Config: Add webhook URL
Discord
POST to webhook URL
Config: Add webhook URL
All channels fire in parallel. A failure in one channel does not affect others.
What Gets Sent
| Field | Source | Notes |
|---|---|---|
| App name | From the app profile | Always present |
| From (name) | Sender's name | Omitted if empty |
| From (email) | Sender's email | Omitted if empty |
| Subject | Provided by sender | Falls back to "{type} report" |
| Category | bug, feature, question, general | Shown as a label |
| Message | Feedback body | Truncated to 500 chars in Telegram |
| Metadata | Key-value pairs from the SDK | Optional, forwarded to all channels |
Metadata
The remote API accepts an optional metadata object. This is useful for sending device and app context alongside the feedback. You can send any key-value pairs — they are stored as JSON and forwarded to all notification channels.
Common metadata fields
| Key | Example | Description |
|---|---|---|
| appVersion | 1.4.0 | App version from the store |
| platform | ios | Device platform (ios, android) |
| osVersion | 18.2 | Operating system version |
| device | iPhone 16 Pro | Device model |
| locale | en-US | User locale |
Example API payload
{
"type": "bug",
"message": "App crashes on startup after updating",
"email": "jane@example.com",
"source": "my-app",
"metadata": {
"appVersion": "1.4.0",
"platform": "ios",
"osVersion": "18.2",
"device": "iPhone 16 Pro"
}
}How It Looks in Each Channel
Telegram
Metadata appears as key-value pairs under a Details section. Messages longer than 500 characters are truncated.
*New feedback for ZenTreasury* *From:* Jane (jane@example.com) *Subject:* App crashes on startup *Category:* bug *Details:* appVersion: 1.4.0 platform: ios osVersion: 18.2 device: iPhone 16 Pro App crashes on startup after updating... _SupportDock_
GitHub Issues
Metadata is rendered as a markdown table. Issues are labeled automatically:
**From:** Jane (jane@example.com) **App:** ZenTreasury **Category:** bug | Key | Value | | --- | --- | | appVersion | 1.4.0 | | platform | ios | | osVersion | 18.2 | | device | iPhone 16 Pro | --- App crashes on startup after updating... --- _Created automatically by SupportDock_
Slack & Discord
Webhooks receive a JSON payload with all fields including the full metadata object, app name, sender info, subject, message, and category.
Email notifications include the sender name, email, subject, and message. You can reply directly from your email client.
SDK Integration Example
React Native / Expo example using the useSupportDock hook. Default metadata (app version, platform) is automatically merged with per-feedback data.
const { sendFeedback } = useSupportDock({
apiKey: 'your-api-key',
metadata: {
appVersion: Constants.expoConfig?.version,
platform: Platform.OS,
},
});
await sendFeedback({
type: 'bug',
message: 'App crashes on startup',
email: user.email,
});Ready to set up feedback notifications?
Get started