Product Guide

Guide

Everything you need to know about Signalshoot.

Features

All features are available on every plan. Paid plans only increase usage limits.

Ingest API

A single HTTP POST endpoint receives feedback from any platform — React Native, Flutter, Swift, Kotlin, or plain fetch.

No SDK to install.

Works with anything that speaks HTTP.

Fully Customizable Schema

You are not limited to bug/feedback/inquiry.

Define any type you want — "report", "praise", "crash", "review", or anything that fits your app.

The same applies to channels: use "contact-form", "settings-page", "onboarding-survey", or any string.

You can also attach arbitrary metadata as a JSON object (app version, OS, device, screen name, user plan, etc.).

Every type and channel you send is automatically picked up by the dashboard — it appears as a filter button without any configuration.

Metadata is displayed as key-value pairs in the feedback detail view.

Feedback Inbox

All feedback lands in a single inbox.

You can filter by type (bug, request, inquiry, or any custom type you defined), status (new, in progress, resolved, archived), source (in-app, App Store, Google Play, manual), channel (whatever entry points you named — "contact-form", "settings-page", etc.), and priority (high, medium, low).

A free-text search scans feedback messages.

Quick-stat badges at the top show counts for unresolved, unread, needs-reply, and high-priority items — click any badge to instantly filter to that subset.

The list paginates with configurable page sizes and shows a running item count.

You can also toggle filters for "unread only", "needs reply only", or "high priority only" to focus your triage session.

Tags, Priority & Status

Each feedback entry has three triage dimensions.

Status tracks where it is in your workflow: "new" (just arrived, unreviewed), "in progress" (you're looking into it), "resolved" (fixed or answered), or "archived" (no longer relevant).

Tags are free-form labels you create on the fly — type a tag name and press enter.

Use them to group feedback by feature area ("map", "notifications", "billing"), by root cause ("crash", "ui-glitch", "missing-feature"), or by anything else that helps you spot patterns.

Tags appear as filter options in the inbox and as aggregation categories on the dashboard.

Priority (high, medium, low) controls sort order in the inbox — high-priority items float to the top.

The "high priority only" toggle in the inbox lets you zero in on urgent reports during triage.

Reply to Users

When feedback includes a user_id, you can write a reply directly from the feedback detail view in the dashboard.

The reply is stored in the database with sender marked as "developer".

On the app side, you call GET /api/v1/feedback/:app_id/replies?user_id=xxx to retrieve all feedback entries for that user, each with its replies array attached.

Each reply object contains an id, sender ("developer" or "user"), message text, and created_at timestamp.

Your app displays these replies however you choose — an in-app notification, a message thread, a support chat view.

For threaded follow-ups, the user sends a new POST request with parent_id set to the original feedback ID.

This adds a reply with sender "user" to the existing thread and reopens the feedback if it was resolved or archived.

The conversation stays in one place: one feedback entry, multiple replies back and forth.

One-click Translation

Click the "Translate" button on any feedback entry to translate its message into your primary language.

Translation runs on Cloudflare Workers AI using the Meta M2M100 1.2B model, which supports translation between 100+ languages.

The system auto-detects the source language (currently distinguishes CJK text from other languages) and translates to your configured target language.

Translation happens on-demand — nothing is pre-translated, and you only translate what you need.

If the source and target language are the same, the original text is returned as-is.

If the translation service is temporarily unavailable, a fallback message is shown instead of an error.

Available on all plans at no extra cost — there are no per-translation charges.

Store Review Logging

On the Setup page, paste raw review text from App Store Connect, the Google Play Console, or Apple review board emails into the import field.

The parser reads the pasted content and auto-detects: star rating (e.g. "2/5"), app version (e.g. "Version 2.1.0"), and the review source (App Store, Google Play, or Apple review guideline).

A normalized draft is created with the extracted metadata and appropriate tags pre-filled.

You review the draft, adjust if needed, and submit it to your inbox.

The result is a feedback entry with source set to "app_store" or "play_store", the rating stored as metadata, and the version number tagged — sitting right next to your in-app submissions.

This is a manual paste flow on all plans; automated sync is planned for paid tiers.

Dashboard & Recurring Topics

The dashboard overview shows four stat cards at the top: today's feedback count, this week's count, total unresolved items, and all-time total.

Below that, four breakdown charts show feedback distribution by type, by priority, by source, and by tag — so you can see at a glance whether bug reports are spiking, which source generates the most noise, or which tags keep appearing.

The "Recurring Topics" section surfaces tags sorted by frequency, highlighting what your users mention most often.

An "Action Items" section shows your open tasks with their current status (todo, doing, done) and linked feedback counts, giving you a quick view of what is being worked on and what is still waiting.

Action Items

From any feedback detail view, you can create an action item — a task with a title that describes what needs to happen (e.g. "Fix timezone crash on schedule screen").

Action items have three statuses: todo (not started), doing (in progress), and done (shipped).

You can link multiple feedback entries to the same action item.

For example, if five users report the same crash, you create one action item and link all five reports to it.

The feedback detail view shows which action item a report is linked to, and the action items list shows how many feedback entries are attached to each task.

This gives you a clear picture: how many users are affected, what you decided to do about it, and whether it shipped.

Data Export

Export all your feedback data from the feedback list page in CSV or JSON format.

The CSV export includes these columns: id, source, type, channel, message, user_id, rating, tags, status, priority, note, created_at, and updated_at.

The JSON export contains the same fields but with metadata parsed into a proper JSON object and tags as an array instead of a raw string.

The exported file is named signalshoot-export-{app_id}.csv or .json.

Only production data is included — test submissions are excluded.

Export is available on all plans.

Your data belongs to you, and you can download it at any time.