← Back

Changelog

New features and product updates

2026-04-07

  • Updated /submit survey behavior so org-required screeners only force completion for submitters assigned to that organization's active prompts.
  • Added a browseable opportunities list on /submit that shows org screeners to all submitters, even when they are not currently blocked by one.
  • Expanded submitter survey access so browseable opportunity surveys can still be opened and completed from the submit flow.

2026-04-03

2026-04-01

2026-03-31

2026-03-30

2026-03-26

2026-03-24

Agent Zeitlet Retrieval Upgrade (03/24/2026)

  • Added a dedicated get_zeitlet tool so the agent can pull one exact post, creator, insight, or persona with its direct linked evidence instead of guessing from search snippets.
  • Updated search_zeitlets so it defaults to lightweight scan-friendly cards, while the richer mode now previews real entity fields instead of relying on the internal search corpus.

Safer Insight and Persona Linking

  • Insight and persona relationships now use ordered entityLinks rows as the backend source of truth, which makes saves less fragile when old linked data is imperfect.
  • We removed the unused insight children relationship from the product and backend contracts.
  • A new backfill + verification path preserves the existing order of linked posts, creators, personas, and related insights while we migrate older records safely in stages.

Clearer Agent Write Results

  • Agent write tools now return structured save summaries instead of bare success strings, so chat workflows can see exactly what changed.
  • New insights created through chat default to draft without silently re-drafting existing insights when they are edited.
  • Recent post search now excludes posts missing descriptions and reports how many low-signal posts were skipped.

Project Slugs for Agent Workflows

  • Added readable slugs for projects so agent workflows can target projects by slug instead of only full internal IDs.
  • New and renamed projects now keep their slug in sync automatically, and existing projects were migrated onto the same persisted slug field.
  • Updated the agent project tools and write path so project_<slug> and bare project slugs work the same way as other agent-friendly references.

SMS Intake Reliability

  • Tightened inbound SMS handling so split Twilio text parts are reconstructed into one logical message instead of being treated as unrelated submissions.
  • Preserved more inbound Twilio metadata and attachments so debugging and follow-up handling are more reliable when messages include links, media, or multipart delivery details.
  • Added a safer rollout path for the SMS routing agent behind a feature flag, including clearer replies when we can auto-route a text and when we need the sender to clarify the prompt.
  • Simplified insight editing for agents so long-form insight content is rewritten as a whole instead of patched via special append/prepend/replace operations.

Zeitlet ID Migration

  • Cleaned up zeitlet references so the system now relies on each item's canonical slug for agent lookups instead of storing a separate short ID on the record.
  • Kept saved markdown links stable by continuing to store durable internal IDs in sg://... references, while still letting agents and tools use readable refs like post_<slug>.
  • Ran the migration on both dev and prod, including mention normalization and legacy shortId cleanup.

Public Page Monitoring

  • Added an automated monitor that checks key public pages on a schedule instead of waiting for someone to notice a broken link.
  • Public dashboard views and major public site pages now have recurring browser-based health checks.
  • When those checks fail, the team gets an alert with a direct link to the failing run so issues can be triaged quickly.

2026-03-09

  • Fixed admin user edits reverting after save by making Clerk the source of truth for logged-in identity fields like names, phone, and org membership.
  • Updated submitter profile editing so phone still uses Clerk verification, while contact email now saves directly to the app profile without the broken Clerk email verification step.
  • Removed stale local table state in the admin users screen so prompt and survey edits follow live Convex data more reliably.
  • Hardened background profile generation and user merges to avoid writing older profile data back over newer admin edits.
  • Reworked the signed-out /submit flow so phone sign-in now falls straight into account creation for brand-new submitters instead of dead-ending on the sign-in screen.
  • Simplified submitter auth back onto Clerk's built-in sign-in screen, so signed-out /submit now redirects to /signin and we no longer maintain a custom phone auth flow there.

2026-03-05

  • Added signed-in dashboard revision history so teams can open older publish and restore snapshots directly from the dashboard.
  • Hardened dashboard saves and restores so partial updates no longer wipe sibling sections and restores behave like real point-in-time snapshots.

Safer Admin Access Repair Flow

What changed

  • Removed automatic admin promotion during dev database sync.
  • Added a dedicated, secret-gated Convex ops command to safely set or clear a user’s admin role.
  • Standardized operator email configuration to ian@ambassco.com.
  • Added a clear internal runbook and agent instructions for future authorization-related maintenance.

Why this matters

  • Prevents accidental admin access from being re-applied by default.
  • Gives us one predictable, auditable way to repair access when auth/account mappings drift.
  • Reduces repeated debugging and confusion for future agent-driven operations.

Experimental PayPal/Venmo Payouts (MVP)

