# Share and review device renders

Open a run's screenshots to review layout, images, typography and actions across clients. Start with the targets most important to your audience, then investigate differences using the same delivered email.

## Compare and comment

Use compare mode for two clients in a run or a previous run after a template change. Attach a comment to the whole run for general feedback, or to the target and screenshot when the issue is specific to one client. Resolve a comment after checking the replacement evidence; reopen it if the issue returns.

See [the dashboard review walkthrough](/docs/device-renders/#add-comments-and-resolve-review-notes) for the controls and API example.

[API endpoint: `createDevicePreviewFeedback`](/docs/api/#createDevicePreviewFeedback)

[API endpoint: `updateDevicePreviewFeedback`](/docs/api/#updateDevicePreviewFeedback)

## Share with a reviewer

Create a share link when someone needs to see the result without your API key. Inspect the shared view before distributing it, especially if the source email contains customer information. Use synthetic campaign data for public examples.

```javascript
// Create a share link, then read public image URLs from the shared result.
const shareLink = await mailslurp.devicePreviewsController.createDevicePreviewShareLink({
  runId,
  createDevicePreviewShareLinkOptions: {
    label: "Device render example share link",
  },
});

const shareLinks = await mailslurp.devicePreviewsController.getDevicePreviewShareLinks({
  runId,
});

const sharedResult = await mailslurp.devicePreviewsController.getDevicePreviewSharedResult({
  shareToken: shareLink.token,
});

const publicImageUrls = sharedResult.screenshots
  .map((screenshot) => screenshot.imageUrl)
  .filter(Boolean);

const publicScreenshotImage =
  await mailslurp.devicePreviewsController.getDevicePreviewSharedResultScreenshot({
    shareToken: shareLink.token,
    screenshotId: sharedResult.screenshots[0].screenshotId,
  });
```

This uses the `mailslurp` client and `runId` from [the render workflow](/docs/device-renders/#create-runs-from-stored-email). List existing share links to avoid unnecessary duplicates. Revoke a link when external access is no longer needed.

[API endpoint: `deleteDevicePreviewShareLink`](/docs/api/#deleteDevicePreviewShareLink)

## Notify the team

Connect Slack or Microsoft Teams through [device preview notifications](/docs/device-renders/#notify-reviewers-in-slack-or-microsoft-teams), select the run events and send a test notification. A notification that rendering completed is the start of review; it is not an approval of the email's design.

Before approving the send, review [Email Audit](/docs/email-audit/) for content findings and [inbox placement](/docs/inbox-placement/) for provider folder outcomes. Keep the review tied to the final campaign revision.
