Pro tips
Patterns that aren't strictly required but pay off quickly.
Wire up an AI coding agent
Tell Claude Code, Cursor, Devin, or Codex to watch for mentions on Issued-created issues and start work automatically on customer-reported bugs.
Both Linear and GitHub support this. The usual pattern:
- Add your agent's handle (e.g.
@claude) to the project's comment block list so its work-in-progress notes don't email the customer. - Configure the agent to trigger on issue creation or on a label you auto-apply via
github_labelsorlinear_labels. - Use hidden metadata fields to pass stack traces, user IDs, and app versions straight into the issue body — the agent has everything it needs to start.
Hidden metadata
Every field you set to
visible: false still lands in the issue body — but out of the customer's view. Useful for anything you need during triage.js
fields: {
userId: { visible: false, value: currentUser.id },
plan: { visible: false, value: currentUser.plan },
appVersion: { visible: false, value: APP_VERSION },
pageUrl: { visible: false, value: window.location.href },
sessionId: { visible: false, value: analytics.sessionId() },
userAgent: { visible: false, value: navigator.userAgent }
}More patterns in the fields reference.
Lock down your allowlist
The project API key is public by design (it lives in your embed). The allowlist is what prevents a third party from hammering your issue tracker with garbage.
- Add every production domain where the form lives, including staging subdomains.
- Turn localhost access off on production projects.
- For mobile, register the exact iOS bundle ID and Android
applicationId. - Keep a separate dev project if you frequently submit test issues — don't clutter your real tracker.
Build-time vs. runtime project ID
Project IDs are safe to ship in client bundles. Treat them like a public API key.
If you deploy multi-tenant, it's often cleaner to expose the project ID through a public env var (e.g.
NEXT_PUBLIC_ISSUED_PROJECT_ID) than to hard-code it — your CI can swap per-environment values without code churn.