What changed

  • Added a new payouts table to track each payout request and response in one place.
  • Added a minimal PayPal Payouts integration that can send a single payout and store the result.
  • Added admin and CLI payout actions so we can run a live end-to-end payout test immediately.

Why this matters

  • We can now verify real payout connectivity before finalizing broader payout business rules.
  • Every payout attempt has a persistent record with status, provider IDs, and error details for debugging.

Submission Log Simplification + Latest Processing State

What changed

  • Simplified submissions to a lightweight audit log (who submitted what URL, where it links, and prompt/user context).
  • Removed processing status history from submissions and track only latest processing state on posts.processing using timestamps (startedAt, completedAt, failedAt).
  • Updated submit/scrape/orchestrator flows to patch posts.processing directly.
  • Updated admin metrics and sender/client rollups to derive processing state from linked posts.
  • Added migration support to backfill latest post processing state from legacy submission fields and remove deprecated submission fields.

Why this matters

  • Keeps submissions clean and purpose-built as an immutable record of user submissions.
  • Removes run-history table complexity while preserving the only state needed for product operations (latest run outcome).
  • Keeps deep debug history in Sentry/PostHog rather than the primary relational model.

Telemetry Ownership Cleanup (Sentry + PostHog)

What changed

  • Clarified telemetry ownership so runtime errors and incidents are handled in Sentry, while product behavior and funnel analytics remain in PostHog.
  • Stopped duplicate client-side exception ingestion in PostHog to reduce overlap and alert noise.
  • Standardized failure telemetry to consistently include a short failure reason and Sentry event IDs when available.

Why this matters

  • Faster debugging with one clear source of truth for production failures.
  • Cleaner analytics and less duplication between tools.
  • More reliable cross-tool triage by linking product failure events to Sentry incidents.

2026-02-27

2026-02-25

PostHog Identity Cleanup and Historical Merge

Analytics Quality

  • Standardized PostHog user identity to Clerk IDs so user activity is no longer fragmented across multiple profile IDs.
  • Updated messaging and vector-search telemetry paths to stop creating extra People records from internal/system identifiers.
  • Switched client tracking to identified-only person profiles, which keeps anonymous funnel event tracking while reducing People-page noise.

Data Cleanup

  • Added a PostHog identity backfill tool that aliases legacy Convex-based IDs to canonical Clerk-based IDs and refreshes user profile traits.
  • Added dry-run and execution commands so the cleanup can be run safely and repeatedly.

Analytics Funnel + Reliability Reporting Refresh

Analytics

  • Fixed signup tracking so funnel events are captured reliably from redirect through onboarding completion.
  • Added clearer organization-signup telemetry to show view and continue actions during activation.
  • Improved AI telemetry identity quality so background embedding jobs no longer pollute user-level analytics.

Reporting

  • Replaced placeholder PostHog reporting assets with production-ready dashboards for core product health and agent reliability.
  • Added an idempotent provisioning script so reporting dashboards/insights can be reconciled quickly in both dev and prod.

Platform Reliability

  • Improved public routing so invalid organization links now go to the landing page instead of forcing users into a single fallback org.
  • Simplified public dashboard search reliability fixes and removed unused dev-only react-grab hooks from the app.
  • Standardized optional end-to-end test URL configuration so dashboard and chat smoke tests skip cleanly when target URLs are not set.

Insight Consistency Formula Controls

Reports

  • Dashboard v2 can now auto-populate the Insights → Consistent list when a new report is created.
  • Admins can now re-run the Insights Consistent formula from the Insights tab and tune all formula settings directly in the UI.
  • The consistency controls now include full formulas, detailed plain-language explanations, and per-setting tooltips so non-technical teammates can understand exactly how scoring works.
  • Removed the max-insights cap from insight consistency seeding; qualifying insights are now controlled by eligibility + threshold instead of a hard count limit.
  • Added the same full formula controls and explanations to the Creators → Consistent view, including all backend tuning knobs.
  • Insight consistency reseeding now runs through an action flow to avoid mutation timeout failures on larger datasets.
  • Added PostHog tracking for consistency formula runs (started, completed, failed) across both creators and insights.

Search Zeitlets Contract Simplification

Insights

  • Standardized search_zeitlets to a single tool contract that returns only the existing agent-facing formatted string output.
  • Removed the extra side metadata channel (results / idMapDelta merge path) from runtime handling to reduce moving parts and failure points.
  • Removed request-scoped idMap lookups entirely; typed short IDs now resolve authoritatively by slug in Convex (or pass through as full IDs), and writes/searches use that same path end-to-end.

Lighter Message Storage and Stronger SMS Telemetry

Insights

  • Reduced stored chat metadata to the fields we actively use in the product, which lowers message document size and keeps chat history lighter.
  • Removed bulky Twilio raw payload storage from message records while preserving key delivery/error fields.
  • Added dedicated PostHog events for SMS ingest/send/failure paths so Twilio transport visibility is tracked in analytics instead of overloading core message records.

