Surveys
In-product surveys with targeting, display rules, event triggers and per-survey analytics.
Build a survey in the console — questions (rating, choice, open text…), who should see it, how it's displayed and what triggers it — and publish it. Nexus decides who is eligible (targeting, sampling, frequency capping); the SDK shows it and sends the answers.
Flutter
await Nexus.init(const NexusConfig(apiKey: 'nxs_live_xxx', surveysEnabled: true));The overlay mounts itself and shows popover / banner surveys and event-triggered
ones automatically (surveyAutoShow). The API, for anything custom:
final surveys = Nexus.instance.surveys;
await surveys.fetch(); // eligible surveys
surveys.active; surveys.byId('survey_1');
surveys.show(survey); surveys.close();
await surveys.respond(survey, {'q1': 9, 'q2': 'Great!'}, completed: true);
surveys.current; // ValueNotifier<NexusSurvey?> — what the overlay showsCustom UI — keep the logic, replace the look:
NexusSurveyOverlay(
child: child,
surveyBuilder: (context, controller) => MySurvey(controller), // whole survey
questionBuilder: (context, controller, question) => MyQuestion(question), // or per question
);Headless (web & servers)
Fetch eligible surveys, render them your way, submit answers.
const surveys = await nexus.surveys.fetch({ properties: { plan: 'pro' } });
await nexus.surveys.respond(surveys[0].id, { q1: 9 }, { completed: true });
nexus.surveys.dismiss(surveyId);- Send dismissals. They feed frequency capping — skip them and the same survey keeps being offered to someone who already said no.
- Pass a previous response's id back (
response_id/responseId) to append to a partial response instead of creating a new one.
Reference
Live Activities
A live, updating view of an in-progress order, ride or delivery — iOS Lock Screen and Dynamic Island, Android 16 Live Updates — driven from your backend.
Session replay
Watch what the person actually did — screens, taps, console and network — with text masked by default and correlated to the session.
