Skip to content

POST Request Capture

Internal-only discovery storage for outbound POST activity captured by the widget on configured pages.

Purpose

This table exists to answer one question during rollout:

Which outbound POST request on the client page corresponds to the real conversion payload?

The feature is page-scoped discovery only. It is not a public analytics surface and it does not have a read API in v1.

Payload values are redacted by default in the widget before ingestion. That means:

  • payload_json keeps keys and structure, but values become placeholders such as [EMAIL], [REDACTED], or [FILE]
  • payload_text becomes [TEXT] or [TEXT+EMAIL]
  • setting analytics.post_request_capture.redact_payload_values = false restores raw payload capture for that tenant

Storage

Captured rows are written to public.post_request_captures.

Useful columns:

  • site_domain
  • session_id
  • person_id
  • page_url
  • captured_at
  • source
  • request_url
  • content_type
  • payload_kind
  • payload_json
  • payload_text
  • has_files
  • files_meta

Query Snippets

Recent captures for one domain:

select
  captured_at,
  source,
  request_url,
  content_type,
  payload_kind,
  session_id
from public.post_request_captures
where site_domain = 'example.com'
order by captured_at desc
limit 100;

All captures for one Rose session:

select
  captured_at,
  page_url,
  source,
  request_url,
  payload_json,
  payload_text
from public.post_request_captures
where site_domain = 'example.com'
  and session_id = 'session_example_123'
order by captured_at asc;

Most common discovered request URLs:

select
  request_url,
  count(*) as capture_count
from public.post_request_captures
where site_domain = 'example.com'
group by request_url
order by capture_count desc;