Cleaner Dashboard Report Editing Logic

Insights

  • Simplified how dashboard report list updates are processed so all list edits now follow one consistent path.
  • Reduced duplicate update logic in agent and backend layers, which should make report edits more reliable and easier to maintain.
  • Added targeted regression tests for report list update behavior to help prevent this area from drifting again.

More Precise Insight Editing for Agent Workflows

Insights

  • Agent-driven insight edits can now target specific parts of long insight writeups instead of rewriting the whole content block.
  • Insight updates now support both relationship-list changes and focused field edits in one operation.
  • Added safer text-edit behavior that fails clearly when edit anchors are missing or ambiguous, reducing accidental overwrites.

Smarter Consistent Creator Suggestions in Dashboard Reports

Reports

  • Dashboard v2 now auto-populates the Creators → Consistent list when a new report is created.
  • The default formula prioritizes creators who show up repeatedly across the report window, with extra weight for recent activity.
  • Added a Re-run Formula button in the Creators tab so admins can refresh the Consistent list after changing report dates or formula settings.
  • Suggested creators are still fully editable after generation, so teams can manually tune the final list.

Faster Insight Curation from Similar Zeitlets

Insights

  • Added + Add actions inside the insight detail "similar zeitlets" rail for posts, insights, creators, and personas.
  • New add actions use incremental insights.updateInsightOps updates so linked lists append safely without replacing existing links.
  • Similar insight adds now map to the current insight's related list; post/creator/persona adds map to their matching linked fields.

Zeitlet Views

  • Insights are now compact-only across views; removed the old default card path and preview toggles.
  • Added shared Zeitlet layout constants (grid/list columns, gap, estimated row heights) in components/schema/view-layout.ts.
  • CreatorView and PersonasView now use shared layout SSOT and support layoutVariant (with variant kept as a compatibility alias).
  • Removed unused CreatorView.organizationId and dropped unused roundedContainer plumbing in ZeitletView.

Authentication

  • Fixed recurring submitter/org profile loops where required email kept reappearing: Clerk identity sync now omits blank email values instead of sending null.
  • Hardened users.upsertUser so empty/invalid synced contact identifiers no longer wipe an existing Convex email/phone on re-login.
  • Added retry/backoff for transient Unauthorized Clerk sync races during initial client-side identity sync.

Evolution Agent + DB-Only System Prompts

Agents

  • Added EvolutionAgent handoff from /chat for updating agent instruction templates and notifying the operator via SMS.
  • Added instructionTemplates.patchTemplate mutation for safe, partial updates to system prompt templates.
  • Removed seed-defaults UI and hardcoded template remnants; instructions are DB-only.

Data Model

  • Began users contact flattening rollout: added top-level users.email and users.phone, dual-write from user upsert/update paths, and dual-read helpers used by admin + submitter flows.
  • Backfilled top-level contact fields for existing users via migrations:runBackfillUserTopLevelContactFields (processed 1,704 users; migration state success).
  • Cut over indexed lookups from by_contact_email/by_contact_phone to by_email/by_phone across users, messaging, surveys, migrations, and related tests.
  • Completed legacy cleanup: removed nested users.contact.email and users.contact.phone writes/read paths, added and ran migrations:runStripUserLegacyContactEmailPhone, and removed those nested fields from the Convex schema.

Ops Metrics Dashboard

Admin

  • Added Ops Metrics dashboard for submission pipeline health (throughput, success/failure, latency, backlog).
  • Added org/prompt filters, quick time presets, and daily trend view for ops monitoring.
  • Added admin editor for agent/system instruction templates stored in Convex, with previews and revision history.

Insight Updates Field

Insights

  • Added updates to insights for timestamped update entries.
  • Added description (1–3 sentence summary) to insights and agent tools.

Mentions

  • Type @ to insert linked zeitlets in chat and report textareas.
  • Mentions render as chips with hover previews and deep links to detail views.
  • Markdown mentions now render consistently across chat, reports, and zeitlet narratives.

Dashboard V2 Insight Signals + Sidebar Lists

Reports v2

  • Insights now support signals (crossCohort + resonance) for report generation + UI.
  • Dashboard v2 report Insights sidebar now sources Creators/Posts from their respective tab data sources (same filters + sort), not derived from insights.

2026-01-30

2026-01-30

  • SMS contact-card acknowledgements are now consolidated under contactCardAcknowledgedAt (emoji tapbacks supported); run migrations:runBackfillContactCardAcknowledgedAt to backfill legacy contactCardLikedAt data.

Agent Report Ops + Report Agent

Dashboard Report Ops

Added list-ops support for dashboard v2 report updates, enabling insert/move/patch/remove without sending full lists.

