Reports
A report is the core entity in UGC Guard. It represents a user-generated content that has been reported by a reporter. It contains the main reported content as well as context surrounding the main reported content.
Creating a Report
A report can only be created using the API. See our clients for JavaScript, Dart, and Python for examples on how to create a report. The report will be created in the module that is specified in the API request using the type that is specified.
Report Content
Reports are composed of a main content. The specific item selected by the reporter(s) for review. This main content is highlighted prominently on the report page. Optionally, you can enrich a report with contextual content, which provides additional information surrounding the main content. For example, in a chat scenario, context might include messages sent before and after the reported message; for comments, it could be replies to the reported comment. You have full flexibility to include any relevant context, and actions taken on contextual items are reflected across all associated reports.
Content within a report can be of various types:
TEXTfor basic text entriesIMAGE,VIDEO, orAUDIOfor media files, referenced via theirmedia_identifiers(see Files for details)OTHERfor custom data, rendered from the content body as JSON
All content types support additional metadata in JSON format, allowing you to store supplementary information that may be useful for reviewers but does not need to be displayed prominently. For instance, you might record the number of likes a comment has received.
Content can also be linked to its creator. Since user-generated content typically originates from a specific user, associating content with its creator helps reviewers identify patterns and make more informed decisions. This also enables features such as "Related Reports". Content not linked to any creator is also possible.
Each report has a type, usually reflecting the nature of the main content or the majority of items in the report. However, you can assign types to individual content pieces as needed. For example, if a user reports a post and you want to include its comments as context, the report’s global type might be Post, while each comment is assigned the Comment type. If no specific type is set for a content item, the global report type is used by default.
Types determine which actions reviewers can take on each content item. This allows, for example, actions to be performed on comments even if the original report focused on a post. For more details, see Types.
Viewing Reports
TIP
Only admins can see all reports. Reviewers and members of your organization can see reports that are assigned to no channel or to a channel they are a member of.
Once a report has been created, it can be viewed in the admin interface. Navigate to the "Reports" section in the admin sidebar to see a list of all reports.
You can filter reports by their status, severity or report date. You can also search for reports by their ID or description. This way, you can quickly find reports that you are interested in or that need your attention.
Working with Reports
Once you have found a report that you want to work with, you can click on it to view its details. The report details page contains all the information about the report, including the reported content, the reporter, and any additional information that may be relevant.
Public Report Details
Each report has a public details page that can be accessed by the reporter(s). This page contains information on the current status of the report. But does not and will never contain the reported content or any other indication on the reported content or reporter(s). This is to ensure the privacy of the reporter(s) and to prevent any harassment or retaliation against them. The public report details page is accessible via a unique URL that is generated when the report is created. The URL can be shared with the reporter(s) to keep them informed about the status of their report. The URL is also displayed in the report details page in the admin interface.
INFO
See automatic email notifications below for more information on how to setup the automatic email notification which contains this public report details URL.
Report status
The status of a report indicates its current state in the moderation process. The possible statuses are:
- Pending: The report has been created and is waiting for review.
- AI Review: The report is currently being in the queue to be analyzed by an AI model for pre-filtering.
- In Progress: The report was pre-filtered by an AI model, its severity was set and it can now be reviewed by a human reviewer.
- Rejected: The report has been reviewed and rejected by a human reviewer. That means the reported content does not violate the community guidelines or legal requirements.
- Escalated: The report has been reviewed and escalated by a human reviewer. That means the reported content violates the community guidelines or legal requirements and the necessary steps were taken by the reviewer.
INFO
We plan to add an "Appeal" feature in the future, which will allow users to appeal to rejected reports and content creators to appeal to actions taken against them.
Report severity
The severity of a report indicates how severe the reported content is. It is set by the AI model during the pre-filtering process. It is a number between 0 and 5 where 0 means the content is not severe at all and 5 means the content is very severe. The severity is used to prioritize reports for human reviewers, so that they can focus on the most critical cases first.
Report content and context
The report details page contains the main reported content, which is the content that was reported by the reporter. This content is displayed in deep red to indicate that it is the main focus of the report. It is visible in the report content area once the user hovers over this area.
Surrounding the main reported content, you will find additional context that is relevant to the report. The reviewer can perform actions on the reported content and on the context content as well as on the creators of the (context) content.
To define these actions, you need to define them in the type of the report. See Types for more information on how to create types and actions.
Reporters
A table displays all reporters of the report. If users report content that has already been reported, they will be merged into the same report. This way, reviewers only see unique reports and can focus on the most relevant cases. Here you can see the category the reporter selected when reporting the content. You can also see the reporters name if given. Furthermore, you can see the date when the report was created and the users message, given they provided one.
Automatic email notifications
If you have configured email notifications, UGC Guard will automatically send emails to the reviewers when a new report is created. This way, reviewers can stay informed about new reports and can take action when necessary.
If turned on, UGC Guard will also send emails to the reporters when their report has been reviewed. This way, reporters can stay informed about the status of their reports and can see if their report was rejected or escalated.
If turned on, UGC Guard will also send emails to the creators of the content when their content has been reported.
WARNING
We can only send emails to reporters and content creators if you provide us with the email address of the reporter and content creator during the submission of the report. If you do not provide us with the email address, we cannot send emails to them.
Deleting a Report
There is no way to delete a report. Once a report has been created, it cannot be deleted. This is to ensure that the moderation process is transparent and that all reports are kept for auditing purposes. If you want to remove a report from the list, you can change its status to "Rejected" or "Escalated". This way, the report will not be displayed in the list of pending reports, but it will still be kept for auditing purposes.
If necessary, you can use the API to delete a report, but this is not recommended and should only be done in exceptional cases.
DANGER
Deleting a report can lead to a loss of important information, if there is a legal dispute about the reported content.
Report media
Once a report has been rejected or escalated, the media files that were uploaded with the report will be deleted after a given amount of time. This is to ensure that the media files are not kept indefinitely and to save storage space.
In the self-hosted version, you can configure the amount of time after which the media files will be deleted. If you are using the hosted version, we will inform you on the dashboard about the amount of time after which the media files will be deleted. If you want to change this, please contact us.
WARNING
UGC Guard will keep media files of escalated reports for a longer period of time. Sometimes, legal disputes can arise over reported content, and we want to ensure that legal authorities can get the evidence they need to fulfill their tasks. If these legal disputes take longer than the configured time, please download the media files or contact us to whitelist this media until the dispute is resolved. As we are only the provider of the moderation solution, you should ensure that you have access to the original media files.
Exporting a report
WARNING
Exports may contain sensitive user information and, in some cases, content that could be illegal.
You can export the current state of a report as a PDF file. This feature is useful for archiving reports or providing documentation to local law enforcement. If a report includes image media files, such as profile pictures or content-images, they will be embedded in the PDF, while video, audio, and other file types are excluded. PDF files are never stored on UGC Guard, neither SaaS nor self-hosted.
TIP
Each export action is logged for auditing purposes. Logs can not be removed.
Report Forms
Report forms streamline the reporting process by providing ready-to-use user interfaces tailored for reporters.
You can create and manage unlimited report forms for each module, allowing flexible customization to suit your workflow.
Setting Up Report Forms
To configure report forms, go to the modules page and select "Forms" for your chosen module. From there, you may select an existing form or create a new one. The form’s name and description are used for internal organization and reference.
Customize your report form by specifying a title, image, body text, and final message. Optionally, request the user's email address and enable captcha verification for added security.
When a user submits a report, the completed form data is appended as URL parameters to the specified redirect_url, and the user is redirected accordingly.
Note: The redirect URL is responsible for creating the actual report. Refer to our client documentation for step-by-step instructions on integrating report creation.
Redirect URLs
When configuring a report form, specify the allowed redirect_urls, separated by commas.
DANGER
The redirect URL must begin with a registered redirect URL. For example, if https://example.com/report/ is registered, then https://example.com/report/2 is valid.
Never register a URL without a trailing slash. Registering https://example.com would inadvertently allow https://example.com.evil.com as well.
Report Form URL
The URL for each report form is listed in the report forms table.
If you have registered https://example.com/report/ as a redirect URL, you can redirect users to:
https://ugc-guard.com/form/ID?redirect_url=https://example.com/report/2
Success Page
Each report form includes a success page. To access it, redirect to your form URL without the redirect_url parameter and append /success.
This is useful for confirming successful report submissions, especially when the form is opened in a new tab or iframe.
Example:
https://ugc-guard.com/form/ID/success
Error Page
Each report form also includes an error page. Simply append /error to your form URL without the redirect_url parameter.
Example
https://ugc-guard.com/form/ID/error
Reports of changing content
When a user reports content, your service sends the current version of that content to UGC Guard. If the creator later edits or deletes the reported content on your platform, the original version remains stored in UGC Guard. This ensures the integrity of the moderation process.
If the creator subsequently modifies the content, such as making it more severe, and another user reports it, UGC Guard will not create a new report or update the existing one, since the unique partner ID (UPI) remains unchanged. Instead, UGC Guard simply adds the new reporter to the existing report. Because reports cannot be altered after creation, you need a way to generate a new report for the updated content.
To achieve this, construct the UPI by combining the content’s original ID and the timestamp of its latest change, separated by a #. Both values should be available in your database already.
For example, if a chat message has the ID 42 and a last change timestamp of 1758178039333, set the UPI to 42#1758178039333. If the creator edits the message, update the timestamp (e.g., to 1758178109593) and set the UPI to 42#1758178109593. This approach ensures that a new report is created for each distinct version of the content. If the content remains unchanged and another user reports it, they will be added as a reporter to the existing report.
Note: This logic applies only to content items. Creators (persons) are automatically updated by UGC Guard whenever their information changes in any report or when they act as a reporter.
Actions
Make sure your Action Endpoints split these UPIs at the # character, using the first part to locate the correct object in your database.
Related Reports
UGC Guard will add reports of the same content or by the same content creator, even if they have different UPIs, to the Related Reports table. This way you and your reviewers can keep track of reports linked through changes.