Skip to main content

The HTML Widget: Bring Website Visitors to Your Instagram

Embed the Inrō HTML widget on your website to turn visitors into Instagram contacts and trigger a scenario automatically.

The HTML Widget puts a small button on your website that sends visitors into an Instagram conversation with you, and fires a scenario automatically when they message you. It's a clean bridge between your website traffic and your Inrō automations, and it works on every plan.

How it works

A visitor clicks the widget on your site, lands in your Instagram DMs with a code already filled in, and sends that code. Inrō matches the code, runs your scenario, and takes the conversation from there.

The HTML widget on a webpage, showing the code box, the copy action, and the redirect into Instagram DMs.

Step 1: Create a scenario with the HTML Widget trigger

Go to Automation → Scenarios and create a new Custom scenario. In the trigger picker, choose Others → HTML Widget code is sent.

The trigger picker with 'HTML Widget code is sent' selected under Others.

Step 2: Customise the widget text

In the trigger's configuration panel, set:

  • Header text: the line above the code (for example, "Get your free guide on Instagram").

  • Button text: the label on the send button (the default is "Send code").

A live preview shows how the widget will look.

The HTML Widget trigger config panel showing the header-text and button-text fields with a live preview.

Step 3: Copy and embed the code

When you're happy with the text, copy the embed code. It has two parts:

  • A <script> tag that loads the widget.

  • An <inro-widget> tag that defines your specific widget.

Paste both wherever you want the widget to appear.

The embed code panel showing the script tag and the inro-widget tag.

⚠️ Don't change or remove the code and username attributes inside the <inro-widget> tag. The code identifies which scenario to fire, and username is your Instagram handle that the button links to. Without username, the button has nowhere to go.

If you're placing the widget more than once on a page, you can include the <script> tag once in your <head> and repeat only the <inro-widget> tag where you need it.

Optional: style the widget with custom CSS

To match the widget to your site, toggle Enable styling with custom CSS before copying the code. This adds mode="custom" to the tag, which lets your site's stylesheet target these classes:

  • inro-widget (the outer container)

  • inro-header (the header text)

  • inro-code-container (wraps the code and copy icon)

  • inro-code (the code itself)

  • inro-icon (the copy icon)

  • inro-button (the send button)

  • inro-button-icon (the button icon)

The 'Enable styling with custom CSS' toggle in the trigger config panel.

Optional: pass data from your website into the scenario

You can attach data from the page to the widget so it's available as a variable inside your scenario. Add a data- attribute with any key and value.

For example, on a Shopify product page:

<inro-widget  code="IG_3741"  username="yourusername"  data-product="{{ product.title }}"></inro-widget>

Inrō folds that data into the code the visitor sends. Inside your scenario, read it with {{widget.key}}, so the example above gives you {{widget.product}}.

A scenario message action using the {{widget.product}} variable.

⚠️ Data attributes make the code longer, because the value is folded into the code the visitor sends (so IG_3741 might become something like IG_3741_52HBn5FpMfOV…). Short values like a product title are fine, but very long strings make for an unwieldy code. For the full list of variables, see Variables & Personalisation Guide.

🐾 Netsuke's Tips

  • The widget works best on specific, high-intent pages: product pages, pricing pages, a blog post with a lead magnet. On the homepage alone it usually underperforms.

  • Use data- attributes to carry context into the scenario. If someone clicks from your pricing page, pass the page name so your first DM can say "Thanks for reaching out from our pricing page."

  • Unlike referral links, the HTML Widget works on both Instagram mobile and Instagram web, so it fires no matter how the visitor opens the DM.

  • Test it before you publish: click your own widget, send the code, and confirm the scenario runs.

What's next?

For other ways to start a scenario from outside Instagram, see Webhook Triggers: Fire Scenarios from External Apps and Triggers: The Complete Reference.

Did this answer your question?