Skip to content

EveryHello Feedback

Ask for feedback at the moment it matters.

Trigger a detailed report or a five-face experience rating from your own interface. Attach trusted user identity and application context when it helps your team understand the submission.

Two feedback modes, one SDK

Experience mode submits a one-tap score. Report mode collects a bug, idea, or general observation, with an optional user identity and attachment.

Interactive example. Nothing is submitted.

Acme Studio

Feedback

How was your experience?

Choose the face that best matches the moment.

Install the Feedback SDK

Create and activate Feedback in your workspace, allow your production domains, then add the generated script before the closing </body> tag.

HTML
<script
  src="https://www.geteveryhello.com/sdk.js"
  data-feedback-key="fdb_YOUR_KEY"
  async
></script>

Trigger Feedback from HTML

Declarative triggers work with buttons or links added before or after the SDK loads. The SDK listens for clicks on the feedback attribute.

HTML
<button data-everyhello-feedback="report">
  Send feedback
</button>

<button data-everyhello-feedback="experience">
  Rate your experience
</button>

Open a specific report type

Use bug, idea, or general when the surrounding action already tells you what the visitor intends to submit.

HTML
<button
  data-everyhello-feedback="report"
  data-everyhello-feedback-type="bug"
>
  Report a problem
</button>

Open Feedback from JavaScript

Programmatic triggers are useful after checkout, onboarding, task completion, cancellation, or an error boundary where your application already has useful context.

JavaScript
window.EveryHello.feedback.open({
  mode: "report",
  type: "bug",
  context: { orderId: "ORDER-123" }
});
MethodPurpose
open(options)Open report or experience mode. Options can include report type and one-time context.
close()Close the open feedback dialog.
identify(user)Attach an external user ID, name, and email to future submissions.
setContext(value)Merge persistent application context into future submissions.
reset()Clear the identified user and persistent context, typically at sign out.
on(name, callback)Listen for ready, open, close, submitted, or error events. Returns an unsubscribe function.
off(name, callback)Remove a previously registered callback.

Identify the visitor and add context

Identification prevents visitors from retyping information your application already knows. Context should contain only fields that help someone review the feedback.

JavaScript
window.EveryHello.feedback.identify({
  id: currentUser.id,
  name: currentUser.name,
  email: currentUser.email
});

window.EveryHello.feedback.setContext({
  plan: "growth",
  workspaceId: currentWorkspace.id
});

Reset on sign out

Clear identity and context before another person uses the same browser session.

JavaScript
window.EveryHello.feedback.reset();

Listen for SDK events

Events let your application respond to widget state without controlling the submission request itself.

JavaScript
const unsubscribe = window.EveryHello.feedback.on(
  "submitted",
  ({ submissionId, kind, rating }) => {
    console.log({ submissionId, kind, rating });
  }
);

// Stop listening when your view is removed.
unsubscribe();
EventPayload
readyNo required fields. The iframe is ready to receive identity, context, and open commands.
openThe active mode.
closeNo required fields.
submittedSubmission ID, kind, and rating when experience mode was used.
errorAn error code such as submit_failed.

Submission data

Depending on the selected mode and the values you provide, a submission can include:

  • Feedback kind, message, rating, and an optional PNG, JPG, WebP, or PDF attachment up to 5 MB.
  • External user ID, name, and email.
  • Custom context set globally or supplied for one open action.
  • Source URL without query or fragment details, page title, locale, viewport size, browser user agent, visitor ID, and SDK version.

Do not pass secrets or regulated data

EveryHello is not offered as a HIPAA-compliant service. Avoid tokens, passwords, payment details, protected health information, and unnecessary personal data in feedback context.

Content Security Policy

Merge the EveryHello sources into an existing restrictive policy.

HTTP header
Content-Security-Policy:
  script-src 'self' https://www.geteveryhello.com;
  frame-src https://www.geteveryhello.com;