---
title: "User Feedback"
description: "Learn more about collecting user feedback when an event occurs. Sentry pairs the feedback with the original event, giving you additional insight into issues."
url: https://docs.sentry.io/platforms/dotnet/guides/log4net/user-feedback/
---

# Set Up User Feedback | Sentry for log4net

When a user experiences an error, Sentry provides the ability to collect additional feedback. You can collect feedback according to the method supported by the SDK.

## [Use the .NET SDK](https://docs.sentry.io/platforms/dotnet/guides/log4net/user-feedback.md#use-the-net-sdk)

User Feedback for **[ASP.NET](https://docs.sentry.io/platforms/dotnet/guides/aspnet/user-feedback.md#integration)** or **[ASP.NET Core](https://docs.sentry.io/platforms/dotnet/guides/aspnetcore/user-feedback.md#integration)** supply integrations specific to supporting those SDKs.

You can create a form to collect the user input in your preferred framework, and use the SDK's API to send the information to Sentry. You can also use the widget, as described below. If you'd prefer an alternative to the widget or do not have a web frontend, you can use this API:

```csharp
var eventId = SentrySdk.CaptureMessage("An event that will receive user feedback.");

// The associated event is optional
SentrySdk.CaptureFeedback("It broke.", "user@example.com", "The User", associatedEventId: eventId);
```

Note that Sentry will reject and drop any feedback events where the email address is invalid. To avoid this, the Sentry SDK for .NET removes invalid email addresses before sending feedback. Ideally you should validate the email address before calling this API.

## [Crash-Report Modal](https://docs.sentry.io/platforms/dotnet/guides/log4net/user-feedback.md#crash-report-modal)

Our embeddable, JavaScript-based, Crash-Report modal is useful when you would typically render a plain error page (the classic `500.html`) on your website.

To collect feedback, the Crash-Report modal requests and collects the user's name, email address, and a description of what occurred. When feedback is provided, Sentry pairs the feedback with the original event, giving you additional insights into issues.

The screenshot below provides an example of the Crash-Report modal, though yours may differ depending on your customization:

### [Integration](https://docs.sentry.io/platforms/dotnet/guides/log4net/user-feedback.md#integration)

The modal authenticates with your public DSN, then passes in the Event ID that was generated on your backend.

Make sure you've got the JavaScript SDK available:

```html
<script
  src="https://browser.sentry-cdn.com/10.47.0/bundle.min.js"
  integrity="sha384-K/htRVM3e8puULNYTAmVnC7tO1cacM39dLgwX2WZtl3LHbmKR3xrYf6kJ0tipvJo"
  crossorigin="anonymous"
></script>
```

You'll then need to call `showReportDialog` and pass in the generated event ID. This event ID is returned from all calls to `CaptureEvent` and `CaptureException`. There is also a function called `LastEventId` that returns the ID of the most recently sent event.

```html
<script>
  Sentry.init({ dsn: "___PUBLIC_DSN___" });
  Sentry.showReportDialog({
    eventId: "{{ event_id }}",
  });
</script>
```

## Pages in this section

- [Configuration](https://docs.sentry.io/platforms/dotnet/guides/log4net/user-feedback/configuration.md)