Report Agent

Added a dedicated dashboard report agent config and chat handoff for first-pass report generation.

Chat history

Chat now supports multiple conversations with a collapsible history panel and quick new-chat actions.

Prompt reminder SMS

Reminder texts now show the organization name and a clearer deadline format (e.g., "Thu, Jan 22 at 11am PST") instead of the prompt name and bare date.

SMS submission confirmations

If a submission takes more than a few seconds to process, we now send a quick “processing” reply before the final confirmation count.

Chat polish and fixes

Chat navigation + layout

Chat now lives in the main sidebar under Dashboard, and insight results render in a horizontal scroller for easier browsing.

Chat actions

Right-click actions (find similar, delete, etc.) and approve/deny controls are now available for insights/personas created in chat.

Chat reliability

Message input clears immediately on send, and agent responses no longer fail due to unsupported usage metadata.

Chat filters

Filter selections in chat now persist in the URL (search, semantic, platforms, prompts, date range, ours).

Admin Agent Chat

Agent Chat (Admin)

Admins can now chat with an AI agent to create or update insights and personas directly from selected posts, creators, insights, or personas.

Select All + Filters

“Select All” now resolves across posts, creators, insights, and personas using the current FilterBar settings (prompts, platforms, time range, search, semantic).

Prompt Reminders

Automated Prompt Reminders

Submitters on active prompts now receive SMS reminders every 2 days until they hit the submission target, sent before 6 PM PT and respecting SMS opt-out/consent.

Bulk SMS Preview

Admins can preview the exact outbound SMS body (including auto-appended survey links and phone-prefill URLs) before scheduling or sending a broadcast.

Signup Referral Links

Referral Attribution

Signup links can now carry a referral user id (/signup?ref=<userId>) that gets stored on new user records. Submitter links at /submit accept the same ref param.

Admin Referral Dashboard

Admins can view referral counts per user and copy referral links from the new Referrals page.

Prompt Signup Links

/submit links can include prompt=<promptId> to auto-assign the viewer to that prompt as a submitter.

Signup SMS Welcome

New submitters who opt into texting now receive an automated welcome SMS, with prompt-aware instructions when assigned via a prompt link. The first outbound message also sends the Social Glass contact card.

Clerk Contact Sync + Duplicate Submitter Linking

Duplicate Submitter Linking

Submitter logins now reconcile duplicate accounts using verified contact info, so prompts remain attached when someone signs up by phone after previously using email.

Clerk Contact Backfill Tooling

Added a batch backfill action to push known phone numbers/emails into Clerk, preventing future duplicate accounts.

Unified Interactions + Survey Prompt Linking

Unified Activity Timeline

We now keep a single “interactions” timeline that brings together messages, submissions, and survey responses for easier review and analytics.

Survey Prompt Linking (In Progress)

Surveys are now linked to prompt records to start consolidating how we model questions and outreach. This is the first step toward a single prompts + surveys system.

Slack Notifications & UI Polish

Daily Slack Updates

You can now receive daily morning updates in Slack with a summary of new submissions and activity. Connect your workspace in organization settings.

Improved Autosave

Forms across the platform now save automatically as you type, with immediate save when you click away. No more lost work.

Mobile-Friendly Adjustments

Dashboard pages now display a prompt to use desktop for the best experience on mobile devices.

Public Sharing & Context Menus

Share Zeitgeists Publicly

Generate shareable links to your zeitgeist views (creators, personas, insights) that work without login. Perfect for sharing with stakeholders who don't need full platform access.

Right-Click Context Menus

All cards (posts, creators, personas, insights) now have context menus with quick actions. Right-click to duplicate, export, or manage items without opening the full editor.

TOON Export

Export your insights and reports in TOON format for easy sharing and archiving.

Creator Intelligence & Enhanced Filtering

Creator Intelligence

Look up any creator by their social handle or post URL to get detailed analytics and insights about their content and audience.

Improved Filter Bar

The filter bar across all pages now supports more options and remembers your preferences. Quickly narrow down posts, creators, and insights.

Enhanced Video Player

Videos now load faster and stream more smoothly with our new media pipeline.

SMS Submissions & Bulk Messaging

Submit Posts via SMS

Submitters can now text post links directly to receive and process submissions. No app needed.

Bulk Messaging

Send messages to multiple submitters at once with template support. Great for announcements and prompt updates.

Error Monitoring

We've added comprehensive error tracking to catch and fix issues faster.

Zeitgeist Launch

Introducing Zeitgeist

Your new home for understanding cultural moments. Zeitgeist brings together posts, creators, personas, and insights in one unified view.

Persona Cards

See your audience segments visualized as persona cards with key traits, behaviors, and representative content.

Insights with Media

Insights now support embedded videos and images in carousels, making it easier to tell the story behind the data.