iOS feedback SDK
An iOS feedback SDK for the moments generic surveys miss
Add text and voice conversations to a button, screen, completed action, trial cancellation, or subscription cancellation—and preserve the customer’s exact words.
What this workflow actually does
Paydirt is a Swift SDK for product teams that want contextual feedback inside an iOS app without building recording, transcription, conversational follow-ups, retry storage, a form backend, and Slack delivery from scratch.
The useful unit is a conversation, not a rating widget. The app supplies the moment and product context. Paydirt asks the first question, accepts text or voice, generates relevant follow-ups, and saves each accepted turn. When the person finishes, one Slack message contains the raw question-and-answer sequence.
Forms are remotely configurable, while placement remains explicit in the host app. That separation lets a team change prompts without shipping a release but keeps product behavior reviewable in Swift.
A strong fit for
- ✓ Optional in-app product feedback
- ✓ Post-action research such as export or onboarding completion
- ✓ Trial and paid cancellation interviews
- ✓ Teams that want raw answers in Slack and read-only agent access
Not designed to replace
- — Required onboarding or account data collection
- — Transactional forms that must validate structured fields
- — An autonomous system that changes code from customer feedback
- — A substitute for App Store subscription management
From trigger to exact answers
01
Choose a real product moment
Place a named form on a feedback button, after a successful action, on a screen appearance, or behind a custom condition.
02
Ask one useful opening question
A person can type or record an answer. Paydirt uses the actual response to choose the next question.
03
Save as the conversation grows
Each accepted turn is encrypted locally and upserted with a stable response ID, so an unfinished session does not depend on a final Submit tap.
04
Deliver once when finished
Slack receives one completed message with every raw Q/A and input mode. An AI summary is optional and comes after the transcript.
Present a form from ordinary Swift code
The setup flow returns the actual SDK key and form ID. The host app controls exactly when presentation happens and can attach coarse, intentional metadata.
import Paydirt
Paydirt.configure(apiKey: "PUBLIC_PAYDIRT_SDK_KEY", theme: .automatic)
Paydirt.presentForm(
formId: "FEEDBACK_FORM_ID",
userId: currentUserId,
metadata: ["source": "settings_feedback"]
)What reaches Slack
- • Every question exactly as shown
- • Every transcribed or typed answer exactly as accepted
- • An `I: Audio` or `I: Text` marker per answer
- • Intentional app metadata supplied by the integration
- • Optional AI summary after—not instead of—the transcript
Know the limits
- • Voice requires microphone permission and network access for transcription
- • Paydirt does not infer the right product moment; the app or coding agent must place the trigger
- • Free-form feedback can contain personal data, so consent copy and privacy disclosures still matter
- • The SDK is for iOS 15+ and does not replace structured business-critical forms
Questions developers ask
Can an iOS app use Paydirt without subscriptions?
Yes. Manual feedback forms do not require StoreKit, RevenueCat, or Superwall. Present a form from any confirmed button, screen, action, or custom condition.
Does removing transcript text from device logs break follow-ups?
No. The transcript remains in the conversation state and submission payload. Removing it from diagnostic logs only reduces accidental exposure of customer words.
What happens if the user leaves before finishing?
Paydirt saves accepted turns as encrypted local snapshots and upserts them remotely with a stable response ID. Slack delivery waits until the conversation is completed.
Ship the smallest useful feedback loop
Install one form at a real product moment, send the completed raw conversation to one Slack channel, and verify it in the app before expanding.
Start setup