# Add a feedback widget to a Duda site

> Paste the widget script into the site-wide head HTML in your Duda site settings, then publish. For agencies, create one Escuta Produto product per client, use each client's domains in allowed origins, and test every site on its live domain.

Source: https://escutaproduto.com/resources/feedback-widget-duda
Last updated: 2026-10-11

## Where does Duda put site-wide code?

Duda sites take custom code in a site-wide head area, which runs on every published page. The feedback widget belongs there, because the script loads once and adds a floating Feedback button to the whole site. Custom code may depend on the Duda plan you use, so confirm that your site or account allows it before you start.

If you build for clients, this one step repeats for every site, which is why a short checklist matters more here than it does for a single site. The steps below work for one site, and the agency section covers the rest.

## How do you add the widget to a Duda site?

Open the site's settings and find the custom code area for the head section. The label can change between editor versions, so follow the words you see rather than a fixed path.

1. Open the site settings and go to the head code field.
2. Paste the script tag from your product's install page:

```html
<script src="https://escutaproduto.com/widget.js" data-key="pk_your_product_key" defer></script>
```

3. Save the change.
4. Publish the site. Head code reaches visitors only after the site is published with the new code.

The script is about 5 KB compressed and has no dependencies. Because it uses defer, it does not block the page from rendering, and it draws its button inside a Shadow DOM so the client's styles do not interfere with it. Set data-color to match the client's accent if the default does not fit.

## How do agencies manage many client sites?

An agency usually has one account and many sites, each with its own owner and domains. The safest pattern is one Escuta Produto product per client. Each product has its own key, its own allowed origins and its own inbox, so one client's bugs never appear in another client's list.

Keep a simple record for each client: the Duda site name, the product name in Escuta Produto, the product key and the domains. A shared spreadsheet is enough. When you hand over a site or rotate a key, you will know exactly which product to update.

## Why should each client have a separate product?

Feedback is client information. A clinic's patients and a restaurant's diners should not see each other's complaints, and your client should not see another client's inbox when you share a screen. Separate products keep the inbox filter simple and let you give each client a clean view of their own feedback.

It also keeps the notifications clean. Each product can post to its own Slack or Discord webhook, so a client's team hears about its own messages, not the whole agency's.

## How do you set allowed origins for client domains?

Allowed origins tell Escuta Produto which sites may send feedback with a product's key. Add each client's domains with the full https address, such as https://client.example.com. If the client's site answers on both the bare domain and the www address, add both.

Requests from any other address get a 403 response. When a client moves to a new domain, add it to the product before the change goes live, or feedback from the new address will be rejected until you do.

## How do you test a Duda site before handing it over?

Test on the live domain, not the temporary address the builder gives a site while it is being built, unless the client uses that address.

1. Open the live site in a private window, so you see the page as a visitor would.
2. Confirm the Feedback button appears in the corner.
3. Send a test message that starts with the client's name and "test", so you can find it later.
4. Open the item in the client's product and check the page URL.
5. Check the layout on a phone. The floating button should not cover the client's call-to-action or booking button.

Record the result in your handover notes, so the client knows the widget was tested before launch.

## Why isn't the Duda widget showing for a client?

- The head code may have been saved without publishing the site.
- The client may have a second domain serving the same site, and the widget loaded there is rejected because the domain is not in allowed origins.
- A content blocker or a Content Security Policy can stop the file from loading. The browser console names the blocked URL.
- A duplicate script on the site can produce two buttons. Check the head code once and remove any extra copy.

## Running every client's feedback from one place

Once each client has a product, your team can work through the inbox per client. Filter by status to see what is new, use the type filter to pull out bugs first, and write internal notes to explain what you did. The saved page URL shows which page of the client's site a message came from, which makes a fix quicker to find.

Escuta Produto does not send messages to customers, so reply from your own email. Keep the reply and the note together in the client's record, so the history is in one place.

## Related

- The full widget options, including the JavaScript API, are in the [widget docs](/docs/widget).
- The hosted page is useful for clients whose builder does not allow custom code, see the [hosted page docs](/docs/hosted-page).
- Other builders are covered in [Tilda](/resources/feedback-widget-tilda) and [Squarespace](/resources/feedback-widget-squarespace).
- For how to sort feedback once it arrives, read [how to triage customer feedback](/resources/how-to-triage-customer-feedback).

## Frequently asked questions

### Where does the feedback widget go on a Duda site?

Paste the script tag into the site-wide head code field in the site settings, then save and publish the site. The floating Feedback button then appears on every published page.

### Should an agency use one Escuta Produto product for all clients?

Use one product per client. Each product has its own key, allowed origins and inbox, so one client's feedback never appears in another client's list, and each client can have its own Slack or Discord webhook.

### Why is feedback from a Duda client site rejected?

A 403 response means the domain is not in that product's allowed origins. Add the full https address of the client's site, including the www version if it is used, and any second domain that serves the same site.

### How do I test a client's Duda site before launch?

Open the live domain in a private window, confirm the button appears, send a test message and check the page URL in the inbox. Check the layout on a phone too, then note the result in the client's handover record.
