Integrations (Webhooks)
Connect Moqup to Slack and Discord for real-time notifications.
Moqup supports outgoing webhooks to Slack and Discord, allowing your team to receive real-time notifications when events occur in your projects.
Note: Webhooks are configured through the dashboard, not via API. This page documents how integrations work and what events are available.
Overview
Moqup can send notifications to:
- Slack - Using incoming webhooks
- Discord - Using webhook URLs
When configured events occur, Moqup automatically sends formatted messages to your channels.
Setting Up Integrations
Via Dashboard
- Go to Settings > Integrations
- Click Add Integration
- Choose Slack or Discord
- Paste your webhook URL
- Select the events you want to receive
- Click Save
Getting Webhook URLs
- Go to your Slack workspace settings
- Create an incoming webhook app
- Copy the webhook URL
- Open channel settings
- Go to Integrations > Webhooks
- Create a webhook and copy the URL
Available Events
| Event | Description |
|---|---|
file_uploaded | New file uploaded to a project |
new_annotation | New annotation added to a file |
annotation_reply | Reply added to an annotation thread |
annotation_resolved | Annotation marked as resolved |
status_changed | File status changed (approved, rejected, etc.) |
project_shared | Project shared with someone |
project_viewed | Project viewed by a client |
Message Formats
Slack Messages
Notifications are formatted using Slack Block Kit for rich formatting:
- Header: Event type and project name
- Content: Details about the event (file name, comment text, etc.)
- Context: Timestamp and author
- Action button: Link to view the item in Moqup
Discord Messages
Notifications use Discord embeds with:
- Title: Event type and project name
- Description: Event details
- Fields: Author, project, status, etc.
- Color: Orange (#FF6B35) for Moqup branding
- Timestamp: When the event occurred
Example Payloads
New Annotation (Slack)
{
"text": "Nouvelle annotation sur Website Redesign",
"blocks": [
{
"type": "header",
"text": {
"type": "plain_text",
"text": "Nouvelle annotation sur Website Redesign"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*John Reviewer* a ajoute un commentaire:\n\n> Please adjust the spacing here"
}
},
{
"type": "actions",
"elements": [
{
"type": "button",
"text": { "type": "plain_text", "text": "View feedback" },
"url": "https://moqup.io/share/..."
}
]
}
]
}File Uploaded (Discord)
{
"embeds": [
{
"title": "New file on Website Redesign",
"description": "**homepage-hero.png**",
"color": 16737280,
"fields": [
{ "name": "Type", "value": "Image", "inline": true },
{ "name": "Version", "value": "v1", "inline": true },
{ "name": "Uploaded by", "value": "Sarah Designer", "inline": true }
],
"url": "https://moqup.io/share/...",
"timestamp": "2025-01-10T14:30:00Z"
}
]
}Retry Policy
If a webhook delivery fails, Moqup retries with exponential backoff:
| Attempt | Delay |
|---|---|
| 1 | Immediate |
| 2 | 1 second |
| 3 | 2 seconds |
| 4 | 4 seconds |
| 5 | 8 seconds |
After 3 failed attempts, the delivery is abandoned. Rate-limited responses (429) are automatically retried after the specified delay.
Testing Your Integration
After setting up an integration, use the Test Connection button in Settings > Integrations to send a test message to your channel.
Troubleshooting
Messages Not Arriving
- Webhook URL is correct
- The integration is enabled
- Selected events match what you're testing
- Your Slack/Discord channel hasn't been deleted
Rate Limiting
Both Slack and Discord have rate limits. Moqup handles these automatically by waiting and retrying. If you have very high activity, some notifications may be delayed.
Next Steps
- Rate Limits - API limits
- Authentication - API access
- API Overview - Getting started