Skip to content

Integrations

Don't check another dashboard. Send feedback notifications where your team already works. Get notified about new feedback, status changes, and comments without leaving your workflow.

Available Integrations

Notifications

Issue Tracking

Support & CRM

Automation

Developer Tools

How Integrations Work

Quackback uses an event-driven integration system:

Event Occurs → Event Dispatched → Integration Triggered → Notification Sent

Events

Integrations can respond to these events:

EventDescription
post.createdNew feedback post submitted
post.status_changedPost status updated (e.g., Planned → Shipped)
post.updatedPost title or content edited
post.deletedPost soft-deleted
post.restoredDeleted post restored
post.mergedPost merged into another post
comment.createdNew comment on a post
comment.updatedComment edited
comment.deletedComment deleted

Event Mappings

Configure which events trigger which integrations:

  1. Go to Admin → Settings → Integrations
  2. Select an integration
  3. Configure Event Mappings
  4. Choose which events to send

For example, only send to Slack when a post becomes "Planned".

Set up integrations

General Flow

  1. Navigate to Admin → Settings → Integrations
  2. Click on the integration you want to set up
  3. Follow the connection flow (usually OAuth)
  4. Configure notification settings
  5. Test the connection
  6. Enable the integration

Permissions Required

Only Admins can configure integrations.

Integration Status

Each integration shows its current status:

StatusMeaning
ConnectedWorking normally
PausedTemporarily disabled
ErrorConnection issue, needs attention
Not ConnectedNot yet set up

Pause integrations

Temporarily disable an integration without disconnecting:

  1. Go to the integration settings
  2. Toggle Enabled off
  3. The integration pauses but credentials are preserved

Reconnect

If an integration shows errors:

  1. Check the error message
  2. Re-authenticate if tokens expired
  3. Verify the connected service is working

Security

OAuth Tokens

Integration OAuth tokens are:

  • Encrypted at rest using AES-256-GCM with purpose-specific keys derived via HKDF
  • Scoped to minimum required permissions
  • Revocable from both Quackback and the connected service

Webhook Signing

Webhook deliveries are signed with HMAC-SHA256 so you can verify they came from Quackback. See Webhooks for details.

On post delete

When you delete a feedback post that has linked issues in an issue tracker (Linear, GitHub, Jira, etc.), you can archive or close those issues at the same time. The delete dialog shows a checkbox for each linked issue.

Configure the default

Each integration has an On post delete toggle in its settings page. When enabled, the checkbox for that integration's linked issues is pre-checked in the delete dialog. You can always override per-delete.

What happens

  • The post is soft-deleted first -- this always succeeds
  • Selected linked issues are archived or closed in parallel
  • If an external API call fails, you'll see a warning toast -- the post is still deleted
  • The link's status is updated to archived, closed, or error in the database

Issue-tracking integrations archive or close linked issues -- they never hard-delete them. You can reopen or unarchive in the external tool if needed.

Best Practices

Start Simple

Begin with one integration. Add more as your workflow matures.

Map Relevant Events

Don't send every event to every channel. Be selective:

  • New feedback > general notification
  • Status changes > specific channels
  • Comments > maybe skip or use digest

Monitor for Errors

Regularly check integration status. Failed notifications can mean:

  • Expired tokens
  • Removed channels
  • Service outages

Troubleshooting

Notifications Not Sending

  1. Check integration status for errors
  2. Verify event mappings are configured
  3. Check the target channel/endpoint exists
  4. Review recent activity logs

Duplicate Notifications

  1. Check for multiple event mappings
  2. Verify you don't have duplicate integrations
  3. Review webhook retry settings

Connection Lost

  1. Tokens may have expired
  2. Re-authenticate the integration
  3. Check the third-party service status

Next Steps