Capture
Turn customer signals into structured insight, from every channel.
- Feature Requests
- Surveys
- Forms
- Waitlist
Every customer-facing surface — feedback, roadmap, changelog, help center, support, status, surveys, forms, custom pages, automations, and more — from one dashboard, behind one API.
Turn customer signals into structured insight, from every channel.
Answer customers with tools they never have to be taught.
Keep everyone in the loop, across every surface you own.
Turn happy customers into your best growth channel.
Publish customer-facing pages without writing any code.
Wire your stack to every event the platform captures.
See the whole customer, and what actually moves them.
Every module takes a sentence — surveys, automations, help articles, release notes. Build in the dashboard, or over MCP from Claude Code or Cursor. Every draft is validated against the schema and created disabled, so nothing reaches a customer until you have read it.
Wishboard, roadmap, changelog, help center, status and support in a single themed portal — your logo, your colours, your domain. Or drop the same modules inside your product with the SDK and skip the portal entirely.
An agent console with assignment, SLAs, macros and internal notes, and a customer portal in front of it. Every ticket is joined to the customer record — including the requests they voted for — and one click turns a ticket into tracked work.
The API returns only the surveys a given customer still owes, so the question goes in your own UI — or runs hosted on your domain. Fingerprinted responses, per-customer targeting, and a response rate on every question so the one that loses half your respondents is obvious.
35 event types across feedback, support, status, monitors, billing, forms, surveys, releases and affiliates. Forty steps, sixteen of which act inside AppGram itself: replying to the ticket, publishing the incident, writing the release note.
Votes, tickets, survey answers and testimonials on a single timeline, with a health score computed from all of it. Import your existing users server-to-server through the REST API, or let the portal build the directory as people arrive.
Request text or video testimonials with consent captured, and publish the approved ones as an embeddable wall.
Run referrals on the same records: tracked links, commission tiers, cookie windows and a hosted partner dashboard with payout history.
Drop it in
Five SDKs over one API. Install the one that matches your stack, point it at your project, and every module renders with your own data — no backend to stand up.
npm install @appgram/react import { AppgramProvider, useWishes } from '@appgram/react';
function FeatureRequests() {
const { wishes, isLoading } = useWishes();
if (isLoading) return <Spinner />;
return wishes.map((wish) => (
<article key={wish.id}>
<h3>{wish.title}</h3>
<p>{wish.description}</p>
</article>
));
}
export default function App() {
return (
<AppgramProvider
config={{
projectId: 'proj_xxx',
orgSlug: 'acme',
projectSlug: 'feedback',
}}
>
<FeatureRequests />
</AppgramProvider>
);
} import { AppgramProvider, WishList } from '@appgram/react-native';
export default function Feedback({ navigation }) {
return (
<AppgramProvider
config={{
projectId: 'proj_xxx',
orgSlug: 'acme',
projectSlug: 'feedback',
}}
>
<WishList
showSubmitButton
onWishPress={(wish) =>
navigation.navigate('Wish', { id: wish.id })
}
/>
</AppgramProvider>
);
} <!-- One tag, no build step, any stack. -->
<script
src="https://cdn.appgram.dev/appgram.min.js"
data-project="your-org/your-project"
></script>
<!-- Or configure first, then load: -->
<script>
window.appgramSettings = {
projectKey: 'your-org/your-project',
mode: 'floating',
position: 'bottom-right'
};
</script>
<script src="https://cdn.appgram.dev/appgram.min.js"></script> import 'package:appgram_flutter/appgram_flutter.dart';
import 'package:flutter/material.dart';
void main() {
runApp(
AppgramProvider(
config: AppgramConfig(
projectId: 'proj_xxx',
orgSlug: 'acme',
projectSlug: 'feedback',
),
child: const MaterialApp(
home: HelpCenter(),
),
),
);
} import SwiftUI
import AppGramSDK
@main
struct FeedbackApp: App {
init() {
AppGramSDK.shared.configure(
projectId: "proj_xxx"
)
}
var body: some Scene {
WindowGroup {
AppGramSDK.shared.feedbackView()
}
}
} Preview
A real production portal — votes, roadmap, releases, help center — on the desktop and on the phone. Open it up and click through exactly what your users get.
Load the live portal → Open the live portal →Run on our managed cloud, or talk to us about deploying into your own infrastructure — self-hosted deployments are scoped with you as part of an Enterprise engagement.
Sign in with Google or GitHub and turn on two-factor auth on any plan. Team roles and scoped API keys decide who reaches what, audit logs record what they did, and retention windows and user anonymisation decide how long any of it is kept.
FAQ
You can be up and running in minutes. Create an account, pick a project slug, and share the link. Serving the portal from your own domain (e.g. feedback.yourcompany.com) is available from the Start plan up.
Roadmaps carry their own visibility — public, or private to your team — so you can publish one roadmap for customers and keep another internal. Feedback boards themselves are public; that is what lets people vote without an account.
Yes — native integrations for Slack, Linear, Jira, Intercom, Zendesk and RevenueCat, among others. Discord, Microsoft Teams and Telegram are reachable as automation steps. For everything else there is a REST API and signed webhooks with delivery logs and retries.
Everything moves over TLS, and credentials you connect — email providers, payout accounts, automation secrets — are sealed with AES-256-GCM before they are stored. Sign in with Google or GitHub on any plan, and turn on two-factor auth on any plan. Team roles and scoped API keys decide who reaches what, audit logs record what they did, and you can set a retention window or anonymise a user's data outright.
Connect Featurebase, Intercom, Zendesk or Crisp with an API key and the importer brings your posts, votes, comments, statuses and help articles across as a resumable background job. End users can also be imported server-to-server through the REST API.
Get started
Everything you were bolting together — feedback, roadmap, changelog, help, support, status, forms — in a single workspace with one API and one bill.
Cancel anytime. Yours to test on real customers.