Skip to content
Blog

Feedback

Collecting feedback shouldn’t mean standing up a backend, configuring email forwarding, or wiring up a third-party service. One SDK call sends a user’s thoughts to your Tribe dashboard, and that’s it.

import { Tribe } from "@tribecloud/sdk";
await tribe.feedback("Love the new dashboard!");

That single line sends feedback to Tribe, where it shows up in your dashboard. Nothing else to set up.

You can attach a feedback type and an optional email address for follow-up:

await tribe.feedback("The export button is broken", {
type: "bug",
});

Common types: "bug", "feature-request", "general"

function FeedbackForm() {
const [message, setMessage] = useState("");
const [type, setType] = useState("general");
const [sent, setSent] = useState(false);
const [error, setError] = useState("");
const handleSubmit = async (e) => {
e.preventDefault();
try {
await tribe.feedback(message, { type });
setSent(true);
} catch (err) {
setError(err.message);
}
};
if (sent) return <p>Thanks for your feedback!</p>;
return (
<form onSubmit={handleSubmit}>
<select value={type} onChange={(e) => setType(e.target.value)}>
<option value="general">General</option>
<option value="bug">Bug Report</option>
<option value="feature-request">Feature Request</option>
</select>
<textarea
value={message}
onChange={(e) => setMessage(e.target.value)}
placeholder="What's on your mind?"
required
/>
{error && <p style={{ color: "red" }}>{error}</p>}
<button type="submit">Send Feedback</button>
</form>
);
}

All feedback lands in the Tribe dashboard under your site’s Feedback section. You’ll see:

  • The message itself
  • The feedback type
  • When it was submitted
  • Which user sent it, if they were logged in