How can we help? 👋

Add Senja testimonials to your app

Let your users add their Senja testimonials to your app

Let your users add their Senja testimonials directly in your product.

 

Our integration allows your users to load a modal, pick one of their Senja testimonial widgets, and embed it directly into a page in your app, for example, their profile page.

 

This functionality is ideal for landing page builders, profile pages, marketplaces, and link-in bio tools. Anywhere your users may want to quickly add their current and new testimonials without coding or fussing.

Watch our integration in action

This is the user experience of adding testimonials in your app:

Here’s how to do it:

Step 1: Add a Senja button to your app

<script src="https://static.senja.io/dist/integration.js" type="text/javascript" async="true"></script>

<script>
	async function getWidget() {
		const id = await window.SenjaIntegrationPlatform.getWidgetId({
			// optional: if you don't want Senja to open a popup and would
			// prefer the widget picker to be embedded, use this argument.
			target: "#the-id-of-your-container"
		});
		if(!id) return;
		// save the widget id in your database/component
	}
</script>

<button onClick="getWidget()">
	Add your Senja widget
</button>

This will open the Senja modal and return the ID from Step 3.

Step 2 (Senja): We will allow the user to log in and pick their widget

The button will load a modal. The user will then connect their Senja account.

Notion image

The user will pick a widget and click Select this widget.

Notion image

Step 3: Inject the widget code into your site

The Senja widget embed code looks like this:

<script async="true" src="https://static.senja.io/dist/platform.js" type="text/javascript"/>
<div data-id="{THE WIDGET ID HERE}" data-mode="shadow" data-lazyload="false" class="senja-embed"/>

You can add it where you want the widget to be displayed. You may need to rewrite this code for your Framework.

If you were using React/NextJS, you can embed it like this:

import { useEffect } from "react"

export default function SenjaEmbed(props) {
    let id = props.widgetId;
		let lazy = false;

		// Inject Senja script into the head of the dom
    useEffect(() => {
				// Check if the script is already in the head of the dom
        let script = document.querySelector(
            `script[src="https://static.senja.io/dist/platform.js"]`
        );

        if (script) return;

        script = document.createElement("script")
        script.src = "https://static.senja.io/dist/platform.js";
        script.async = true
        script.type = "text/javascript"
        document.body.append(script);
    }, []);

    return <div className="senja-embed" data-lazyload={lazy} data-id={id}></div>
}

Your widget should now be rendered on your page. Here’s how it will look on the page:

Notion image
 
Did this answer your question?
😞
😐
🤩