
Overview
Automatically import Usersnap feedback into Channels in real-time, where it’s analyzed and grouped into themes so you can track trends over time. Every form input the user submits (short answer text, comments, ratings, custom fields) comes across with the original feedback, and each data point links back to the source in Usersnap so you can view the annotated screenshot in context. When you set up the connection, you’ll pick which Usersnap projects to import feedback from and how far back to backfill. Learn more about Channels →Prerequisites
- A Dovetail workspace with Channels enabled and your user has Can edit or Full access on the Channel you’re adding the source to.
- A Usersnap account with Admin access (needed to manage REST API credentials).
- A Usersnap JWT ID and JWT Secret — generate them in Settings → API.
Set up the Usersnap integration
You can set up the Usersnap integration from Settings, when you create a new Channel, or when youAdd source to an existing Channel.
Open the Connect data source modal
In Dovetail, open the Connect data source modal and select
Usersnap.Generate Usersnap credentials
In a separate tab, sign in to Usersnap and open Settings → API. Generate a new API key and copy both the JWT ID and the JWT Secret.
Paste the credentials into Dovetail
Paste the values into the JWT ID and JWT Secret fields in Dovetail and select
Continue.Pick the Usersnap projects
Choose the Usersnap projects you want to import feedback from. You can select one or several — there’s no cap.
- Create JWT secret
- Connect data source
- Configure import

Authentication and permissions
Usersnap uses a JWT API key. Dovetail signs a short-lived JWT with your JWT ID and JWT Secret on every request and only ever issues read calls against the Usersnap REST API athttps://platform.usersnap.com/v0.1. Nothing is written back to Usersnap.
The credentials are scoped to whichever Usersnap workspace the key was created in, so the projects you see in the picker are the ones the key has access to.
If your JWT credentials are rotated or deleted in Usersnap, the next sync will fail with an authorization error. Generate a new key in Usersnap, then open the Usersnap integration in Dovetail and update both values.
Configuration in detail
Picking projects
You can pick one or more Usersnap projects per data source connection. Every project you select contributes to the same Channel, with the project name attached to each data point. To analyze feedback from a different Usersnap workspace, generate credentials from that workspace and add Usersnap as a separate data source.What gets imported
Each Usersnap feedback item becomes one Channels data point. The text the user submitted lands as a multi-turn conversation and the rest of the feedback comes across as fields you can filter by.Always imported
| Field | Source |
|---|---|
| Feedback ID | Usersnap feedback_id |
| Submission timestamp | Usersnap created_at |
| Feedback text | One turn per text input from the feedback form |
| Project name | The Usersnap project the feedback came from |
| Link back to Usersnap | Usersnap public_link — opens the feedback in Usersnap so you can view the annotated screenshot |
Imported when present
| Field | Source |
|---|---|
| Submitter email | Usersnap email |
| Status | Usersnap status_type |
| Priority | Usersnap priority |
| Labels (as tags) | Usersnap labels[].name |
| Non-text form inputs | Boolean, numeric, or single-value form inputs are attached as fields with the input’s label |
| Custom data | Any key/value pairs on the Usersnap SDK’s custom_data payload (e.g. plan, role, MRR, user ID) — flattened onto the data point with their original keys |
Not imported
- Annotated screenshots. The screenshot image itself isn’t pulled into Dovetail — open the link back to Usersnap to view it in context.
- Assignee. Who the feedback is assigned to in Usersnap isn’t imported.
- Resolved / updated timestamps. Only the original
created_atis stored.
Sync behavior
- Backfill window. When you first connect, Dovetail imports feedback received within the period you selected.
- Ongoing sync. New feedback syncs in automatically after the initial backfill on the standard Channels cadence.
- Pagination. Dovetail fetches feedback in pages of 50 items, paginating with Usersnap’s cursor until the window is in.
- Rate limiting. If Usersnap returns a 429, Dovetail honors the
Retry-Afterheader and resumes automatically.
Troubleshooting
“Invalid credentials” when I paste the JWT ID and Secret. Either the values are wrong, the key has been deleted in Usersnap, or the user who created it lost Admin access. Generate a fresh key under Settings → API in Usersnap and try again. My project doesn’t show up in the picker. The credentials are scoped to a single Usersnap workspace — projects in other workspaces won’t appear. Confirm the JWT was generated in the workspace that owns the project, or generate a separate set of credentials and connect Usersnap again. Feedback exists in Usersnap but Dovetail says nothing imported. Likely causes:- The feedback landed before your backfill window. Reconnect with a longer window, or wait for new submissions.
- The JWT credentials were rotated. Re-enter the current values on the Usersnap integration in Dovetail.
- The user who created the JWT lost access to the project the feedback sits in.
Disconnect or delete the Usersnap source
There are two distinct actions on a Channels source. Disconnect. Stops Dovetail from ingesting any new feedback from this source. Anything already imported stays in the Channel. To disconnect, open the Channel, go to the sources list, click••• on the Usersnap source, and select Disconnect. You’ll see:
Are you sure you want to disconnect [source name] from [Channel name]? This will immediately stop the Channel from ingesting any new data. Any data already imported from this source will remain in the Channel.Delete. Removes the source and deletes every data point that was imported from it. This is permanent. To delete, click
••• on the Usersnap source and select Delete. You’ll see:
Are you sure you want to delete [source name] from [Channel name]? This will delete all associated data points. This is permanent and cannot be undone.To revoke API access entirely, delete the JWT key in Usersnap under Settings → API. That immediately invalidates any sync that tries to use it.

