How do I start forwarding bugs to another tool?
In the top-left corner of your Dashboard, click the icon and select Workspace administration.
Choose Apps from the list on the left, then select the app you want to configure.
At the top of the page, switch from the General tab to the User feedback tab. The first thing you'll see is the User feedback integrations section. Find the tool you want to forward bugs to, click the … next to it, and follow the instructions.
How do I stop forwarding bugs?
It's the same process:
In the top-left corner of your Dashboard, click the icon and select Workspace administration.
Choose Apps from the list on the left, then select the app.
Switch to the User feedback tab, find the tool, click … next to it, and follow the instructions to disconnect.
That's it, bugs won't be forwarded there any more.
Our integration appears to have stopped working — "A hiccup happened"
This usually means the third-party tool is temporarily unavailable. Check its status page:
If all systems are operational, check the Shake Status page. If everything looks fine there too, reach out to us via the chat bubble on your Dashboard.
Data on my integration shows asterisks (***)
This is expected behavior on the Free plan — data sent to integrations is redacted. Upgrade to a paid plan to unlock full data. See Shake Pricing.
Custom Integrations (Organization plan)
On the Organization plan, you can customize exactly which data points are forwarded to external tools like Jira, GitHub, or Azure DevOps — and reorder them to match your team's workflow.
To configure it, go to Workspace administration → Apps → User feedback, open your integration's settings, and adjust the payload structure. This lets you remove noise, highlight the most critical data, and align Shake's output with your internal reporting standards.
Note: mapping Shake data to custom fields in external tools is not currently supported — only the structure and order of the issue description can be customized.
Jira
Shake connects to Jira fine, but Jira doesn't accept tickets
Two things to check:
Bug issue type: Make sure the Bug issue type exists in your Jira project. Shake creates tickets as Bugs — if the type is missing, Jira will reject them.
Required fields: If your Jira project has required fields (e.g. Components, Epic, Platform, Estimate), Shake can't populate them and the ticket will fail. Ask your Jira administrator to make those fields optional, then try connecting again.
Two-way sync works, but only some tickets are closing on the Shake Dashboard
This happens when Jira statuses aren't mapped to the "Done" category. Ask your Jira administrator to go to Project settings → Board → Columns and statuses (or Jira Settings → Issues → Statuses), find the status that should count as Done, click Edit, and set its Category to Done. Once saved, tickets reaching that status in Jira will automatically close on the Shake Dashboard too.
Jira field mapping error — "Yikes! Integration with Jira wasn't successful"
If you're using Map to Jira fields and getting this error, switch the ticket format to Fill the Description instead. If the problem persists, contact Jira support — this is outside Shake's control.
Integration works, but screenshots and files show "Failed to load" in Jira
Your Jira instance is blocking Shake from uploading attachments. Ask your Jira administrator to update the project's file upload permissions to allow external integrations.
Can I forward only some bugs to Jira, not all of them?
Yes. By default, all reports are forwarded automatically. To switch to manual forwarding:
Go to Settings → Apps and open your app.
Make sure the app is connected to Jira.
Next to Jira, click the dropdown and select By hand. Reports won't be forwarded automatically anymore.
To forward a specific ticket manually, open it on the Dashboard, expand the Integrations section, and click Send. Once sent successfully, a link to its Jira ticket will appear and you can Resend it any time.
IP addresses and Jira compatibility
Shake uses AWS with a static production IP: 3.126.113.98. Use this if your Jira instance requires IP whitelisting.
Shake integrates with Jira Server and Jira Cloud. For Jira Data Center, use your load balancer's base URL when setting up the connection — note that this configuration hasn't been fully tested.
Slack
Slack integration stopped working
The most common reason is a renamed Slack channel — for example, #bugs was renamed to #bugs-android. Fix it by editing the Slack integration in Shake settings to point to the new channel name.
If that doesn't help, try disconnecting Slack and reconnecting it with a new webhook.
If you're still seeing a "Yikes. Slack integration was not successful" message, reach out to us via the chat bubble on your Dashboard or at friends@shakebugs.com.
Linear
Linear integration not working — "something went wrong"
If everything looks correctly configured but the integration still fails, the likely cause is too much data in the ticket metadata. Linear has a 250,000 character limit for the description field — if your metadata exceeds that, you'll see this error. Reduce the amount of data stored in the metadata and the integration should start working.
Webhook
How to add a webhook
Sign in and go to Workspace administration → Apps.
Select the app you want to configure.
In the User feedback integrations box, click Add New → Webhook.
Enter your endpoint URL and click Connect.
From that point on, Shake sends a POST request to your URL for every new ticket. Your server must return a 200 OK response for every request — if it consistently fails to do so, the integration will be automatically disconnected.
Webhook payload
Each POST request includes a JSON payload with ticket data: app ID, user info and metadata, device details (OS, model, orientation, battery, memory, storage), app version, network type, locale, timezone, screenshot URL, video URL, tags, ticket status, and more.
Validating webhook requests
To confirm that requests are genuinely coming from Shake, use the webhook secret generated when you first clicked Connect (available in your Webhook settings). Generate an HMAC SHA256 signature on your server and compare it to the shakebugs-signature header sent with each request.
Python
import hmac import hashlib webhook_secret = "<WEBHOOK_SECRET>" payload = "<PAYLOAD>" webhook_secret_bytes = bytes(webhook_secret, 'utf-8') payload_bytes = bytes(payload, 'utf-8') signature = hmac.new(webhook_secret_bytes, payload_bytes, digestmod=hashlib.sha256).hexdigest()
JavaScript (Node.js)
const crypto = require("crypto") const WEBHOOK_SECRET = "<WEBHOOK_SECRET>" const rawBody = "<RAW_BODY>" const signature = crypto.createHmac("sha256", WEBHOOK_SECRET).update(rawBody).digest("hex")Replace WEBHOOK_SECRET with your secret from Shake settings, and PAYLOAD / RAW_BODY with the raw request body. This works in any language that supports HMAC SHA256.
Sentry
Sentry extension
The Shake–Sentry extension lets you view Sentry error tracking data — backend error logs, performance data, and issue tracking — directly inside your Shake Dashboard, without switching between tools.
To enable it:
Click the dashboard icon in the top-left corner.
Select Workspace administration.
Click Extensions.
Enable the Sentry extension.
For any additional questions, don't hesitate to contact us through the chat bubble.
Or even better, join our Slack Community and get in touch with our developers within a few minutes.