Get Started

Everything you need to know about Iterato

Iterato is an AI-powered product manager designed to help businesses collect, analyze, and act on feedback directly from their digital products (websites, web apps, and mobile apps). By embedding a script and triggering context-specific feedback requests, Iterato captures real-time user insights and presents them in a structured, actionable format.

Iterato helps:

  • Gather live user feedback on features and interactions.
  • Track events and tie them to user responses.
  • Provide AI-summarized conversations and diagnostics.

Hierarchy & Verbiage

Understanding the structure of how data flows in Iterato:

Project

The top-level container. Every business or department can create one or more projects. Each project has its own unique project_id.

Event

Within a project, multiple events are created. Each event corresponds to a feedback collection point. Each event has a unique event_id.

Feedback

Associated with a specific event. Includes reaction, user info, browser logs, AI summary, IP details, and more.

Project
├── Event 1
│   ├── Feedback 1
│   └── Feedback 2
└── Event 2
    └── Feedback 3

What is a Project ID?

A project_id is a unique identifier assigned to every project created in Iterato. It acts as the primary reference key to:

  • Initialize the service
  • Fetch or filter feedback
  • Identify feedbacks within a business use case

This ID must be used to initialize Iterato SDK on your website/app.

IteratoService.init("project-ms6djd");

What is an Event ID?

An event_id refers to a specific moment or scenario within a project where feedback is collected.

You define an event_id for any context you want to capture feedback for—like a live session, purchase completion, or onboarding.

Example Use Cases:

  • live-event-poiu82
  • checkout-success-239sdj
  • feature-toggle-darkmode

How it's used:

IteratoService.collect("live-event-poiu82", ["interacted-with-chat"]);

Every feedback is mapped back to an event_id for context and segmentation.

Integration Guide

Get up and running in under 5 minutes

1

Include the Iterato Script

Add this script tag to the <head> section of your HTML page.

<script src="https://cdn.jsdelivr.net/gh/Iterato-ai/js@latest/1.0.min.js"></script>
Having issues? Use the unminified version: https://cdn.jsdelivr.net/gh/Iterato-ai/js@main/1o0.js
2

Initialize the Service

Call IteratoService.init() with your project ID to activate the SDK.

(async function () {
    try {
        const initIterato = await IteratoService.init("project-5woc8");
        if (initIterato) {
            console.log("Service initiated successfully!");
        }
    } catch (error) {
        console.error("Error during initiation:", error);
    }
})();
Returns: Promise<Boolean> — resolves to true on success.
3

Set User Context (Optional)

Associate user data with feedback for richer insights. Pass any key-value pairs you need.

IteratoService.setUser({
  uid: "User12617246148791",
  userName: "John",
  userEmail: "[email protected]",
  plan: "Premium",
  Features: ["Live Streaming", "Video Uploads"]
});
Returns: Booleantrue if user object was set successfully.
4

Trigger Feedback Collection

Call IteratoService.collect() at any event to show the feedback toast.

// Basic usage
IteratoService.collect("checkout-success");

// With configuration
IteratoService.collect("live-event-poiu82", {
    tags: ["onboarding", "cta-clicked"],
    reaction_type: "smiley",
    followup_if_negative: true,
    question_count: 3
});

Trigger Feedback Toast

IteratoService.collect(event_id, toast_config?)

Description: Triggers a feedback toast for a specific event.

Parameters:

  • event_id (String, required): Unique identifier for the event defined in your Iterato dashboard.
  • toast_config (Object, optional): Optional config object to tailor the feedback prompt.

toast_config Fields:

Key Type Description
tags Array<String> Contextual tags related to the event.
reaction_type String Determines the style of the feedback prompt. Options: "smiley" (default), or "thumb" for thumbs-based reactions. Invalid values default to "smiley".
followup_if_positive Boolean Show follow-up question after a positive response.
followup_if_neutral Boolean Show follow-up question after a neutral response. It is only applicable if reaction_type is smiley.
followup_if_negative Boolean Show follow-up question after a negative response.
focused_chat Boolean Add/Remove background overlay when user is in feedback conversation mode.
initial_prompt String Question shown with thumbs up/down.
followup_prompt String Question shown if user opts to provide more feedback.
question_count Integer Total number of questions to ask. It can be between 2 & 7. Default is 3. Recommended to set it to 3 or 4.
first_prompt_timeout Integer Defines the duration (in milliseconds) for which the initial feedback prompt remains visible before automatically dismissing itself. It can be set between 2500 (25 seconds) & 60000 (1 minute) If not provided, a default timeout of 6000 (6 seconds) is applied.
Note

Extra keys in toast_config are ignored safely.

Example Usage:

// Basic
IteratoService.collect("live-event-poiu82");

// With toast_config
IteratoService.collect("live-event-poiu82", {
    tags: ["onboarding", "cta-clicked"],
    reaction_type: "smiley" // or "thumb"
    followup_if_positive: false,
    followup_if_negative: true,
    followup_if_neutral: true,
    focused_chat: true,
    initial_prompt: "Was this onboarding helpful?",
    followup_prompt: "Would you like to tell us more?",
    question_count: 3,
    first_prompt_timeout: 6000
});
Best Practices
  • Make sure you call init() before any other function.
  • Use setUser() early if you want to track user-specific insights.
  • Events and tags should be meaningful and consistently used for best results in analytics.

For any support or help, contact us at [email protected].

API Documentation

Programmatic access to your feedback data

Use the Iterato REST API to fetch, filter, and analyze feedback data from your applications.

POST /listFeedbacks

Endpoint

https://api.iterato.ai/listFeedbacks

Method

POST

Authentication

All requests must include a Bearer Token in the header.

Authorization: Bearer <secret_key>
Content-Type: application/json

Request Parameters

Name Type Required Description
project_id String Yes The unique project ID associated with the Iterato account.
tag String No Optional filter tag to narrow down feedback results.
event_id String No Optional event identifier to filter feedback for a specific event.

Example Request

curl --location 'https://api.iterato.ai/listFeedbacks' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer your_secret_key' \
--data '{
    "project_id": "project-2141as",
    "tag": "tag_name",
    "event_id": "event-251351"
}'

Response Fields

Field Name Type Description
event_id String The associated event ID.
user_info JSON User details passed during setUser().
reaction String Either positive or negative.
conversation_summery String AI-generated summary of the feedback conversation.
created_at DateTime Timestamp in ISO 8601 (GMT +0:00) format.

Example Response

{
    "1746612495284guamgm3xe75": {
        "event_id": "live-event-2511",
        "user_info": {"username": "John", "userEmail": "[email protected]"},
        "reaction": "positive",
        "conversation_summery": "The feedback summery is not yet generated!",
        "created_at": "2025-05-07T10:08:20.714Z"
    },
    "1746612510250po1gvf4bcmg": {
        "event_id": "live-event-2511",
        "user_info": {},
        "reaction": "negative",
        "conversation_summery": "User was facing issue with live chat, reported lag",
        "created_at": "2025-05-010T11:18:26.714Z"
    }
}
Summary Generation

The conversation_summary provides an AI-generated overview of the conversation. Summaries are refreshed every 15 minutes after feedback is collected.

  • The summary will be available 15 minutes after the associated feedback is submitted.
  • Until the summary is generated, the field will return the following default string:
"The feedback summary has not yet been generated."

Error Responses

Status Code Description
400 Missing required fields (e.g., project_id).
401 Authentication failure (Invalid secret key or mismatched ID).
500 Internal server error.
Need Help?

Contact us at [email protected] for support.