Workflow verification 19/19
This receipt shows the requests we made, what the app reported back, and which checks passed or failed. It covers what ran in this sandbox session against the rules we set.
Verified within scope
Each check was set up before the run. This shows what we tried, what came back, and which rule it was checked against.
This receipt covers the checks in this run only. Passing all checks does not certify the whole app as production-ready.
Test scenarios
A verified request finds the subject in all three systems, records it against the deadline, and parks every erasure for approval
baselineWhat we probed
A verified request finds the subject in all three systems, records it against the deadline, and parks every erasure for approval
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A verified request finds the subject in all three systems, records it against the deadline, and parks every erasure for approval
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-baseline",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "baseline"
}
}Server returned
HTTP 200
{
"runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "baseline"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 614106600705",
"durationMs": 242
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_TTG2J93TE60XUPRL: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 407
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user dc94f494-0d63-4135-ae86-3202569c544b",
"durationMs": 314
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-baseline",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "7b25c0e6-bb83-492b-ba0c-faac5702148e",
"appliedAt": "2026-10-19T14:52:38.550Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"contact": "614106600705",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"customer": "cus_TTG2J93TE60XUPRL",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"user": "dc94f494-0d63-4135-ae86-3202569c544b",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-baseline"
},
"attempts": 1,
"ref": "17RLRYY34J.K5O4ES",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:39.473Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:39.474Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "84db96913b1d",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:38.013Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:38.425Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:38.428Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:38.550Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:39.473Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:39.474Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:52:38.013Z",
"updatedAt": "2026-10-19T14:52:39.474Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "479",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-baseline",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "baseline"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "baseline"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 614106600705",
"durationMs": 242
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_TTG2J93TE60XUPRL: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 407
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user dc94f494-0d63-4135-ae86-3202569c544b",
"durationMs": 314
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-baseline",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "7b25c0e6-bb83-492b-ba0c-faac5702148e",
"appliedAt": "2026-10-19T14:52:38.550Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"contact": "614106600705",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"customer": "cus_TTG2J93TE60XUPRL",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"user": "dc94f494-0d63-4135-ae86-3202569c544b",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-baseline"
},
"attempts": 1,
"ref": "17RLRYY34J.K5O4ES",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:39.473Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:39.474Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "84db96913b1d",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:38.013Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:38.425Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:38.428Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:38.550Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:39.473Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:39.474Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:52:38.013Z",
"updatedAt": "2026-10-19T14:52:39.474Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-baseline",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "baseline"
}
}Server returned
HTTP 200
{
"runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "baseline"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 614106600705",
"durationMs": 242
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_TTG2J93TE60XUPRL: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 407
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user dc94f494-0d63-4135-ae86-3202569c544b",
"durationMs": 314
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-baseline",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "7b25c0e6-bb83-492b-ba0c-faac5702148e",
"appliedAt": "2026-10-19T14:52:38.550Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"contact": "614106600705",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"customer": "cus_TTG2J93TE60XUPRL",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"user": "dc94f494-0d63-4135-ae86-3202569c544b",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-baseline"
},
"attempts": 1,
"ref": "17RLRYY34J.K5O4ES",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:39.473Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:39.474Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "84db96913b1d",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:38.013Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:38.425Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:38.428Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:38.550Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:39.473Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:39.474Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:40.103Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:38.013Z",
"updatedAt": "2026-10-19T14:52:40.103Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "479",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-baseline",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "baseline"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "baseline"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 614106600705",
"durationMs": 242
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_TTG2J93TE60XUPRL: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 407
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user dc94f494-0d63-4135-ae86-3202569c544b",
"durationMs": 314
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-baseline",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "7b25c0e6-bb83-492b-ba0c-faac5702148e",
"appliedAt": "2026-10-19T14:52:38.550Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"contact": "614106600705",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"customer": "cus_TTG2J93TE60XUPRL",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"user": "dc94f494-0d63-4135-ae86-3202569c544b",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-baseline",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-baseline"
},
"attempts": 1,
"ref": "17RLRYY34J.K5O4ES",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:39.473Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:39.474Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "84db96913b1d",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:38.013Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:38.425Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:38.428Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:38.550Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:39.473Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:39.474Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:40.103Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:38.013Z",
"updatedAt": "2026-10-19T14:52:40.103Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
baselineApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
A verified request finds the subject in all three systems, records it against the deadline, and parks every erasure for approval
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (8)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "614106600705",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "229",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "dc94f494-0d63-4135-ae86-3202569c544b",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/a8d470c3",
"email_verified": true,
"external_id": "ext_f3f1f837f7d3405a9515ec06a5",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_TTG2J93TE60XUPRL",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 11,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-baseline: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-baseline, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 84db96913b1d. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-baseline: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-baseline, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 84db96913b1d. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "7b25c0e6-bb83-492b-ba0c-faac5702148e"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "518",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-baseline: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-baseline, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 84db96913b1d. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-baseline (GDPR, due 2026-11-14, 25d left) subject 84db96913b1d: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_c0113346e3c44c9fa01d3d5f99",
"client_msg_id": "cli_502143e49ea248a6842ba2f773",
"name": "item-b3ab2f",
"old_name": "Sample Old",
"parent_user_id": "par_4c542e9052064249a84b894f25",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17RLRYY34J.K5O4ES"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "198",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-baseline (GDPR, due 2026-11-14, 25d left) subject 84db96913b1d: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Approval deletes the login account, anonymizes the billing customer and drafts the response; reconcile reads both back
approve_erasesWhat we probed
Approval deletes the login account, anonymizes the billing customer and drafts the response; reconcile reads both back
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocationsPOST /invocations
Expected vs actual
- Expected
- Approval deletes the login account, anonymizes the billing customer and drafts the response; reconcile reads both back
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-approve-erases",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
}
}Server returned
HTTP 200
{
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 736462240085",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 386
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"durationMs": 220
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78",
"appliedAt": "2026-10-19T14:52:41.454Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-erases",
"contact": "736462240085",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-erases",
"customer": "cus_7M79SIC2RDSYIUZ5",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-erases",
"user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-erases",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-erases"
},
"attempts": 1,
"ref": "171JJ2W18U.5KAYHR",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:41.587Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:41.589Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "c6968cd3f1d6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:40.891Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:41.280Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:41.283Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:41.454Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:41.587Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:41.589Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:52:40.891Z",
"updatedAt": "2026-10-19T14:52:41.589Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "503",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-approve-erases",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03POST /invocations200
We sent
POST /invocations
{
"action": "decide",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}Server returned
HTTP 200
{
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 736462240085",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 386
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"durationMs": 220
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78",
"appliedAt": "2026-10-19T14:52:41.454Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"contact": "736462240085",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "736462240085",
"appliedAt": "2026-10-19T14:52:43.249Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"customer": "cus_7M79SIC2RDSYIUZ5",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_7M79SIC2RDSYIUZ5",
"appliedAt": "2026-10-19T14:52:43.497Z",
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"appliedAt": "2026-10-19T14:52:43.609Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r9030766816237466",
"appliedAt": "2026-10-19T14:52:43.720Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-erases"
},
"attempts": 1,
"ref": "171JJ2W18U.5KAYHR",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:41.587Z",
"reconciled": null
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:41.589Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:43.146Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "c6968cd3f1d6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:40.891Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:41.280Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:41.283Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:41.454Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:41.587Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:41.589Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:43.146Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:52:43.249Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:52:43.497Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:52:43.609Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:52:43.721Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:52:43.722Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-19T14:52:40.891Z",
"updatedAt": "2026-10-19T14:52:43.722Z",
"result": "recorded"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "118",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "reconcile",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed"
}Server returned
HTTP 200
{
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 736462240085",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 386
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"durationMs": 220
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78",
"appliedAt": "2026-10-19T14:52:41.454Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:44.030Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"contact": "736462240085",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "736462240085",
"appliedAt": "2026-10-19T14:52:43.249Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:52:44.033Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"customer": "cus_7M79SIC2RDSYIUZ5",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_7M79SIC2RDSYIUZ5",
"appliedAt": "2026-10-19T14:52:43.497Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:44.090Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"appliedAt": "2026-10-19T14:52:43.609Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:52:44.090Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r9030766816237466",
"appliedAt": "2026-10-19T14:52:43.720Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:43.899Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-erases"
},
"attempts": 1,
"ref": "171JJ2W18U.5KAYHR",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:41.587Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:43.899Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:41.589Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:43.146Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "c6968cd3f1d6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:40.891Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:41.280Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:41.283Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:41.454Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:41.587Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:41.589Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:43.146Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:52:43.249Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:52:43.497Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:52:43.609Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:52:43.721Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:52:43.722Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:52:44.091Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
}
],
"createdAt": "2026-10-19T14:52:40.891Z",
"updatedAt": "2026-10-19T14:52:44.091Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "83",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "reconcile",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 736462240085",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 386
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"durationMs": 220
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78",
"appliedAt": "2026-10-19T14:52:41.454Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:44.030Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"contact": "736462240085",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "736462240085",
"appliedAt": "2026-10-19T14:52:43.249Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:52:44.033Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"customer": "cus_7M79SIC2RDSYIUZ5",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_7M79SIC2RDSYIUZ5",
"appliedAt": "2026-10-19T14:52:43.497Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:44.090Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"appliedAt": "2026-10-19T14:52:43.609Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:52:44.090Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r9030766816237466",
"appliedAt": "2026-10-19T14:52:43.720Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:43.899Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-erases"
},
"attempts": 1,
"ref": "171JJ2W18U.5KAYHR",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:41.587Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:43.899Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:41.589Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:43.146Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "c6968cd3f1d6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:40.891Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:41.280Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:41.283Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:41.454Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:41.587Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:41.589Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:43.146Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:52:43.249Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:52:43.497Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:52:43.609Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:52:43.721Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:52:43.722Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:52:44.091Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
}
],
"createdAt": "2026-10-19T14:52:40.891Z",
"updatedAt": "2026-10-19T14:52:44.091Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-approve-erases",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
}
}Server returned
HTTP 200
{
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 736462240085",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 386
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"durationMs": 220
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78",
"appliedAt": "2026-10-19T14:52:41.454Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:44.030Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"contact": "736462240085",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "736462240085",
"appliedAt": "2026-10-19T14:52:43.249Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:52:44.033Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"customer": "cus_7M79SIC2RDSYIUZ5",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_7M79SIC2RDSYIUZ5",
"appliedAt": "2026-10-19T14:52:43.497Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:44.090Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"appliedAt": "2026-10-19T14:52:43.609Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:52:44.090Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r9030766816237466",
"appliedAt": "2026-10-19T14:52:43.720Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:43.899Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-erases"
},
"attempts": 1,
"ref": "171JJ2W18U.5KAYHR",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:41.587Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:43.899Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:41.589Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:43.146Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "c6968cd3f1d6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:40.891Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:41.280Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:41.283Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:41.454Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:41.587Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:41.589Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:43.146Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:52:43.249Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:52:43.497Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:52:43.609Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:52:43.721Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:52:43.722Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:52:44.091Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
},
{
"at": "2026-10-19T14:52:44.672Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:40.891Z",
"updatedAt": "2026-10-19T14:52:44.672Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "503",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-approve-erases",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
07POST /invocations200
We sent
POST /invocations
{
"action": "decide",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}Server returned
HTTP 200
{
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 736462240085",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 386
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"durationMs": 220
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78",
"appliedAt": "2026-10-19T14:52:41.454Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:44.030Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"contact": "736462240085",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "736462240085",
"appliedAt": "2026-10-19T14:52:43.249Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:52:44.033Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"customer": "cus_7M79SIC2RDSYIUZ5",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_7M79SIC2RDSYIUZ5",
"appliedAt": "2026-10-19T14:52:43.497Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:44.090Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"appliedAt": "2026-10-19T14:52:43.609Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:52:44.090Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r9030766816237466",
"appliedAt": "2026-10-19T14:52:43.720Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:43.899Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-erases"
},
"attempts": 1,
"ref": "171JJ2W18U.5KAYHR",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:41.587Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:43.899Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:41.589Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:43.146Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "c6968cd3f1d6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:40.891Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:41.280Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:41.283Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:41.454Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:41.587Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:41.589Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:43.146Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:52:43.249Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:52:43.497Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:52:43.609Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:52:43.721Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:52:43.722Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:52:44.091Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
},
{
"at": "2026-10-19T14:52:44.672Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:40.891Z",
"updatedAt": "2026-10-19T14:52:44.863Z",
"result": "already_decided"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "118",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
08POST /invocations200
We sent
POST /invocations
{
"action": "reconcile",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed"
}Server returned
HTTP 200
{
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 736462240085",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 386
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"durationMs": 220
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78",
"appliedAt": "2026-10-19T14:52:41.454Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:45.248Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"contact": "736462240085",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "736462240085",
"appliedAt": "2026-10-19T14:52:43.249Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:52:45.207Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"customer": "cus_7M79SIC2RDSYIUZ5",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_7M79SIC2RDSYIUZ5",
"appliedAt": "2026-10-19T14:52:43.497Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:45.252Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"appliedAt": "2026-10-19T14:52:43.609Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:52:45.257Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r9030766816237466",
"appliedAt": "2026-10-19T14:52:43.720Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:45.044Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-erases"
},
"attempts": 1,
"ref": "171JJ2W18U.5KAYHR",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:41.587Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:45.044Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:41.589Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:43.146Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "c6968cd3f1d6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:40.891Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:41.280Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:41.283Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:41.454Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:41.587Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:41.589Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:43.146Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:52:43.249Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:52:43.497Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:52:43.609Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:52:43.721Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:52:43.722Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:52:44.091Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
},
{
"at": "2026-10-19T14:52:44.672Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:52:45.257Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
}
],
"createdAt": "2026-10-19T14:52:40.891Z",
"updatedAt": "2026-10-19T14:52:45.257Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "83",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "reconcile",
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
09GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_erases"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 736462240085",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 386
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"durationMs": 220
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78",
"appliedAt": "2026-10-19T14:52:41.454Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:45.248Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"contact": "736462240085",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "736462240085",
"appliedAt": "2026-10-19T14:52:43.249Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:52:45.207Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"customer": "cus_7M79SIC2RDSYIUZ5",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_7M79SIC2RDSYIUZ5",
"appliedAt": "2026-10-19T14:52:43.497Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:52:45.252Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"appliedAt": "2026-10-19T14:52:43.609Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:52:45.257Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-approve-erases",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r9030766816237466",
"appliedAt": "2026-10-19T14:52:43.720Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:45.044Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-erases"
},
"attempts": 1,
"ref": "171JJ2W18U.5KAYHR",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:41.587Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:52:45.044Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:41.589Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:43.146Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "c6968cd3f1d6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:40.891Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:41.280Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:41.283Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:41.454Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:41.587Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:41.589Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:43.146Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:52:43.249Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:52:43.497Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:52:43.609Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:52:43.721Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:52:43.722Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:52:44.091Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
},
{
"at": "2026-10-19T14:52:44.672Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:52:45.257Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
}
],
"createdAt": "2026-10-19T14:52:40.891Z",
"updatedAt": "2026-10-19T14:52:45.257Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
approve_erasesApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
Approval deletes the login account, anonymizes the billing customer and drafts the response; reconcile reads both back
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (21)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/55332a99",
"email_verified": true,
"external_id": "ext_870d44ce913146f79c8468e449",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_7M79SIC2RDSYIUZ5",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 39,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "736462240085",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "235",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-approve-erases: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-approve-erases, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref c6968cd3f1d6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-approve-erases: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-approve-erases, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref c6968cd3f1d6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "530",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-approve-erases: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-approve-erases, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref c6968cd3f1d6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-approve-erases (GDPR, due 2026-11-14, 25d left) subject c6968cd3f1d6: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_e1c5f0b7221049c49cf4457561",
"client_msg_id": "cli_5c26fc03099f450bb2cf944082",
"name": "item-6b4eaa",
"old_name": "Sample Old",
"parent_user_id": "par_b9ec4a118c63407cbe8496abd4",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "171JJ2W18U.5KAYHR"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "204",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-approve-erases (GDPR, due 2026-11-14, 25d left) subject c6968cd3f1d6: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/gdpr-delete · HTTP 204
We sent
POST /crm/v3/objects/contacts/gdpr-delete
{
"objectId": "736462240085"
}Server returned
HTTP 204
Response body was not recorded.
HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete
{
"host": "fetchsandbox.com",
"content-length": "27",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"objectId": "736462240085"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · POST /v1/customers/cus_7M79SIC2RDSYIUZ5 · HTTP 200
We sent
POST /v1/customers/cus_7M79SIC2RDSYIUZ5
{
"email": "[email protected]",
"name": "Erased customer",
"phone": "",
"description": "",
"metadata": {
"acme_erased": "DSR-approve-erases"
}
}Server returned
HTTP 200
{
"email": "[email protected]",
"name": "Erased customer",
"phone": "",
"id": "cus_7M79SIC2RDSYIUZ5",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 39,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": "",
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"metadata": {
"acme_erased": "DSR-approve-erases"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_7M79SIC2RDSYIUZ5
{
"host": "fetchsandbox.com",
"content-length": "136",
"user-agent": "node",
"content-type": "application/x-www-form-urlencoded",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_7M79SIC2RDSYIUZ5' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/x-www-form-urlencoded' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"email": "[email protected]",
"name": "Erased customer",
"phone": "",
"description": "",
"metadata": {
"acme_erased": "DSR-approve-erases"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · DELETE /user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b · HTTP 204
We sent
DELETE /user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b
No body was saved. This receipt cannot tell whether it was empty or not captured.
Server returned
HTTP 204
Response body was not recorded.
HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request DELETE 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
gmail · POST /gmail/v1/users/me/drafts · HTTP 200
We sent
POST /gmail/v1/users/me/drafts
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItYXBwcm92ZS1lcmFzZXNAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItYXBwcm92ZS1lcmFzZXMgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDwwNjJlM2E3NTIwZmYxYWJkLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWFwcHJvdmUtZXJhc2VzIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
}Server returned
HTTP 200
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItYXBwcm92ZS1lcmFzZXNAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItYXBwcm92ZS1lcmFzZXMgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDwwNjJlM2E3NTIwZmYxYWJkLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWFwcHJvdmUtZXJhc2VzIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ",
"payload": {
"mimeType": "text/plain",
"headers": [
{
"name": "From",
"value": "me"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Your data deletion request DSR-approve-erases is complete"
},
{
"name": "Message-ID",
"value": "<[email protected]>"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/plain; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "8bit"
}
],
"body": {
"size": 280,
"data": "SGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWFwcHJvdmUtZXJhc2VzIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
},
"sizeEstimate": 550,
"labelIds": [
"DRAFT"
],
"id": "51685b77d9ce42e5"
},
"user_id": "me",
"id": "r9030766816237466"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts
{
"host": "fetchsandbox.com",
"content-length": "756",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItYXBwcm92ZS1lcmFzZXNAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItYXBwcm92ZS1lcmFzZXMgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDwwNjJlM2E3NTIwZmYxYWJkLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWFwcHJvdmUtZXJhc2VzIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · GET /tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78 · HTTP 200
We sent
GET /tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78
No body shown for this read.
Server returned
HTTP 200
{
"data": {
"name": "DSR-approve-erases: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-approve-erases, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref c6968cd3f1d6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14",
"created_by": {
"gid": "1111",
"resource_type": "default"
},
"gid": "12345",
"resource_subtype": "default_task",
"resource_type": "task",
"approval_status": "pending",
"assigned_by": {
"gid": "12345",
"name": "item-ee45f4",
"resource_type": "default"
},
"assignee_status": "upcoming",
"completed": false,
"completed_by": {
"gid": "12345",
"name": "item-163d4d",
"resource_type": "default"
},
"created_at": "2012-02-22T02:06:58.147Z",
"dependencies": [
{
"gid": "12345",
"resource_type": "default"
}
],
"dependents": [
{
"gid": "12345",
"resource_type": "default"
}
],
"external": {
"data": "A blob of information",
"gid": "my_gid"
},
"hearted": true,
"hearts": [
{
"gid": "12345",
"user": {
"gid": "12345",
"name": "item-1293b0",
"resource_type": "default"
}
}
],
"html_notes": "<body>Mittens <em>really</em> likes the stuff from Humboldt.</body>",
"is_rendered_as_separator": false,
"liked": true,
"likes": [
{
"gid": "12345",
"user": {
"gid": "12345",
"name": "item-c0bfeb",
"resource_type": "default"
}
}
],
"memberships": [
{
"project": {
"gid": "12345",
"name": "item-180366",
"resource_type": "default"
},
"section": {
"gid": "12345",
"name": "item-c7820b",
"resource_type": "default"
}
}
],
"modified_at": "2012-02-22T02:06:58.147Z",
"num_hearts": 5,
"num_likes": 5,
"num_subtasks": 3,
"assignee": {
"gid": "12345",
"name": "item-700ec6",
"resource_type": "default"
},
"assignee_section": {
"gid": "12345",
"name": "item-0d24b3",
"resource_type": "default"
},
"custom_fields": [
{
"date_value": {
"date": "2024-08-23",
"date_time": "2024-08-23T22:00:00.000Z"
},
"display_value": "blue",
"enabled": true,
"enum_options": [
{
"color": "#cedf41",
"enabled": true,
"gid": "12345",
"name": "item-8b95cc",
"resource_type": "default"
}
],
"enum_value": {
"color": "#f568f6",
"enabled": true,
"gid": "12345",
"name": "item-7bbff8",
"resource_type": "default"
},
"gid": "12345",
"id_prefix": "ID",
"input_restrictions": "task",
"is_formula_field": false,
"multi_enum_values": [
{
"color": "#44689f",
"enabled": true,
"gid": "12345",
"name": "item-2c2907",
"resource_type": "default"
}
],
"name": "item-dc02ab",
"number_value": 5.2,
"representation_type": "number",
"resource_type": "default",
"text_value": "Some Value",
"type": "text",
"asana_created_field": "priority",
"currency_code": "DEFAULT",
"custom_label": "gold pieces",
"custom_label_position": "suffix",
"description": null,
"format": "custom",
"has_notifications_enabled": true,
"is_global_to_workspace": true,
"precision": 2,
"created_by": {
"gid": "12345",
"name": "item-dadf0c",
"resource_type": "default"
},
"default_access_level": "user",
"is_value_read_only": false,
"people_value": [
{
"gid": "12345",
"name": "item-70439e",
"resource_type": "default"
}
],
"privacy_setting": "public_with_guests",
"reference_value": [
{
"gid": "12345",
"name": "item-6da78f",
"resource_type": "default"
}
],
"resource_subtype": "text"
}
],
"custom_type": {
"gid": "12345",
"name": "item-da1cc2",
"resource_type": "default"
},
"custom_type_status_option": {
"gid": "12345",
"name": "item-e82701",
"resource_type": "default"
},
"followers": [
{
"gid": "12345",
"name": "item-38291c",
"resource_type": "default"
}
],
"parent": {
"created_by": {
"gid": "1111",
"resource_type": "default"
},
"gid": "12345",
"name": "item-bf2c54",
"resource_subtype": "default_task",
"resource_type": "default"
},
"permalink_url": "https://app.asana.com/1/12345/task/123456789",
"projects": [
{
"gid": "12345",
"name": "item-d95750",
"resource_type": "default"
}
],
"tags": [
{
"gid": "59746",
"name": "Grade A",
"resource_type": "tag"
}
]
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · GET /crm/v3/objects/contacts/736462240085 · HTTP 404
We sent
GET /crm/v3/objects/contacts/736462240085
No body shown for this read.
Server returned
HTTP 404
{
"errors": [
{
"status": "404",
"code": "EGeneral:Not found",
"detail": "Resource 736462240085 not found"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/736462240085
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/736462240085' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b · HTTP 404
We sent
GET /user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b
No body shown for this read.
Server returned
HTTP 404
{
"errors": [
{
"status": "404",
"code": "EGeneral:Not found",
"detail": "Resource 24036dd1-ab3c-4f2e-bb32-f189b8d0518b not found"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_7M79SIC2RDSYIUZ5 · HTTP 200
We sent
GET /v1/customers/cus_7M79SIC2RDSYIUZ5
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 39,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_7M79SIC2RDSYIUZ5",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Erased customer",
"object": "customer",
"phone": null,
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"metadata": {
"acme_erased": "DSR-approve-erases"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_7M79SIC2RDSYIUZ5
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_7M79SIC2RDSYIUZ5' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · GET /crm/v3/objects/contacts/736462240085 · HTTP 404
We sent
GET /crm/v3/objects/contacts/736462240085
No body shown for this read.
Server returned
HTTP 404
{
"errors": [
{
"status": "404",
"code": "EGeneral:Not found",
"detail": "Resource 736462240085 not found"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/736462240085
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/736462240085' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · GET /tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78 · HTTP 200
We sent
GET /tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78
No body shown for this read.
Server returned
HTTP 200
{
"data": {
"name": "DSR-approve-erases: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-approve-erases, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref c6968cd3f1d6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14",
"created_by": {
"gid": "1111",
"resource_type": "default"
},
"gid": "12345",
"resource_subtype": "default_task",
"resource_type": "task",
"approval_status": "pending",
"assigned_by": {
"gid": "12345",
"name": "item-0821a1",
"resource_type": "default"
},
"assignee_status": "upcoming",
"completed": false,
"completed_by": {
"gid": "12345",
"name": "item-c31672",
"resource_type": "default"
},
"created_at": "2012-02-22T02:06:58.147Z",
"dependencies": [
{
"gid": "12345",
"resource_type": "default"
}
],
"dependents": [
{
"gid": "12345",
"resource_type": "default"
}
],
"external": {
"data": "A blob of information",
"gid": "my_gid"
},
"hearted": true,
"hearts": [
{
"gid": "12345",
"user": {
"gid": "12345",
"name": "item-2d0e0d",
"resource_type": "default"
}
}
],
"html_notes": "<body>Mittens <em>really</em> likes the stuff from Humboldt.</body>",
"is_rendered_as_separator": false,
"liked": true,
"likes": [
{
"gid": "12345",
"user": {
"gid": "12345",
"name": "item-fcb282",
"resource_type": "default"
}
}
],
"memberships": [
{
"project": {
"gid": "12345",
"name": "item-fe1ced",
"resource_type": "default"
},
"section": {
"gid": "12345",
"name": "item-9fc351",
"resource_type": "default"
}
}
],
"modified_at": "2012-02-22T02:06:58.147Z",
"num_hearts": 5,
"num_likes": 5,
"num_subtasks": 3,
"assignee": {
"gid": "12345",
"name": "item-7889f2",
"resource_type": "default"
},
"assignee_section": {
"gid": "12345",
"name": "item-6279b8",
"resource_type": "default"
},
"custom_fields": [
{
"date_value": {
"date": "2024-08-23",
"date_time": "2024-08-23T22:00:00.000Z"
},
"display_value": "blue",
"enabled": true,
"enum_options": [
{
"color": "#c2ef74",
"enabled": true,
"gid": "12345",
"name": "item-c8fdd5",
"resource_type": "default"
}
],
"enum_value": {
"color": "#6135f9",
"enabled": true,
"gid": "12345",
"name": "item-b15a4c",
"resource_type": "default"
},
"gid": "12345",
"id_prefix": "ID",
"input_restrictions": "task",
"is_formula_field": false,
"multi_enum_values": [
{
"color": "#6b1a3c",
"enabled": true,
"gid": "12345",
"name": "item-1cc359",
"resource_type": "default"
}
],
"name": "item-9ed03d",
"number_value": 5.2,
"representation_type": "number",
"resource_type": "default",
"text_value": "Some Value",
"type": "text",
"asana_created_field": "priority",
"currency_code": "DEFAULT",
"custom_label": "gold pieces",
"custom_label_position": "suffix",
"description": null,
"format": "custom",
"has_notifications_enabled": true,
"is_global_to_workspace": true,
"precision": 2,
"created_by": {
"gid": "12345",
"name": "item-12a210",
"resource_type": "default"
},
"default_access_level": "user",
"is_value_read_only": false,
"people_value": [
{
"gid": "12345",
"name": "item-431e84",
"resource_type": "default"
}
],
"privacy_setting": "public_with_guests",
"reference_value": [
{
"gid": "12345",
"name": "item-4a854a",
"resource_type": "default"
}
],
"resource_subtype": "text"
}
],
"custom_type": {
"gid": "12345",
"name": "item-953287",
"resource_type": "default"
},
"custom_type_status_option": {
"gid": "12345",
"name": "item-115fd1",
"resource_type": "default"
},
"followers": [
{
"gid": "12345",
"name": "item-de0997",
"resource_type": "default"
}
],
"parent": {
"created_by": {
"gid": "1111",
"resource_type": "default"
},
"gid": "12345",
"name": "item-a62e81",
"resource_subtype": "default_task",
"resource_type": "default"
},
"permalink_url": "https://app.asana.com/1/12345/task/123456789",
"projects": [
{
"gid": "12345",
"name": "item-90ec2f",
"resource_type": "default"
}
],
"tags": [
{
"gid": "59746",
"name": "Grade A",
"resource_type": "tag"
}
]
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b · HTTP 404
We sent
GET /user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b
No body shown for this read.
Server returned
HTTP 404
{
"errors": [
{
"status": "404",
"code": "EGeneral:Not found",
"detail": "Resource 24036dd1-ab3c-4f2e-bb32-f189b8d0518b not found"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_7M79SIC2RDSYIUZ5 · HTTP 200
We sent
GET /v1/customers/cus_7M79SIC2RDSYIUZ5
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 39,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_7M79SIC2RDSYIUZ5",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Erased customer",
"object": "customer",
"phone": null,
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"metadata": {
"acme_erased": "DSR-approve-erases"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_7M79SIC2RDSYIUZ5
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_7M79SIC2RDSYIUZ5' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
A rejected request erases nothing
rejectedWhat we probed
A rejected request erases nothing
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocations
Expected vs actual
- Expected
- A rejected request erases nothing
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-rejected",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "rejected"
}
}Server returned
HTTP 200
{
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "rejected"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 874521035700",
"durationMs": 182
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 374
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1",
"durationMs": 380
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-rejected",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "383dbc02-8fae-4e5b-b680-8703968ea20f",
"appliedAt": "2026-10-19T14:52:47.358Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-rejected",
"contact": "874521035700",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-rejected",
"customer": "cus_XLF6K52HQ2KNJ92V",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-rejected",
"user": "45fe92cf-6d70-4a92-a16f-030b8a382be1",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-rejected",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-rejected"
},
"attempts": 1,
"ref": "17DZBZZL09.RALPOG",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:47.483Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:47.484Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "a187bda2bbd3",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:46.843Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:47.225Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:47.230Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:47.358Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:47.483Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:47.484Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:52:46.843Z",
"updatedAt": "2026-10-19T14:52:47.484Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "479",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-rejected",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "rejected"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03POST /invocations200
We sent
POST /invocations
{
"action": "decide",
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "reject",
"userId": "U_DPO"
}Server returned
HTTP 200
{
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "REJECTED",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "rejected"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 874521035700",
"durationMs": 182
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 374
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1",
"durationMs": 380
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-rejected",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "383dbc02-8fae-4e5b-b680-8703968ea20f",
"appliedAt": "2026-10-19T14:52:47.358Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"contact": "874521035700",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"customer": "cus_XLF6K52HQ2KNJ92V",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"user": "45fe92cf-6d70-4a92-a16f-030b8a382be1",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-rejected"
},
"attempts": 1,
"ref": "17DZBZZL09.RALPOG",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:47.483Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 4
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:47.484Z",
"decision": "reject",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:48.980Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "a187bda2bbd3",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:46.843Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:47.225Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:47.230Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:47.358Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:47.483Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:47.484Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:48.980Z",
"msg": "rejected by U_DPO"
}
],
"createdAt": "2026-10-19T14:52:46.843Z",
"updatedAt": "2026-10-19T14:52:48.980Z",
"result": "recorded"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "111",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "reject",
"userId": "U_DPO"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "REJECTED",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "rejected"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 874521035700",
"durationMs": 182
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 374
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1",
"durationMs": 380
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-rejected",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "383dbc02-8fae-4e5b-b680-8703968ea20f",
"appliedAt": "2026-10-19T14:52:47.358Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"contact": "874521035700",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"customer": "cus_XLF6K52HQ2KNJ92V",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"user": "45fe92cf-6d70-4a92-a16f-030b8a382be1",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-rejected"
},
"attempts": 1,
"ref": "17DZBZZL09.RALPOG",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:47.483Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 4
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:47.484Z",
"decision": "reject",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:48.980Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "a187bda2bbd3",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:46.843Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:47.225Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:47.230Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:47.358Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:47.483Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:47.484Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:48.980Z",
"msg": "rejected by U_DPO"
}
],
"createdAt": "2026-10-19T14:52:46.843Z",
"updatedAt": "2026-10-19T14:52:48.980Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-rejected",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "rejected"
}
}Server returned
HTTP 200
{
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "REJECTED",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "rejected"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 874521035700",
"durationMs": 182
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 374
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1",
"durationMs": 380
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-rejected",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "383dbc02-8fae-4e5b-b680-8703968ea20f",
"appliedAt": "2026-10-19T14:52:47.358Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"contact": "874521035700",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"customer": "cus_XLF6K52HQ2KNJ92V",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"user": "45fe92cf-6d70-4a92-a16f-030b8a382be1",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-rejected"
},
"attempts": 1,
"ref": "17DZBZZL09.RALPOG",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:47.483Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 4
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:47.484Z",
"decision": "reject",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:48.980Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "a187bda2bbd3",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:46.843Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:47.225Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:47.230Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:47.358Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:47.483Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:47.484Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:48.980Z",
"msg": "rejected by U_DPO"
},
{
"at": "2026-10-19T14:52:49.831Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:46.843Z",
"updatedAt": "2026-10-19T14:52:49.831Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "479",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-rejected",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "rejected"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06POST /invocations200
We sent
POST /invocations
{
"action": "decide",
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "reject",
"userId": "U_DPO"
}Server returned
HTTP 200
{
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "REJECTED",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "rejected"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 874521035700",
"durationMs": 182
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 374
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1",
"durationMs": 380
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-rejected",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "383dbc02-8fae-4e5b-b680-8703968ea20f",
"appliedAt": "2026-10-19T14:52:47.358Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"contact": "874521035700",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"customer": "cus_XLF6K52HQ2KNJ92V",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"user": "45fe92cf-6d70-4a92-a16f-030b8a382be1",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-rejected"
},
"attempts": 1,
"ref": "17DZBZZL09.RALPOG",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:47.483Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 4
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:47.484Z",
"decision": "reject",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:48.980Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "a187bda2bbd3",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:46.843Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:47.225Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:47.230Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:47.358Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:47.483Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:47.484Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:48.980Z",
"msg": "rejected by U_DPO"
},
{
"at": "2026-10-19T14:52:49.831Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:46.843Z",
"updatedAt": "2026-10-19T14:52:50.023Z",
"result": "already_decided"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "111",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "reject",
"userId": "U_DPO"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
07GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "REJECTED",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "rejected"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 874521035700",
"durationMs": 182
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 374
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1",
"durationMs": 380
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-rejected",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "383dbc02-8fae-4e5b-b680-8703968ea20f",
"appliedAt": "2026-10-19T14:52:47.358Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"contact": "874521035700",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"customer": "cus_XLF6K52HQ2KNJ92V",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"user": "45fe92cf-6d70-4a92-a16f-030b8a382be1",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "rejected",
"summary": {
"requestId": "DSR-rejected",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-rejected"
},
"attempts": 1,
"ref": "17DZBZZL09.RALPOG",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:47.483Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 4
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:47.484Z",
"decision": "reject",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:52:48.980Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "a187bda2bbd3",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:46.843Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:47.225Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:47.230Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:47.358Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:47.483Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:47.484Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:48.980Z",
"msg": "rejected by U_DPO"
},
{
"at": "2026-10-19T14:52:49.831Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:46.843Z",
"updatedAt": "2026-10-19T14:52:50.023Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
rejectedApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
A rejected request erases nothing
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (8)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "874521035700",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "229",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_XLF6K52HQ2KNJ92V",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 51,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "45fe92cf-6d70-4a92-a16f-030b8a382be1",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/53dcad79",
"email_verified": true,
"external_id": "ext_4756ddedd093479f9010cff3ce",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-rejected: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-rejected, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref a187bda2bbd3. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-rejected: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-rejected, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref a187bda2bbd3. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "383dbc02-8fae-4e5b-b680-8703968ea20f"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "518",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-rejected: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-rejected, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref a187bda2bbd3. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-rejected (GDPR, due 2026-11-14, 25d left) subject a187bda2bbd3: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_3f76b0568340488c9cee687103",
"client_msg_id": "cli_f6fa860991ca4137a3c652c9af",
"name": "item-7cadaa",
"old_name": "Sample Old",
"parent_user_id": "par_5622b1f6e98a4c38a9f66ad4f4",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17DZBZZL09.RALPOG"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "198",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-rejected (GDPR, due 2026-11-14, 25d left) subject a187bda2bbd3: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Someone who is not the DPO cannot approve erasure
approve_by_stranger_refusedWhat we probed
Someone who is not the DPO cannot approve erasure
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocations
Expected vs actual
- Expected
- Someone who is not the DPO cannot approve erasure
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-approve-by-stranger-refused",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_by_stranger_refused"
}
}Server returned
HTTP 200
{
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_by_stranger_refused"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 018155334412",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 335
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"durationMs": 264
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "81ae7b63-5f94-4fee-9349-319ec80373de",
"appliedAt": "2026-10-19T14:52:52.080Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"contact": "018155334412",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"customer": "cus_3BQZBPFIP75KZNQ4",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-by-stranger-refused"
},
"attempts": 1,
"ref": "17UES8HHJE.0QHP8H",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:52.234Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:52.236Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "462f4195dc0e",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:51.633Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:51.970Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:51.973Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:52.080Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:52.234Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:52.236Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:52:51.633Z",
"updatedAt": "2026-10-19T14:52:52.236Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "555",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-approve-by-stranger-refused",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_by_stranger_refused"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03POST /invocations403
We sent
POST /invocations
{
"action": "decide",
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_SUPPORT"
}Server returned
HTTP 403
{
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_by_stranger_refused"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 018155334412",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 335
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"durationMs": 264
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "81ae7b63-5f94-4fee-9349-319ec80373de",
"appliedAt": "2026-10-19T14:52:52.080Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"contact": "018155334412",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"customer": "cus_3BQZBPFIP75KZNQ4",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-by-stranger-refused"
},
"attempts": 1,
"ref": "17UES8HHJE.0QHP8H",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:52.234Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:52.236Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "462f4195dc0e",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:51.633Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:51.970Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:51.973Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:52.080Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:52.234Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:52.236Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:52.402Z",
"msg": "decision by U_SUPPORT refused: not an approver"
}
],
"createdAt": "2026-10-19T14:52:51.633Z",
"updatedAt": "2026-10-19T14:52:52.402Z",
"result": "forbidden"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "135",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_SUPPORT"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_by_stranger_refused"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 018155334412",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 335
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"durationMs": 264
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "81ae7b63-5f94-4fee-9349-319ec80373de",
"appliedAt": "2026-10-19T14:52:52.080Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"contact": "018155334412",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"customer": "cus_3BQZBPFIP75KZNQ4",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-by-stranger-refused"
},
"attempts": 1,
"ref": "17UES8HHJE.0QHP8H",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:52.234Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:52.236Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "462f4195dc0e",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:51.633Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:51.970Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:51.973Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:52.080Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:52.234Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:52.236Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:52.402Z",
"msg": "decision by U_SUPPORT refused: not an approver"
}
],
"createdAt": "2026-10-19T14:52:51.633Z",
"updatedAt": "2026-10-19T14:52:52.402Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-approve-by-stranger-refused",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_by_stranger_refused"
}
}Server returned
HTTP 200
{
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_by_stranger_refused"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 018155334412",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 335
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"durationMs": 264
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "81ae7b63-5f94-4fee-9349-319ec80373de",
"appliedAt": "2026-10-19T14:52:52.080Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"contact": "018155334412",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"customer": "cus_3BQZBPFIP75KZNQ4",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-by-stranger-refused"
},
"attempts": 1,
"ref": "17UES8HHJE.0QHP8H",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:52.234Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:52.236Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "462f4195dc0e",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:51.633Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:51.970Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:51.973Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:52.080Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:52.234Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:52.236Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:52.402Z",
"msg": "decision by U_SUPPORT refused: not an approver"
},
{
"at": "2026-10-19T14:52:54.217Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:51.633Z",
"updatedAt": "2026-10-19T14:52:54.217Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "555",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-approve-by-stranger-refused",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_by_stranger_refused"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06POST /invocations403
We sent
POST /invocations
{
"action": "decide",
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_SUPPORT"
}Server returned
HTTP 403
{
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_by_stranger_refused"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 018155334412",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 335
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"durationMs": 264
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "81ae7b63-5f94-4fee-9349-319ec80373de",
"appliedAt": "2026-10-19T14:52:52.080Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"contact": "018155334412",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"customer": "cus_3BQZBPFIP75KZNQ4",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-by-stranger-refused"
},
"attempts": 1,
"ref": "17UES8HHJE.0QHP8H",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:52.234Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:52.236Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "462f4195dc0e",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:51.633Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:51.970Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:51.973Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:52.080Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:52.234Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:52.236Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:52.402Z",
"msg": "decision by U_SUPPORT refused: not an approver"
},
{
"at": "2026-10-19T14:52:54.217Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:52:54.414Z",
"msg": "decision by U_SUPPORT refused: not an approver"
}
],
"createdAt": "2026-10-19T14:52:51.633Z",
"updatedAt": "2026-10-19T14:52:54.414Z",
"result": "forbidden"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "135",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_SUPPORT"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
07GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "approve_by_stranger_refused"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 018155334412",
"durationMs": 218
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 335
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"durationMs": 264
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "81ae7b63-5f94-4fee-9349-319ec80373de",
"appliedAt": "2026-10-19T14:52:52.080Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"contact": "018155334412",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"customer": "cus_3BQZBPFIP75KZNQ4",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-approve-by-stranger-refused",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-approve-by-stranger-refused"
},
"attempts": 1,
"ref": "17UES8HHJE.0QHP8H",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:52.234Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:52.236Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "462f4195dc0e",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:51.633Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:51.970Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:51.973Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:52:52.080Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:52.234Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:52.236Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:52:52.402Z",
"msg": "decision by U_SUPPORT refused: not an approver"
},
{
"at": "2026-10-19T14:52:54.217Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:52:54.414Z",
"msg": "decision by U_SUPPORT refused: not an approver"
}
],
"createdAt": "2026-10-19T14:52:51.633Z",
"updatedAt": "2026-10-19T14:52:54.414Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
approve_by_stranger_refusedApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
Someone who is not the DPO cannot approve erasure
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (8)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/b44fb990",
"email_verified": true,
"external_id": "ext_8f290cdb103c42afb19c1ba5e7",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "018155334412",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "248",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_3BQZBPFIP75KZNQ4",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 33,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-approve-by-stranger-refused: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-approve-by-stranger-refused, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 462f4195dc0e. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-approve-by-stranger-refused: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-approve-by-stranger-refused, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 462f4195dc0e. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "81ae7b63-5f94-4fee-9349-319ec80373de"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "556",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-approve-by-stranger-refused: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-approve-by-stranger-refused, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 462f4195dc0e. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-approve-by-stranger-refused (GDPR, due 2026-11-14, 25d left) subject 462f4195dc0e: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_52da893c9aae4291b663d94143",
"client_msg_id": "cli_4115da7e7ac14de1a8250bd805",
"name": "item-f19ead",
"old_name": "Sample Old",
"parent_user_id": "par_7d5890b4795942d2b7c8364f42",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17UES8HHJE.0QHP8H"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "217",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-approve-by-stranger-refused (GDPR, due 2026-11-14, 25d left) subject 462f4195dc0e: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
An unverified request erases nothing and drafts a verification request
unverified_no_erasureWhat we probed
An unverified request erases nothing and drafts a verification request
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- An unverified request erases nothing and drafts a verification request
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-unverified-no-erasure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "none",
"verifiedBy": "inbox"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "unverified_no_erasure"
}
}Server returned
HTTP 200
{
"runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "unverified_no_erasure"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 137268112170",
"durationMs": 96
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_90PC79TY1TM1MVB3: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 287
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 5f753775-63fc-4636-9695-01c44488de08",
"durationMs": 232
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "UNVERIFIED; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-unverified-no-erasure",
"deadline": "2026-11-14",
"verified": false
},
"attempts": 1,
"ref": "54e08c9b-32ff-452b-a6f2-a26a460562f0",
"appliedAt": "2026-10-19T14:52:55.792Z",
"reconciled": null
},
{
"id": "gmail.draft_verification_request",
"kind": "gmail.draft_verification_request",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-unverified-no-erasure",
"sent": false
},
"attempts": 1,
"ref": "r3488270922212164",
"appliedAt": "2026-10-19T14:52:55.950Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-unverified-no-erasure"
},
"attempts": 1,
"ref": "17SAH7S3KF.8F0YE6",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:56.068Z",
"reconciled": null
}
],
"counts": {
"applied": 3,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"output": {
"verified": false,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "2cbf76a34c08",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:55.378Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:55.665Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:55.668Z",
"msg": "planned 3 action(s): 0 need approval"
},
{
"at": "2026-10-19T14:52:55.792Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:55.950Z",
"msg": "gmail.draft_verification_request: applied"
},
{
"at": "2026-10-19T14:52:56.069Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:56.070Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-19T14:52:55.378Z",
"updatedAt": "2026-10-19T14:52:56.070Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "516",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-unverified-no-erasure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "none",
"verifiedBy": "inbox"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "unverified_no_erasure"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "unverified_no_erasure"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 137268112170",
"durationMs": 96
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_90PC79TY1TM1MVB3: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 287
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 5f753775-63fc-4636-9695-01c44488de08",
"durationMs": 232
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "UNVERIFIED; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-unverified-no-erasure",
"deadline": "2026-11-14",
"verified": false
},
"attempts": 1,
"ref": "54e08c9b-32ff-452b-a6f2-a26a460562f0",
"appliedAt": "2026-10-19T14:52:55.792Z",
"reconciled": null
},
{
"id": "gmail.draft_verification_request",
"kind": "gmail.draft_verification_request",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-unverified-no-erasure",
"sent": false
},
"attempts": 1,
"ref": "r3488270922212164",
"appliedAt": "2026-10-19T14:52:55.950Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-unverified-no-erasure"
},
"attempts": 1,
"ref": "17SAH7S3KF.8F0YE6",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:56.068Z",
"reconciled": null
}
],
"counts": {
"applied": 3,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"output": {
"verified": false,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "2cbf76a34c08",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:55.378Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:55.665Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:55.668Z",
"msg": "planned 3 action(s): 0 need approval"
},
{
"at": "2026-10-19T14:52:55.792Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:55.950Z",
"msg": "gmail.draft_verification_request: applied"
},
{
"at": "2026-10-19T14:52:56.069Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:56.070Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-19T14:52:55.378Z",
"updatedAt": "2026-10-19T14:52:56.070Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-unverified-no-erasure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "none",
"verifiedBy": "inbox"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "unverified_no_erasure"
}
}Server returned
HTTP 200
{
"runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "unverified_no_erasure"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 137268112170",
"durationMs": 96
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_90PC79TY1TM1MVB3: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 287
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 5f753775-63fc-4636-9695-01c44488de08",
"durationMs": 232
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "UNVERIFIED; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-unverified-no-erasure",
"deadline": "2026-11-14",
"verified": false
},
"attempts": 1,
"ref": "54e08c9b-32ff-452b-a6f2-a26a460562f0",
"appliedAt": "2026-10-19T14:52:55.792Z",
"reconciled": null
},
{
"id": "gmail.draft_verification_request",
"kind": "gmail.draft_verification_request",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-unverified-no-erasure",
"sent": false
},
"attempts": 1,
"ref": "r3488270922212164",
"appliedAt": "2026-10-19T14:52:55.950Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-unverified-no-erasure"
},
"attempts": 1,
"ref": "17SAH7S3KF.8F0YE6",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:56.068Z",
"reconciled": null
}
],
"counts": {
"applied": 3,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"output": {
"verified": false,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "2cbf76a34c08",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:55.378Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:55.665Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:55.668Z",
"msg": "planned 3 action(s): 0 need approval"
},
{
"at": "2026-10-19T14:52:55.792Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:55.950Z",
"msg": "gmail.draft_verification_request: applied"
},
{
"at": "2026-10-19T14:52:56.069Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:56.070Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:52:57.402Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:55.378Z",
"updatedAt": "2026-10-19T14:52:57.402Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "516",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-unverified-no-erasure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "none",
"verifiedBy": "inbox"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "unverified_no_erasure"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "unverified_no_erasure"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 137268112170",
"durationMs": 96
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_90PC79TY1TM1MVB3: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 287
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 5f753775-63fc-4636-9695-01c44488de08",
"durationMs": 232
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "UNVERIFIED; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-unverified-no-erasure",
"deadline": "2026-11-14",
"verified": false
},
"attempts": 1,
"ref": "54e08c9b-32ff-452b-a6f2-a26a460562f0",
"appliedAt": "2026-10-19T14:52:55.792Z",
"reconciled": null
},
{
"id": "gmail.draft_verification_request",
"kind": "gmail.draft_verification_request",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-unverified-no-erasure",
"sent": false
},
"attempts": 1,
"ref": "r3488270922212164",
"appliedAt": "2026-10-19T14:52:55.950Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-unverified-no-erasure"
},
"attempts": 1,
"ref": "17SAH7S3KF.8F0YE6",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:56.068Z",
"reconciled": null
}
],
"counts": {
"applied": 3,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"output": {
"verified": false,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "2cbf76a34c08",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:55.378Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:55.665Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:55.668Z",
"msg": "planned 3 action(s): 0 need approval"
},
{
"at": "2026-10-19T14:52:55.792Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:55.950Z",
"msg": "gmail.draft_verification_request: applied"
},
{
"at": "2026-10-19T14:52:56.069Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:56.070Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:52:57.402Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:55.378Z",
"updatedAt": "2026-10-19T14:52:57.402Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
unverified_no_erasureApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
An unverified request erases nothing and drafts a verification request
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (9)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "137268112170",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "242",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "5f753775-63fc-4636-9695-01c44488de08",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/1ef10dff",
"email_verified": true,
"external_id": "ext_d27594165493473799a44369ef",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_90PC79TY1TM1MVB3",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 64,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-unverified-no-erasure: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-unverified-no-erasure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2cbf76a34c08. Verification: none by inbox.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nNot verified: nothing will be erased until identity is confirmed.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-unverified-no-erasure: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-unverified-no-erasure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2cbf76a34c08. Verification: none by inbox.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nNot verified: nothing will be erased until identity is confirmed.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "54e08c9b-32ff-452b-a6f2-a26a460562f0"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "567",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-unverified-no-erasure: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-unverified-no-erasure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2cbf76a34c08. Verification: none by inbox.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nNot verified: nothing will be erased until identity is confirmed.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
gmail · POST /gmail/v1/users/me/drafts · HTTP 200
We sent
POST /gmail/v1/users/me/drafts
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItdW52ZXJpZmllZC1uby1lcmFzdXJlQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLXVudmVyaWZpZWQtbm8tZXJhc3VyZQ0KTWVzc2FnZS1JRDogPDMyOTk5OWNmYjQ3NWNkZDguZHNyLXZlcmlmeUBvcHMuYWNtZS5leGFtcGxlPg0KTUlNRS1WZXJzaW9uOiAxLjANCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0DQoNCkhlbGxvLAoKV2UgcmVjZWl2ZWQgYSByZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgcGVyc29uYWwgZGF0YSB3ZSBob2xkIGFib3V0IHRoaXMgZW1haWwgYWRkcmVzcy4gQmVmb3JlIHdlIGRlbGV0ZSBhbnl0aGluZyB3ZSBuZWVkIHRvIGNvbmZpcm0gdGhlIHJlcXVlc3QgY2FtZSBmcm9tIHlvdTogcGxlYXNlIHJlcGx5IGZyb20gdGhpcyBhZGRyZXNzIG9yIHNpZ24gaW4gdG8geW91ciBBQ01FIGFjY291bnQgYW5kIGNvbmZpcm0gdGhlIHJlcXVlc3QgdGhlcmUuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
}Server returned
HTTP 200
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItdW52ZXJpZmllZC1uby1lcmFzdXJlQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLXVudmVyaWZpZWQtbm8tZXJhc3VyZQ0KTWVzc2FnZS1JRDogPDMyOTk5OWNmYjQ3NWNkZDguZHNyLXZlcmlmeUBvcHMuYWNtZS5leGFtcGxlPg0KTUlNRS1WZXJzaW9uOiAxLjANCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0DQoNCkhlbGxvLAoKV2UgcmVjZWl2ZWQgYSByZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgcGVyc29uYWwgZGF0YSB3ZSBob2xkIGFib3V0IHRoaXMgZW1haWwgYWRkcmVzcy4gQmVmb3JlIHdlIGRlbGV0ZSBhbnl0aGluZyB3ZSBuZWVkIHRvIGNvbmZpcm0gdGhlIHJlcXVlc3QgY2FtZSBmcm9tIHlvdTogcGxlYXNlIHJlcGx5IGZyb20gdGhpcyBhZGRyZXNzIG9yIHNpZ24gaW4gdG8geW91ciBBQ01FIGFjY291bnQgYW5kIGNvbmZpcm0gdGhlIHJlcXVlc3QgdGhlcmUuCgpBQ01FIFByaXZhY3kgVGVhbQ",
"payload": {
"mimeType": "text/plain",
"headers": [
{
"name": "From",
"value": "me"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Your data deletion request DSR-unverified-no-erasure"
},
{
"name": "Message-ID",
"value": "<[email protected]>"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/plain; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "8bit"
}
],
"body": {
"size": 276,
"data": "SGVsbG8sCgpXZSByZWNlaXZlZCBhIHJlcXVlc3QgdG8gZGVsZXRlIHRoZSBwZXJzb25hbCBkYXRhIHdlIGhvbGQgYWJvdXQgdGhpcyBlbWFpbCBhZGRyZXNzLiBCZWZvcmUgd2UgZGVsZXRlIGFueXRoaW5nIHdlIG5lZWQgdG8gY29uZmlybSB0aGUgcmVxdWVzdCBjYW1lIGZyb20geW91OiBwbGVhc2UgcmVwbHkgZnJvbSB0aGlzIGFkZHJlc3Mgb3Igc2lnbiBpbiB0byB5b3VyIEFDTUUgYWNjb3VudCBhbmQgY29uZmlybSB0aGUgcmVxdWVzdCB0aGVyZS4KCkFDTUUgUHJpdmFjeSBUZWFt"
}
},
"sizeEstimate": 550,
"labelIds": [
"DRAFT"
],
"id": "8be3203a6f564d09"
},
"user_id": "me",
"id": "r3488270922212164"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts
{
"host": "fetchsandbox.com",
"content-length": "756",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItdW52ZXJpZmllZC1uby1lcmFzdXJlQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLXVudmVyaWZpZWQtbm8tZXJhc3VyZQ0KTWVzc2FnZS1JRDogPDMyOTk5OWNmYjQ3NWNkZDguZHNyLXZlcmlmeUBvcHMuYWNtZS5leGFtcGxlPg0KTUlNRS1WZXJzaW9uOiAxLjANCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0DQoNCkhlbGxvLAoKV2UgcmVjZWl2ZWQgYSByZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgcGVyc29uYWwgZGF0YSB3ZSBob2xkIGFib3V0IHRoaXMgZW1haWwgYWRkcmVzcy4gQmVmb3JlIHdlIGRlbGV0ZSBhbnl0aGluZyB3ZSBuZWVkIHRvIGNvbmZpcm0gdGhlIHJlcXVlc3QgY2FtZSBmcm9tIHlvdTogcGxlYXNlIHJlcGx5IGZyb20gdGhpcyBhZGRyZXNzIG9yIHNpZ24gaW4gdG8geW91ciBBQ01FIGFjY291bnQgYW5kIGNvbmZpcm0gdGhlIHJlcXVlc3QgdGhlcmUuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-unverified-no-erasure (GDPR, due 2026-11-14, 25d left) subject 2cbf76a34c08: NOT VERIFIED, nothing erased.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_bf6780bc9f914aa0bc01aeaccf",
"client_msg_id": "cli_45b7498e172f43bf99b2020c48",
"name": "item-569293",
"old_name": "Sample Old",
"parent_user_id": "par_bcc7c13bc7034834affa03cf83",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17SAH7S3KF.8F0YE6"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "194",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-unverified-no-erasure (GDPR, due 2026-11-14, 25d left) subject 2cbf76a34c08: NOT VERIFIED, nothing erased.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
An active subscription holds the billing record; CRM and login are still erased on approval
active_subscription_retains_billingWhat we probed
An active subscription holds the billing record; CRM and login are still erased on approval
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- An active subscription holds the billing record; CRM and login are still erased on approval
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-active-subscription-retains-billing",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "active_subscription_retains_billing"
}
}Server returned
HTTP 200
{
"runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "active_subscription_retains_billing"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 915733078391",
"durationMs": 167
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_3MLW3PH1LVZPW4XG: 1 live subscription(s), 1 open invoice(s)",
"durationMs": 622
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 91f2262b-eae1-4820-9d88-846ebdf73f91",
"durationMs": 620
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=retain, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "5bc957df-5485-4b9e-b385-8e63a211e197",
"appliedAt": "2026-10-19T14:52:59.552Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"contact": "915733078391",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"user": "91f2262b-eae1-4820-9d88-846ebdf73f91",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"sent": false,
"after": [
"hubspot.erase_contact",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-active-subscription-retains-billing"
},
"attempts": 1,
"ref": "177E5L5GDQ.IGYPVT",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:59.682Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 3,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:59.684Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "5e69abe63461",
"decisions": {
"hubspot": "erase",
"stripe": "retain",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:58.817Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:59.441Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:59.444Z",
"msg": "planned 5 action(s): 3 need approval"
},
{
"at": "2026-10-19T14:52:59.553Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:59.682Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:59.684Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:52:58.817Z",
"updatedAt": "2026-10-19T14:52:59.684Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "587",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-active-subscription-retains-billing",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "active_subscription_retains_billing"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "active_subscription_retains_billing"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 915733078391",
"durationMs": 167
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_3MLW3PH1LVZPW4XG: 1 live subscription(s), 1 open invoice(s)",
"durationMs": 622
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 91f2262b-eae1-4820-9d88-846ebdf73f91",
"durationMs": 620
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=retain, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "5bc957df-5485-4b9e-b385-8e63a211e197",
"appliedAt": "2026-10-19T14:52:59.552Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"contact": "915733078391",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"user": "91f2262b-eae1-4820-9d88-846ebdf73f91",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"sent": false,
"after": [
"hubspot.erase_contact",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-active-subscription-retains-billing"
},
"attempts": 1,
"ref": "177E5L5GDQ.IGYPVT",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:59.682Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 3,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:59.684Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "5e69abe63461",
"decisions": {
"hubspot": "erase",
"stripe": "retain",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:58.817Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:59.441Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:59.444Z",
"msg": "planned 5 action(s): 3 need approval"
},
{
"at": "2026-10-19T14:52:59.553Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:59.682Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:59.684Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:52:58.817Z",
"updatedAt": "2026-10-19T14:52:59.684Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-active-subscription-retains-billing",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "active_subscription_retains_billing"
}
}Server returned
HTTP 200
{
"runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "active_subscription_retains_billing"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 915733078391",
"durationMs": 167
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_3MLW3PH1LVZPW4XG: 1 live subscription(s), 1 open invoice(s)",
"durationMs": 622
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 91f2262b-eae1-4820-9d88-846ebdf73f91",
"durationMs": 620
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=retain, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "5bc957df-5485-4b9e-b385-8e63a211e197",
"appliedAt": "2026-10-19T14:52:59.552Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"contact": "915733078391",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"user": "91f2262b-eae1-4820-9d88-846ebdf73f91",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"sent": false,
"after": [
"hubspot.erase_contact",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-active-subscription-retains-billing"
},
"attempts": 1,
"ref": "177E5L5GDQ.IGYPVT",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:59.682Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 3,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:59.684Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "5e69abe63461",
"decisions": {
"hubspot": "erase",
"stripe": "retain",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:58.817Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:59.441Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:59.444Z",
"msg": "planned 5 action(s): 3 need approval"
},
{
"at": "2026-10-19T14:52:59.553Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:59.682Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:59.684Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:00.421Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:58.817Z",
"updatedAt": "2026-10-19T14:53:00.421Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "587",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-active-subscription-retains-billing",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "active_subscription_retains_billing"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "active_subscription_retains_billing"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 915733078391",
"durationMs": 167
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_3MLW3PH1LVZPW4XG: 1 live subscription(s), 1 open invoice(s)",
"durationMs": 622
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 91f2262b-eae1-4820-9d88-846ebdf73f91",
"durationMs": 620
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=retain, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "5bc957df-5485-4b9e-b385-8e63a211e197",
"appliedAt": "2026-10-19T14:52:59.552Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"contact": "915733078391",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"user": "91f2262b-eae1-4820-9d88-846ebdf73f91",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-active-subscription-retains-billing",
"sent": false,
"after": [
"hubspot.erase_contact",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-active-subscription-retains-billing"
},
"attempts": 1,
"ref": "177E5L5GDQ.IGYPVT",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:52:59.682Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 3,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:52:59.684Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "5e69abe63461",
"decisions": {
"hubspot": "erase",
"stripe": "retain",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:52:58.817Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:52:59.441Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:52:59.444Z",
"msg": "planned 5 action(s): 3 need approval"
},
{
"at": "2026-10-19T14:52:59.553Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:52:59.682Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:52:59.684Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:00.421Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:52:58.817Z",
"updatedAt": "2026-10-19T14:53:00.421Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
active_subscription_retains_billingApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
An active subscription holds the billing record; CRM and login are still erased on approval
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (8)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_3MLW3PH1LVZPW4XG",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 51,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "915733078391",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "256",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "91f2262b-eae1-4820-9d88-846ebdf73f91",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/fdb3d0a5",
"email_verified": true,
"external_id": "ext_2202cacd333a4193933513ed40",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"customer": "cus_3MLW3PH1LVZPW4XG",
"items": {
"object": "list",
"data": [
{
"object": "subscription_item",
"price": {
"id": "price_1Pro_Monthly_USD",
"object": "price",
"active": true,
"currency": "usd",
"unit_amount": 4900,
"unit_amount_decimal": "4900",
"product": "prod_SaaS_ProPlan",
"type": "recurring",
"recurring": {
"interval": "month",
"interval_count": 1,
"usage_type": "licensed",
"aggregate_usage": null
},
"billing_scheme": "per_unit",
"livemode": false,
"created": "2024-06-01T08:00:00Z",
"metadata": {}
},
"quantity": 1,
"subscription": "sub_UKGOK8W18VJZMUNC88KZU9KO",
"created": 94,
"current_period_end": 30,
"current_period_start": 58,
"discounts": [
"sample-value"
],
"id": "sample-value",
"metadata": {}
}
],
"has_more": false,
"url": "/v1/subscription_items?subscription=sub_UKGOK8W18VJZMUNC88KZU9KO"
},
"status": "incomplete",
"object": "subscription",
"currency": "usd",
"trial_start": null,
"trial_end": null,
"canceled_at": null,
"ended_at": null,
"cancel_at_period_end": false,
"collection_method": "charge_automatically",
"latest_invoice": "in_LELOMHDF9OHKUGJ27PC1DCDC",
"default_payment_method": null,
"id": "sub_UKGOK8W18VJZMUNC88KZU9KO",
"application": null,
"application_fee_percent": null,
"automatic_tax": {
"disabled_reason": "requires_location_inputs",
"enabled": true,
"liability": null
},
"billing_cycle_anchor": 60,
"billing_cycle_anchor_config": null,
"billing_mode": {
"flexible": null,
"type": "classic"
},
"billing_thresholds": null,
"cancel_at": null,
"cancellation_details": null,
"created": 43,
"customer_account": null,
"days_until_due": null,
"default_source": null,
"default_tax_rates": null,
"description": null,
"discounts": [
"sample-value"
],
"invoice_settings": {
"account_tax_ids": null,
"issuer": {
"type": "account"
}
},
"livemode": false,
"metadata": {},
"next_pending_invoice_item_invoice": null,
"on_behalf_of": null,
"pause_collection": null,
"payment_settings": null,
"pending_invoice_item_interval": null,
"pending_setup_intent": null,
"pending_update": null,
"schedule": null,
"start_date": 13,
"test_clock": null,
"transfer_data": null,
"trial_settings": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"object": "invoice",
"parent": {
"type": "subscription_details",
"subscription_details": {
"subscription": "sub_UKGOK8W18VJZMUNC88KZU9KO",
"metadata": {}
}
},
"customer": "cus_3MLW3PH1LVZPW4XG",
"currency": "usd",
"total": 4900,
"amount_due": 4900,
"amount_paid": 0,
"amount_remaining": 4900,
"status": "open",
"created": 1792421450,
"id": "in_LELOMHDF9OHKUGJ27PC1DCDC",
"payments": {
"object": "list",
"data": [
{
"id": "inpay_4VTXUYLEJA6WPJHCY3GN1UQS",
"object": "invoice_payment",
"invoice": "in_LELOMHDF9OHKUGJ27PC1DCDC",
"amount_requested": 4900,
"amount_paid": null,
"currency": "usd",
"created": 1792421450,
"is_default": true,
"livemode": false,
"status": "open",
"status_transitions": {
"paid_at": null,
"canceled_at": null
},
"payment": {
"type": "payment_intent",
"payment_intent": "pi_OGB7K3PI9JPSBCX5RZ5WRK0Z"
}
}
],
"has_more": false,
"url": "/v1/invoice_payments?invoice=in_LELOMHDF9OHKUGJ27PC1DCDC"
},
"amount_overpaid": 10,
"amount_shipping": 1,
"attempt_count": 37,
"attempted": true,
"auto_advance": true,
"automatic_tax": {
"disabled_reason": "finalization_requires_location_inputs",
"enabled": true,
"provider": "default",
"status": "complete"
},
"collection_method": "charge_automatically",
"default_tax_rates": [
{
"active": true,
"country": "US",
"created": 68,
"display_name": "Item 273",
"id": "obj_0689ef93f0944d359d8a743b4a",
"inclusive": true,
"jurisdiction_level": "city",
"livemode": false,
"object": "tax_rate",
"percentage": 543.8761,
"rate_type": "flat_amount",
"tax_type": "amusement_tax"
}
],
"discounts": [
"sample-value"
],
"issuer": {
"type": "account"
},
"lines": {
"data": [
{
"amount": 34,
"currency": "USD",
"discountable": true,
"discounts": [
"sample-value"
],
"id": "obj_81669a252e994e9ba7df75bbc2",
"livemode": false,
"metadata": {},
"object": "line_item",
"period": {
"end": 81,
"start": 85
},
"subtotal": 71
}
],
"has_more": true,
"object": "list",
"url": "https://example.com/a818e49c"
},
"livemode": true,
"payment_settings": {
"default_mandate": "sample-value",
"payment_method_options": {
"acss_debit": {
"mandate_options": {
"transaction_type": "business"
},
"verification_method": "automatic"
},
"bancontact": {
"preferred_language": "de"
},
"card": {
"installments": {
"enabled": true
},
"request_three_d_secure": "any"
},
"customer_balance": {
"bank_transfer": {
"eu_bank_transfer": {
"country": "US"
},
"type": "default"
},
"funding_type": "bank_transfer"
},
"konbini": {},
"payto": {
"mandate_options": {
"amount": 79,
"amount_type": "fixed",
"purpose": "dependant_support"
}
},
"sepa_debit": {},
"us_bank_account": {
"financial_connections": {
"filters": {
"account_subcategories": [
"checking"
]
},
"permissions": [
"balances"
],
"prefetch": [
"balances"
]
},
"verification_method": "automatic"
}
},
"payment_method_types": [
"ach_credit_transfer"
]
},
"period_end": 10,
"period_start": 99,
"post_payment_credit_notes_amount": 16,
"pre_payment_credit_notes_amount": 63,
"starting_balance": 16,
"status_transitions": {
"finalized_at": 10,
"marked_uncollectible_at": 68,
"paid_at": 78,
"voided_at": 71
},
"subtotal": 69,
"account_country": null,
"account_name": null,
"account_tax_ids": null,
"application": null,
"automatically_finalizes_at": null,
"billing_reason": null,
"confirmation_secret": "[redacted]",
"custom_fields": null,
"customer_account": null,
"customer_address": null,
"customer_email": null,
"customer_name": null,
"customer_phone": null,
"customer_shipping": null,
"customer_tax_exempt": null,
"customer_tax_ids": null,
"default_payment_method": null,
"default_source": null,
"description": null,
"due_date": null,
"effective_at": null,
"ending_balance": null,
"footer": null,
"from_invoice": null,
"hosted_invoice_url": null,
"invoice_pdf": null,
"last_finalization_error": null,
"latest_revision": null,
"metadata": null,
"next_payment_attempt": null,
"number": null,
"on_behalf_of": null,
"receipt_number": null,
"rendering": null,
"shipping_cost": null,
"shipping_details": null,
"statement_descriptor": null,
"subtotal_excluding_tax": null,
"test_clock": null,
"total_discount_amounts": null,
"total_excluding_tax": null,
"total_pretax_credit_amounts": null,
"total_taxes": null,
"webhooks_delivered_at": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-active-subscription-retains-billing: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-active-subscription-retains-billing, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 5e69abe63461. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): retain (active subscription sub_UKGOK8W18VJZMUNC88KZU9KO: cancel before erasure)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-active-subscription-retains-billing: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-active-subscription-retains-billing, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 5e69abe63461. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): retain (active subscription sub_UKGOK8W18VJZMUNC88KZU9KO: cancel before erasure)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "5bc957df-5485-4b9e-b385-8e63a211e197"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "583",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-active-subscription-retains-billing: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-active-subscription-retains-billing, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 5e69abe63461. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): retain (active subscription sub_UKGOK8W18VJZMUNC88KZU9KO: cancel before erasure)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-active-subscription-retains-billing (GDPR, due 2026-11-14, 25d left) subject 5e69abe63461: hubspot erase, stripe retain, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_973e275ad1ec4f25a0fa538793",
"client_msg_id": "cli_f08daff41b1e4afebba9b884b0",
"name": "item-df9dbe",
"old_name": "Sample Old",
"parent_user_id": "par_a6298ac5fc404ac3a77a2e5bc2",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "177E5L5GDQ.IGYPVT"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "222",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-active-subscription-retains-billing (GDPR, due 2026-11-14, 25d left) subject 5e69abe63461: hubspot erase, stripe retain, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
A subject found only in the CRM gets only the CRM erasure
crm_onlyWhat we probed
A subject found only in the CRM gets only the CRM erasure
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A subject found only in the CRM gets only the CRM erasure
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-crm-only",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_only"
}
}Server returned
HTTP 200
{
"runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_only"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 252562329687",
"durationMs": 352
},
{
"name": "billing-records",
"status": "ok",
"summary": "no Stripe customer",
"durationMs": 345
},
{
"name": "identity-records",
"status": "ok",
"summary": "no directory account",
"durationMs": 370
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=none, workos=none; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-only",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "48742844-c3de-400c-b415-91d0862a2350",
"appliedAt": "2026-10-19T14:53:01.756Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-only",
"contact": "252562329687",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-only",
"sent": false,
"after": [
"hubspot.erase_contact"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-only"
},
"attempts": 1,
"ref": "17S3WAWTLR.907BSS",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:02.942Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:02.943Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "cf9153f4d147",
"decisions": {
"hubspot": "erase",
"stripe": "none",
"workos": "none"
}
},
"events": [
{
"at": "2026-10-19T14:53:01.157Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:01.530Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:01.594Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:01.757Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:02.942Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:02.943Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:01.157Z",
"updatedAt": "2026-10-19T14:53:02.943Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "479",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-crm-only",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_only"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_only"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 252562329687",
"durationMs": 352
},
{
"name": "billing-records",
"status": "ok",
"summary": "no Stripe customer",
"durationMs": 345
},
{
"name": "identity-records",
"status": "ok",
"summary": "no directory account",
"durationMs": 370
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=none, workos=none; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-only",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "48742844-c3de-400c-b415-91d0862a2350",
"appliedAt": "2026-10-19T14:53:01.756Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-only",
"contact": "252562329687",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-only",
"sent": false,
"after": [
"hubspot.erase_contact"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-only"
},
"attempts": 1,
"ref": "17S3WAWTLR.907BSS",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:02.942Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:02.943Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "cf9153f4d147",
"decisions": {
"hubspot": "erase",
"stripe": "none",
"workos": "none"
}
},
"events": [
{
"at": "2026-10-19T14:53:01.157Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:01.530Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:01.594Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:01.757Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:02.942Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:02.943Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:01.157Z",
"updatedAt": "2026-10-19T14:53:02.943Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-crm-only",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_only"
}
}Server returned
HTTP 200
{
"runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_only"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 252562329687",
"durationMs": 352
},
{
"name": "billing-records",
"status": "ok",
"summary": "no Stripe customer",
"durationMs": 345
},
{
"name": "identity-records",
"status": "ok",
"summary": "no directory account",
"durationMs": 370
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=none, workos=none; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-only",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "48742844-c3de-400c-b415-91d0862a2350",
"appliedAt": "2026-10-19T14:53:01.756Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-only",
"contact": "252562329687",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-only",
"sent": false,
"after": [
"hubspot.erase_contact"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-only"
},
"attempts": 1,
"ref": "17S3WAWTLR.907BSS",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:02.942Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:02.943Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "cf9153f4d147",
"decisions": {
"hubspot": "erase",
"stripe": "none",
"workos": "none"
}
},
"events": [
{
"at": "2026-10-19T14:53:01.157Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:01.530Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:01.594Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:01.757Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:02.942Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:02.943Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:05.315Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:01.157Z",
"updatedAt": "2026-10-19T14:53:05.315Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "479",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-crm-only",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_only"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_only"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 252562329687",
"durationMs": 352
},
{
"name": "billing-records",
"status": "ok",
"summary": "no Stripe customer",
"durationMs": 345
},
{
"name": "identity-records",
"status": "ok",
"summary": "no directory account",
"durationMs": 370
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=none, workos=none; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-only",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "48742844-c3de-400c-b415-91d0862a2350",
"appliedAt": "2026-10-19T14:53:01.756Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-only",
"contact": "252562329687",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-only",
"sent": false,
"after": [
"hubspot.erase_contact"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-only"
},
"attempts": 1,
"ref": "17S3WAWTLR.907BSS",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:02.942Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:02.943Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "cf9153f4d147",
"decisions": {
"hubspot": "erase",
"stripe": "none",
"workos": "none"
}
},
"events": [
{
"at": "2026-10-19T14:53:01.157Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:01.530Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:01.594Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:01.757Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:02.942Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:02.943Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:05.315Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:01.157Z",
"updatedAt": "2026-10-19T14:53:05.315Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
crm_onlyApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
A subject found only in the CRM gets only the CRM erasure
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (5)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "252562329687",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "229",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-crm-only: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-crm-only, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref cf9153f4d147. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-crm-only: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-crm-only, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref cf9153f4d147. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "48742844-c3de-400c-b415-91d0862a2350"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "463",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-crm-only: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-crm-only, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref cf9153f4d147. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-crm-only (GDPR, due 2026-11-14, 25d left) subject cf9153f4d147: hubspot erase, stripe none, workos none.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_aba6ba6b45064c08bf9c446a5c",
"client_msg_id": "cli_e86092b96fc64ab5a835e39d44",
"name": "item-0b6b09",
"old_name": "Sample Old",
"parent_user_id": "par_d575b23e342a429aa2c55e32d1",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17S3WAWTLR.907BSS"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "192",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-crm-only (GDPR, due 2026-11-14, 25d left) subject cf9153f4d147: hubspot erase, stripe none, workos none.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
A subject found nowhere gets the response drafted with no approval needed
nothing_heldWhat we probed
A subject found nowhere gets the response drafted with no approval needed
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A subject found nowhere gets the response drafted with no approval needed
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-nothing-held",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "nothing_held"
}
}Server returned
HTTP 200
{
"runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "nothing_held"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "no HubSpot contact",
"durationMs": 226
},
{
"name": "billing-records",
"status": "ok",
"summary": "no Stripe customer",
"durationMs": 111
},
{
"name": "identity-records",
"status": "ok",
"summary": "no directory account",
"durationMs": 235
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=none, stripe=none, workos=none; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-nothing-held",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "516b3ef6-3d10-4bc8-8a5e-68e423790837",
"appliedAt": "2026-10-19T14:53:07.195Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-nothing-held",
"sent": false,
"after": []
},
"attempts": 1,
"ref": "r7960242669334351",
"appliedAt": "2026-10-19T14:53:07.314Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-nothing-held"
},
"attempts": 1,
"ref": "17RPYU3B6Q.M1I79V",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:07.437Z",
"reconciled": null
}
],
"counts": {
"applied": 3,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "bb60b466d1ba",
"decisions": {
"hubspot": "none",
"stripe": "none",
"workos": "none"
}
},
"events": [
{
"at": "2026-10-19T14:53:05.984Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:06.223Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:06.227Z",
"msg": "planned 3 action(s): 0 need approval"
},
{
"at": "2026-10-19T14:53:07.195Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:07.315Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:53:07.437Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:07.438Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-19T14:53:05.984Z",
"updatedAt": "2026-10-19T14:53:07.438Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "495",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-nothing-held",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "nothing_held"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "nothing_held"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "no HubSpot contact",
"durationMs": 226
},
{
"name": "billing-records",
"status": "ok",
"summary": "no Stripe customer",
"durationMs": 111
},
{
"name": "identity-records",
"status": "ok",
"summary": "no directory account",
"durationMs": 235
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=none, stripe=none, workos=none; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-nothing-held",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "516b3ef6-3d10-4bc8-8a5e-68e423790837",
"appliedAt": "2026-10-19T14:53:07.195Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-nothing-held",
"sent": false,
"after": []
},
"attempts": 1,
"ref": "r7960242669334351",
"appliedAt": "2026-10-19T14:53:07.314Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-nothing-held"
},
"attempts": 1,
"ref": "17RPYU3B6Q.M1I79V",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:07.437Z",
"reconciled": null
}
],
"counts": {
"applied": 3,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "bb60b466d1ba",
"decisions": {
"hubspot": "none",
"stripe": "none",
"workos": "none"
}
},
"events": [
{
"at": "2026-10-19T14:53:05.984Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:06.223Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:06.227Z",
"msg": "planned 3 action(s): 0 need approval"
},
{
"at": "2026-10-19T14:53:07.195Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:07.315Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:53:07.437Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:07.438Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-19T14:53:05.984Z",
"updatedAt": "2026-10-19T14:53:07.438Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-nothing-held",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "nothing_held"
}
}Server returned
HTTP 200
{
"runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "nothing_held"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "no HubSpot contact",
"durationMs": 226
},
{
"name": "billing-records",
"status": "ok",
"summary": "no Stripe customer",
"durationMs": 111
},
{
"name": "identity-records",
"status": "ok",
"summary": "no directory account",
"durationMs": 235
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=none, stripe=none, workos=none; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-nothing-held",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "516b3ef6-3d10-4bc8-8a5e-68e423790837",
"appliedAt": "2026-10-19T14:53:07.195Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-nothing-held",
"sent": false,
"after": []
},
"attempts": 1,
"ref": "r7960242669334351",
"appliedAt": "2026-10-19T14:53:07.314Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-nothing-held"
},
"attempts": 1,
"ref": "17RPYU3B6Q.M1I79V",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:07.437Z",
"reconciled": null
}
],
"counts": {
"applied": 3,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "bb60b466d1ba",
"decisions": {
"hubspot": "none",
"stripe": "none",
"workos": "none"
}
},
"events": [
{
"at": "2026-10-19T14:53:05.984Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:06.223Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:06.227Z",
"msg": "planned 3 action(s): 0 need approval"
},
{
"at": "2026-10-19T14:53:07.195Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:07.315Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:53:07.437Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:07.438Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:53:07.881Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:05.984Z",
"updatedAt": "2026-10-19T14:53:07.881Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "495",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-nothing-held",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "nothing_held"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "nothing_held"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "no HubSpot contact",
"durationMs": 226
},
{
"name": "billing-records",
"status": "ok",
"summary": "no Stripe customer",
"durationMs": 111
},
{
"name": "identity-records",
"status": "ok",
"summary": "no directory account",
"durationMs": 235
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=none, stripe=none, workos=none; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-nothing-held",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "516b3ef6-3d10-4bc8-8a5e-68e423790837",
"appliedAt": "2026-10-19T14:53:07.195Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-nothing-held",
"sent": false,
"after": []
},
"attempts": 1,
"ref": "r7960242669334351",
"appliedAt": "2026-10-19T14:53:07.314Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-nothing-held"
},
"attempts": 1,
"ref": "17RPYU3B6Q.M1I79V",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:07.437Z",
"reconciled": null
}
],
"counts": {
"applied": 3,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "bb60b466d1ba",
"decisions": {
"hubspot": "none",
"stripe": "none",
"workos": "none"
}
},
"events": [
{
"at": "2026-10-19T14:53:05.984Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:06.223Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:06.227Z",
"msg": "planned 3 action(s): 0 need approval"
},
{
"at": "2026-10-19T14:53:07.195Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:07.315Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:53:07.437Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:07.438Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:53:07.881Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:05.984Z",
"updatedAt": "2026-10-19T14:53:07.881Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
nothing_heldApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
A subject found nowhere gets the response drafted with no approval needed
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (6)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 0,
"results": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "233",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-nothing-held: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-nothing-held, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref bb60b466d1ba. Verification: email_link by privacy-portal.\n- CRM (HubSpot): none (no contact)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-nothing-held: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-nothing-held, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref bb60b466d1ba. Verification: email_link by privacy-portal.\n- CRM (HubSpot): none (no contact)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "516b3ef6-3d10-4bc8-8a5e-68e423790837"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "435",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-nothing-held: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-nothing-held, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref bb60b466d1ba. Verification: email_link by privacy-portal.\n- CRM (HubSpot): none (no contact)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
gmail · POST /gmail/v1/users/me/drafts · HTTP 200
We sent
POST /gmail/v1/users/me/drafts
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3Itbm90aGluZy1oZWxkQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLW5vdGhpbmctaGVsZCBpcyBjb21wbGV0ZQ0KTWVzc2FnZS1JRDogPDYwMjQwNDUyNTA1NjA5OTQuZHNyLWRvbmVAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCldlIGhhdmUgY29tcGxldGVkIHlvdXIgcmVxdWVzdCBEU1Itbm90aGluZy1oZWxkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogbm90aGluZyBoZWxkCi0gYmlsbGluZyAoU3RyaXBlKTogbm90aGluZyBoZWxkCi0gbG9naW4gYWNjb3VudDogbm90aGluZyBoZWxkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
}Server returned
HTTP 200
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3Itbm90aGluZy1oZWxkQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLW5vdGhpbmctaGVsZCBpcyBjb21wbGV0ZQ0KTWVzc2FnZS1JRDogPDYwMjQwNDUyNTA1NjA5OTQuZHNyLWRvbmVAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCldlIGhhdmUgY29tcGxldGVkIHlvdXIgcmVxdWVzdCBEU1Itbm90aGluZy1oZWxkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogbm90aGluZyBoZWxkCi0gYmlsbGluZyAoU3RyaXBlKTogbm90aGluZyBoZWxkCi0gbG9naW4gYWNjb3VudDogbm90aGluZyBoZWxkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ",
"payload": {
"mimeType": "text/plain",
"headers": [
{
"name": "From",
"value": "me"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Your data deletion request DSR-nothing-held is complete"
},
{
"name": "Message-ID",
"value": "<[email protected]>"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/plain; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "8bit"
}
],
"body": {
"size": 230,
"data": "SGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLW5vdGhpbmctaGVsZCB0byBkZWxldGUgeW91ciBwZXJzb25hbCBkYXRhOgotIENSTSAoSHViU3BvdCk6IG5vdGhpbmcgaGVsZAotIGJpbGxpbmcgKFN0cmlwZSk6IG5vdGhpbmcgaGVsZAotIGxvZ2luIGFjY291bnQ6IG5vdGhpbmcgaGVsZAoKTm90aGluZyBlbHNlIGlzIGhlbGQgYWJvdXQgeW91LgoKQUNNRSBQcml2YWN5IFRlYW0"
}
},
"sizeEstimate": 496,
"labelIds": [
"DRAFT"
],
"id": "f103bdeba2c5440b"
},
"user_id": "me",
"id": "r7960242669334351"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts
{
"host": "fetchsandbox.com",
"content-length": "684",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3Itbm90aGluZy1oZWxkQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLW5vdGhpbmctaGVsZCBpcyBjb21wbGV0ZQ0KTWVzc2FnZS1JRDogPDYwMjQwNDUyNTA1NjA5OTQuZHNyLWRvbmVAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCldlIGhhdmUgY29tcGxldGVkIHlvdXIgcmVxdWVzdCBEU1Itbm90aGluZy1oZWxkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogbm90aGluZyBoZWxkCi0gYmlsbGluZyAoU3RyaXBlKTogbm90aGluZyBoZWxkCi0gbG9naW4gYWNjb3VudDogbm90aGluZyBoZWxkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-nothing-held (GDPR, due 2026-11-14, 25d left) subject bb60b466d1ba: hubspot none, stripe none, workos none.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_1287bb8a264e4cf6a7f7cb6934",
"client_msg_id": "cli_33360a95f9c34e1aa48fa96ddc",
"name": "item-f3d46b",
"old_name": "Sample Old",
"parent_user_id": "par_423b9ac2b751471183734f69d3",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17RPYU3B6Q.M1I79V"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "195",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-nothing-held (GDPR, due 2026-11-14, 25d left) subject bb60b466d1ba: hubspot none, stripe none, workos none.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
A re-delivered request records once
duplicate_startWhat we probed
A re-delivered request records once
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocations
Expected vs actual
- Expected
- A re-delivered request records once
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-duplicate-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
}
}Server returned
HTTP 200
{
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 657172589139",
"durationMs": 161
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 1299
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"durationMs": 1298
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-duplicate-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "90d82880-cb30-4c1a-af39-484ac8ded766",
"appliedAt": "2026-10-19T14:53:09.992Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"contact": "657172589139",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"customer": "cus_GCFEKXX986JD4A7Y",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-duplicate-start"
},
"attempts": 1,
"ref": "17PFUO6NQP.6P3AZK",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:10.132Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:10.133Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f832d197fc40",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:08.542Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:09.843Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:09.846Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:09.992Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:10.132Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:10.133Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:08.542Z",
"updatedAt": "2026-10-19T14:53:10.133Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "507",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-duplicate-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-duplicate-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
}
}Server returned
HTTP 200
{
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 657172589139",
"durationMs": 161
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 1299
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"durationMs": 1298
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-duplicate-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "90d82880-cb30-4c1a-af39-484ac8ded766",
"appliedAt": "2026-10-19T14:53:09.992Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"contact": "657172589139",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"customer": "cus_GCFEKXX986JD4A7Y",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-duplicate-start"
},
"attempts": 1,
"ref": "17PFUO6NQP.6P3AZK",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:10.132Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:10.133Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f832d197fc40",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:08.542Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:09.843Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:09.846Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:09.992Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:10.132Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:10.133Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:10.403Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:08.542Z",
"updatedAt": "2026-10-19T14:53:10.403Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "507",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-duplicate-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 657172589139",
"durationMs": 161
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 1299
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"durationMs": 1298
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-duplicate-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "90d82880-cb30-4c1a-af39-484ac8ded766",
"appliedAt": "2026-10-19T14:53:09.992Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"contact": "657172589139",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"customer": "cus_GCFEKXX986JD4A7Y",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-duplicate-start"
},
"attempts": 1,
"ref": "17PFUO6NQP.6P3AZK",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:10.132Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:10.133Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f832d197fc40",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:08.542Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:09.843Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:09.846Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:09.992Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:10.132Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:10.133Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:10.403Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:08.542Z",
"updatedAt": "2026-10-19T14:53:10.403Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-duplicate-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
}
}Server returned
HTTP 200
{
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
},
"duplicateStarts": 2,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 657172589139",
"durationMs": 161
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 1299
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"durationMs": 1298
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-duplicate-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "90d82880-cb30-4c1a-af39-484ac8ded766",
"appliedAt": "2026-10-19T14:53:09.992Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"contact": "657172589139",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"customer": "cus_GCFEKXX986JD4A7Y",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-duplicate-start"
},
"attempts": 1,
"ref": "17PFUO6NQP.6P3AZK",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:10.132Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:10.133Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f832d197fc40",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:08.542Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:09.843Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:09.846Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:09.992Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:10.132Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:10.133Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:10.403Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:11.357Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:08.542Z",
"updatedAt": "2026-10-19T14:53:11.357Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "507",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-duplicate-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-duplicate-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
}
}Server returned
HTTP 200
{
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
},
"duplicateStarts": 3,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 657172589139",
"durationMs": 161
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 1299
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"durationMs": 1298
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-duplicate-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "90d82880-cb30-4c1a-af39-484ac8ded766",
"appliedAt": "2026-10-19T14:53:09.992Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"contact": "657172589139",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"customer": "cus_GCFEKXX986JD4A7Y",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-duplicate-start"
},
"attempts": 1,
"ref": "17PFUO6NQP.6P3AZK",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:10.132Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:10.133Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f832d197fc40",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:08.542Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:09.843Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:09.846Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:09.992Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:10.132Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:10.133Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:10.403Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:11.357Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:11.595Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:08.542Z",
"updatedAt": "2026-10-19T14:53:11.595Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "507",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-duplicate-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
07GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "duplicate_start"
},
"duplicateStarts": 3,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 657172589139",
"durationMs": 161
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 1299
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"durationMs": 1298
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-duplicate-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "90d82880-cb30-4c1a-af39-484ac8ded766",
"appliedAt": "2026-10-19T14:53:09.992Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"contact": "657172589139",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"customer": "cus_GCFEKXX986JD4A7Y",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-duplicate-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-duplicate-start"
},
"attempts": 1,
"ref": "17PFUO6NQP.6P3AZK",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:10.132Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:10.133Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f832d197fc40",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:08.542Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:09.843Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:09.846Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:09.992Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:10.132Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:10.133Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:10.403Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:11.357Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:11.595Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:08.542Z",
"updatedAt": "2026-10-19T14:53:11.595Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
duplicate_startApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
A re-delivered request records once
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (8)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_GCFEKXX986JD4A7Y",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 71,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "657172589139",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "236",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/1ed0e83f",
"email_verified": true,
"external_id": "ext_63d730c965da4d5589eae6f34b",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-duplicate-start: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-duplicate-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f832d197fc40. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-duplicate-start: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-duplicate-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f832d197fc40. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "90d82880-cb30-4c1a-af39-484ac8ded766"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "532",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-duplicate-start: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-duplicate-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f832d197fc40. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-duplicate-start (GDPR, due 2026-11-14, 25d left) subject f832d197fc40: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_0bf342d254994a8e8c391e4198",
"client_msg_id": "cli_f2782569757b4a7abc5ce59d70",
"name": "item-46ef51",
"old_name": "Sample Old",
"parent_user_id": "par_f1a618b4aefb40c298c568c37d",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17PFUO6NQP.6P3AZK"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "205",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-duplicate-start (GDPR, due 2026-11-14, 25d left) subject f832d197fc40: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Four simultaneous deliveries of one request record once
concurrent_startWhat we probed
Four simultaneous deliveries of one request record once
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocations· 4 concurrent calls, not sequential retries.
Expected vs actual
- Expected
- Four simultaneous deliveries of one request record once
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}Server returned
HTTP 200
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:13.789Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "511",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}Server returned
HTTP 200
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 2,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.189Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:14.189Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "511",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}Server returned
HTTP 200
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 4,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.189Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.369Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.519Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:14.519Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "511",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}Server returned
HTTP 200
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:14.092Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "511",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}Server returned
HTTP 200
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 3,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.189Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.369Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:14.369Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "511",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
07GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 4,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.189Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.369Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.519Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:14.519Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
08POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}Server returned
HTTP 200
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 5,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.189Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.369Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.519Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.181Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:15.181Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "511",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
09POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}Server returned
HTTP 200
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 8,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.189Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.369Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.519Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.181Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.519Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.619Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.714Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:15.714Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "511",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
10POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}Server returned
HTTP 200
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 7,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.189Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.369Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.519Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.181Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.519Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.619Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:15.619Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "511",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
11POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}Server returned
HTTP 200
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 9,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.189Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.369Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.519Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.181Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.519Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.619Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.714Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.834Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:15.834Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "511",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
12POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}Server returned
HTTP 200
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 6,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.189Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.369Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.519Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.181Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.519Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:15.519Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "511",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-concurrent-start",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
13GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "concurrent_start"
},
"duplicateStarts": 9,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 501251998115",
"durationMs": 149
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 291
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-concurrent-start",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a",
"appliedAt": "2026-10-19T14:53:12.794Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"contact": "501251998115",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"customer": "cus_B2NQADIWYA1THZD2",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"user": "85235ff0-5fc7-4391-ac38-37809985177d",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-concurrent-start",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-concurrent-start"
},
"attempts": 1,
"ref": "174WY8LMYE.3PQXDJ",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:13.788Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:13.789Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "f5720788f3a6",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:12.371Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:12.671Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:12.674Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:12.794Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:13.788Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:13.789Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:14.092Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.189Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.369Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:14.519Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.181Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.519Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.619Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.714Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:53:15.834Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:12.371Z",
"updatedAt": "2026-10-19T14:53:15.834Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
concurrent_startApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
Four simultaneous deliveries of one request record once
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (8)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "501251998115",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "237",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "85235ff0-5fc7-4391-ac38-37809985177d",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/f9a2fe47",
"email_verified": true,
"external_id": "ext_ca9af3438ce74b779f26022b26",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_B2NQADIWYA1THZD2",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 34,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-concurrent-start: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-concurrent-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f5720788f3a6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-concurrent-start: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-concurrent-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f5720788f3a6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "534",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-concurrent-start: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-concurrent-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f5720788f3a6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-concurrent-start (GDPR, due 2026-11-14, 25d left) subject f5720788f3a6: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_ef587a1ebf8041fc9597dfbaa6",
"client_msg_id": "cli_5e467d445d6c4e47a3a1e405af",
"name": "item-2465f8",
"old_name": "Sample Old",
"parent_user_id": "par_8d63a54e6a224692a88dcb6232",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "174WY8LMYE.3PQXDJ"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "206",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-concurrent-start (GDPR, due 2026-11-14, 25d left) subject f5720788f3a6: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
A request without a valid request id is rejected before any agent runs
invalid_input_rejectedWhat we probed
A request without a valid request id is rejected before any agent runs
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A request without a valid request id is rejected before any agent runs
- Actual
- expected exactly 0, found 0; stable under 2 repeats (0)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations400
We sent
POST /invocations
{
"action": "start",
"runId": "invalid-input-rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "x",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "invalid_input_rejected"
}
}Server returned
HTTP 400
{
"error": "invalid input",
"issues": [
"requestId: request id like DSR-2026-0042"
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "510",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "79"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "invalid-input-rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "x",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "invalid_input_rejected"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations400
We sent
POST /invocations
{
"action": "start",
"runId": "invalid-input-rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "x",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "invalid_input_rejected"
}
}Server returned
HTTP 400
{
"error": "invalid input",
"issues": [
"requestId: request id like DSR-2026-0042"
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "510",
"content-type": "application/json"
}{
"content-type": "application/json",
"content-length": "79"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "invalid-input-rejected-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "x",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "invalid_input_rejected"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
invalid_input_rejectedApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
A request without a valid request id is rejected before any agent runs
expected exactly 0, found 0; stable under 2 repeats (0)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
With the directory unreachable the request stays open: no response is drafted, found records still park for erasure
workos_auth_failureWhat we probed
With the directory unreachable the request stays open: no response is drafted, found records still park for erasure
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
Declared workos fault: auth_failure.
POST /invocations
Expected vs actual
- Expected
- With the directory unreachable the request stays open: no response is drafted, found records still park for erasure
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-workos-auth-failure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "workos_auth_failure"
}
}Server returned
HTTP 200
{
"runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "workos_auth_failure"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 168586431606",
"durationMs": 213
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_JJZBH85M2MVB8MQV: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 301
},
{
"name": "identity-records",
"status": "failed",
"error": "workos 401 unauthorized: GET /user_management/users → 401 unauthorized",
"errorCode": "workos:unauthorized",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=unknown; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-workos-auth-failure",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "fe2aec3d-7ace-4467-a095-d8973631c195",
"appliedAt": "2026-10-19T14:53:18.104Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-workos-auth-failure",
"contact": "168586431606",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-workos-auth-failure",
"customer": "cus_JJZBH85M2MVB8MQV",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-workos-auth-failure"
},
"attempts": 1,
"ref": "1754TTLY8M.4X7CUV",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:18.220Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:18.222Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "2661ba7a7984",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "unknown"
}
},
"events": [
{
"at": "2026-10-19T14:53:17.670Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:17.974Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=failed"
},
{
"at": "2026-10-19T14:53:17.978Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:18.104Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:18.220Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:18.222Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:17.670Z",
"updatedAt": "2026-10-19T14:53:18.222Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "523",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-workos-auth-failure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "workos_auth_failure"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03workos · GET /user_management/users401
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 401
{
"errors": [
{
"status": "401",
"code": "unauthorized",
"detail": "Invalid API key or expired credentials"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET '<WORKOS_TWIN_BASE_URL>/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "workos_auth_failure"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 168586431606",
"durationMs": 213
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_JJZBH85M2MVB8MQV: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 301
},
{
"name": "identity-records",
"status": "failed",
"error": "workos 401 unauthorized: GET /user_management/users → 401 unauthorized",
"errorCode": "workos:unauthorized",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=unknown; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-workos-auth-failure",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "fe2aec3d-7ace-4467-a095-d8973631c195",
"appliedAt": "2026-10-19T14:53:18.104Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-workos-auth-failure",
"contact": "168586431606",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-workos-auth-failure",
"customer": "cus_JJZBH85M2MVB8MQV",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-workos-auth-failure"
},
"attempts": 1,
"ref": "1754TTLY8M.4X7CUV",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:18.220Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:18.222Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "2661ba7a7984",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "unknown"
}
},
"events": [
{
"at": "2026-10-19T14:53:17.670Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:17.974Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=failed"
},
{
"at": "2026-10-19T14:53:17.978Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:18.104Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:18.220Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:18.222Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:17.670Z",
"updatedAt": "2026-10-19T14:53:18.222Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-workos-auth-failure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "workos_auth_failure"
}
}Server returned
HTTP 200
{
"runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "workos_auth_failure"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 168586431606",
"durationMs": 213
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_JJZBH85M2MVB8MQV: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 301
},
{
"name": "identity-records",
"status": "failed",
"error": "workos 401 unauthorized: GET /user_management/users → 401 unauthorized",
"errorCode": "workos:unauthorized",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=unknown; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-workos-auth-failure",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "fe2aec3d-7ace-4467-a095-d8973631c195",
"appliedAt": "2026-10-19T14:53:18.104Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-workos-auth-failure",
"contact": "168586431606",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-workos-auth-failure",
"customer": "cus_JJZBH85M2MVB8MQV",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-workos-auth-failure"
},
"attempts": 1,
"ref": "1754TTLY8M.4X7CUV",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:18.220Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:18.222Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "2661ba7a7984",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "unknown"
}
},
"events": [
{
"at": "2026-10-19T14:53:17.670Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:17.974Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=failed"
},
{
"at": "2026-10-19T14:53:17.978Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:18.104Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:18.220Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:18.222Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:18.748Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:17.670Z",
"updatedAt": "2026-10-19T14:53:18.748Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "523",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-workos-auth-failure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "workos_auth_failure"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "workos_auth_failure"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 168586431606",
"durationMs": 213
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_JJZBH85M2MVB8MQV: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 301
},
{
"name": "identity-records",
"status": "failed",
"error": "workos 401 unauthorized: GET /user_management/users → 401 unauthorized",
"errorCode": "workos:unauthorized",
"durationMs": 249
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=unknown; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-workos-auth-failure",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "fe2aec3d-7ace-4467-a095-d8973631c195",
"appliedAt": "2026-10-19T14:53:18.104Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-workos-auth-failure",
"contact": "168586431606",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-workos-auth-failure",
"customer": "cus_JJZBH85M2MVB8MQV",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-workos-auth-failure"
},
"attempts": 1,
"ref": "1754TTLY8M.4X7CUV",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:18.220Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:18.222Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "2661ba7a7984",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "unknown"
}
},
"events": [
{
"at": "2026-10-19T14:53:17.670Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:17.974Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=failed"
},
{
"at": "2026-10-19T14:53:17.978Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:18.104Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:18.220Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:18.222Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:18.748Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:17.670Z",
"updatedAt": "2026-10-19T14:53:18.748Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
workos_auth_failureApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
With the directory unreachable the request stays open: no response is drafted, found records still park for erasure
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (7)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_JJZBH85M2MVB8MQV",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 13,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "168586431606",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "240",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 401
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 401
{
"errors": [
{
"status": "401",
"code": "unauthorized",
"detail": "Invalid API key or expired credentials"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-workos-auth-failure: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-workos-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2661ba7a7984. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: unknown (directory could not be searched)\nDiscovery incomplete: the request stays open until every system is checked.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-workos-auth-failure: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-workos-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2661ba7a7984. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: unknown (directory could not be searched)\nDiscovery incomplete: the request stays open until every system is checked.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "fe2aec3d-7ace-4467-a095-d8973631c195"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "608",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-workos-auth-failure: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-workos-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2661ba7a7984. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: unknown (directory could not be searched)\nDiscovery incomplete: the request stays open until every system is checked.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-workos-auth-failure (GDPR, due 2026-11-14, 25d left) subject 2661ba7a7984: hubspot erase, stripe anonymize, workos unknown; discovery incomplete.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_764e1a36b2344e23bbe5379c57",
"client_msg_id": "cli_dc655ebf244f4516b2a1ec0802",
"name": "item-aeed61",
"old_name": "Sample Old",
"parent_user_id": "par_cda44f537c5d4c6496bcef4a30",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "1754TTLY8M.4X7CUV"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "233",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-workos-auth-failure (GDPR, due 2026-11-14, 25d left) subject 2661ba7a7984: hubspot erase, stripe anonymize, workos unknown; discovery incomplete.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
With the CRM rate limited the request stays open and the other systems still park
hubspot_rate_limitedWhat we probed
With the CRM rate limited the request stays open and the other systems still park
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
Declared hubspot fault: rate_limited.
POST /invocations
Expected vs actual
- Expected
- With the CRM rate limited the request stays open and the other systems still park
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-hubspot-rate-limited",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hubspot_rate_limited"
}
}Server returned
HTTP 200
{
"runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hubspot_rate_limited"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "failed",
"error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS",
"errorCode": "hubspot:RATE_LIMITS",
"durationMs": 4377
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_UR8ORYFF8AA7OCDL: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 253
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user fd3565ac-450d-4edc-b602-6848652a0234",
"durationMs": 271
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=unknown, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "0a63e58f-e5e6-4f07-bc8a-1a0c1880fdac",
"appliedAt": "2026-10-19T14:53:24.289Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"customer": "cus_UR8ORYFF8AA7OCDL",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"user": "fd3565ac-450d-4edc-b602-6848652a0234",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-hubspot-rate-limited"
},
"attempts": 1,
"ref": "17Z0KHHGX2.02MJZF",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:24.386Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:24.388Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "58a4dffc24aa",
"decisions": {
"hubspot": "unknown",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:19.717Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:24.095Z",
"msg": "agents: crm-records=failed, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:24.098Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:24.289Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:24.386Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:24.388Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:19.717Z",
"updatedAt": "2026-10-19T14:53:24.388Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "527",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-hubspot-rate-limited",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hubspot_rate_limited"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03hubspot · POST /crm/v3/objects/contacts/search429
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 429
{
"errors": [
{
"status": "429",
"code": "RATE_LIMITS",
"detail": "You have reached your secondly limit."
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"host": "fetchsandbox.com",
"content-length": "241",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "2"
}Rebuilt curl
curl --request POST '<HUBSPOT_TWIN_BASE_URL>/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04hubspot · POST /crm/v3/objects/contacts/search429
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 429
{
"errors": [
{
"status": "429",
"code": "RATE_LIMITS",
"detail": "You have reached your secondly limit."
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"host": "fetchsandbox.com",
"content-length": "241",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "2"
}Rebuilt curl
curl --request POST '<HUBSPOT_TWIN_BASE_URL>/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05hubspot · POST /crm/v3/objects/contacts/search429
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 429
{
"errors": [
{
"status": "429",
"code": "RATE_LIMITS",
"detail": "You have reached your secondly limit."
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"host": "fetchsandbox.com",
"content-length": "241",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "2"
}Rebuilt curl
curl --request POST '<HUBSPOT_TWIN_BASE_URL>/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hubspot_rate_limited"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "failed",
"error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS",
"errorCode": "hubspot:RATE_LIMITS",
"durationMs": 4377
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_UR8ORYFF8AA7OCDL: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 253
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user fd3565ac-450d-4edc-b602-6848652a0234",
"durationMs": 271
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=unknown, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "0a63e58f-e5e6-4f07-bc8a-1a0c1880fdac",
"appliedAt": "2026-10-19T14:53:24.289Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"customer": "cus_UR8ORYFF8AA7OCDL",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"user": "fd3565ac-450d-4edc-b602-6848652a0234",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-hubspot-rate-limited"
},
"attempts": 1,
"ref": "17Z0KHHGX2.02MJZF",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:24.386Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:24.388Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "58a4dffc24aa",
"decisions": {
"hubspot": "unknown",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:19.717Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:24.095Z",
"msg": "agents: crm-records=failed, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:24.098Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:24.289Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:24.386Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:24.388Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:19.717Z",
"updatedAt": "2026-10-19T14:53:24.388Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
07POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-hubspot-rate-limited",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hubspot_rate_limited"
}
}Server returned
HTTP 200
{
"runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hubspot_rate_limited"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "failed",
"error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS",
"errorCode": "hubspot:RATE_LIMITS",
"durationMs": 4377
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_UR8ORYFF8AA7OCDL: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 253
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user fd3565ac-450d-4edc-b602-6848652a0234",
"durationMs": 271
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=unknown, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "0a63e58f-e5e6-4f07-bc8a-1a0c1880fdac",
"appliedAt": "2026-10-19T14:53:24.289Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"customer": "cus_UR8ORYFF8AA7OCDL",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"user": "fd3565ac-450d-4edc-b602-6848652a0234",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-hubspot-rate-limited"
},
"attempts": 1,
"ref": "17Z0KHHGX2.02MJZF",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:24.386Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:24.388Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "58a4dffc24aa",
"decisions": {
"hubspot": "unknown",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:19.717Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:24.095Z",
"msg": "agents: crm-records=failed, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:24.098Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:24.289Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:24.386Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:24.388Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:24.939Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:19.717Z",
"updatedAt": "2026-10-19T14:53:24.939Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "527",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-hubspot-rate-limited",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hubspot_rate_limited"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
08GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hubspot_rate_limited"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "failed",
"error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS",
"errorCode": "hubspot:RATE_LIMITS",
"durationMs": 4377
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_UR8ORYFF8AA7OCDL: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 253
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user fd3565ac-450d-4edc-b602-6848652a0234",
"durationMs": 271
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=unknown, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "0a63e58f-e5e6-4f07-bc8a-1a0c1880fdac",
"appliedAt": "2026-10-19T14:53:24.289Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"customer": "cus_UR8ORYFF8AA7OCDL",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hubspot-rate-limited",
"user": "fd3565ac-450d-4edc-b602-6848652a0234",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-hubspot-rate-limited"
},
"attempts": 1,
"ref": "17Z0KHHGX2.02MJZF",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:24.386Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:24.388Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "58a4dffc24aa",
"decisions": {
"hubspot": "unknown",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:19.717Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:24.095Z",
"msg": "agents: crm-records=failed, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:24.098Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:24.289Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:24.386Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:24.388Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:24.939Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:19.717Z",
"updatedAt": "2026-10-19T14:53:24.939Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
hubspot_rate_limitedApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
With the CRM rate limited the request stays open and the other systems still park
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (10)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_UR8ORYFF8AA7OCDL",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 96,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "fd3565ac-450d-4edc-b602-6848652a0234",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/7e2093b3",
"email_verified": true,
"external_id": "ext_50a3dafaa7074ca0a2d3c77e10",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 429
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 429
{
"errors": [
{
"status": "429",
"code": "RATE_LIMITS",
"detail": "You have reached your secondly limit."
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "241",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "2"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 429
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 429
{
"errors": [
{
"status": "429",
"code": "RATE_LIMITS",
"detail": "You have reached your secondly limit."
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "241",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "2"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 429
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 429
{
"errors": [
{
"status": "429",
"code": "RATE_LIMITS",
"detail": "You have reached your secondly limit."
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "241",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "2"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-hubspot-rate-limited: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-hubspot-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 58a4dffc24aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): unknown (CRM could not be searched)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-hubspot-rate-limited: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-hubspot-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 58a4dffc24aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): unknown (CRM could not be searched)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "0a63e58f-e5e6-4f07-bc8a-1a0c1880fdac"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "572",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-hubspot-rate-limited: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-hubspot-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 58a4dffc24aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): unknown (CRM could not be searched)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-hubspot-rate-limited (GDPR, due 2026-11-14, 25d left) subject 58a4dffc24aa: hubspot unknown, stripe anonymize, workos erase; discovery incomplete.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_cc1353c689cf4b70ba2562ddb9",
"client_msg_id": "cli_0b7cbeb4f47549109c246a43b4",
"name": "item-f9d669",
"old_name": "Sample Old",
"parent_user_id": "par_c9350206579d4602885037e65c",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17Z0KHHGX2.02MJZF"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "234",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-hubspot-rate-limited (GDPR, due 2026-11-14, 25d left) subject 58a4dffc24aa: hubspot unknown, stripe anonymize, workos erase; discovery incomplete.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
With billing unreachable nothing billing-related is changed
stripe_auth_failureWhat we probed
With billing unreachable nothing billing-related is changed
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
Declared stripe fault: auth_failure.
POST /invocations
Expected vs actual
- Expected
- With billing unreachable nothing billing-related is changed
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-stripe-auth-failure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "stripe_auth_failure"
}
}Server returned
HTTP 200
{
"runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "stripe_auth_failure"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 036634258788",
"durationMs": 288
},
{
"name": "billing-records",
"status": "failed",
"error": "stripe 401 authentication_required: GET /v1/customers → 401 authentication_required",
"errorCode": "stripe:authentication_required",
"durationMs": 284
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 91c6e8ae-ddea-495b-8a9b-461582be7166",
"durationMs": 395
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=unknown, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "49746d6f-4319-47b8-b92f-ed95cefed5b1",
"appliedAt": "2026-10-19T14:53:26.152Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"contact": "036634258788",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"user": "91c6e8ae-ddea-495b-8a9b-461582be7166",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-stripe-auth-failure"
},
"attempts": 1,
"ref": "17YZOIG6UB.XSK03O",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:26.355Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:26.356Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9a911ce161aa",
"decisions": {
"hubspot": "erase",
"stripe": "unknown",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:25.618Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:26.015Z",
"msg": "agents: crm-records=ok, billing-records=failed, identity-records=ok"
},
{
"at": "2026-10-19T14:53:26.018Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:26.152Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:26.355Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:26.356Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:25.618Z",
"updatedAt": "2026-10-19T14:53:26.356Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "523",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-stripe-auth-failure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "stripe_auth_failure"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03stripe · GET /v1/customers401
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 401
{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"doc_url": "https://stripe.com/docs/error-codes/authentication-required",
"message": "Invalid API key provided. You did not provide a valid API key. Ensure your Authorization header contains a valid Bearer token."
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET '<STRIPE_TWIN_BASE_URL>/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "stripe_auth_failure"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 036634258788",
"durationMs": 288
},
{
"name": "billing-records",
"status": "failed",
"error": "stripe 401 authentication_required: GET /v1/customers → 401 authentication_required",
"errorCode": "stripe:authentication_required",
"durationMs": 284
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 91c6e8ae-ddea-495b-8a9b-461582be7166",
"durationMs": 395
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=unknown, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "49746d6f-4319-47b8-b92f-ed95cefed5b1",
"appliedAt": "2026-10-19T14:53:26.152Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"contact": "036634258788",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"user": "91c6e8ae-ddea-495b-8a9b-461582be7166",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-stripe-auth-failure"
},
"attempts": 1,
"ref": "17YZOIG6UB.XSK03O",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:26.355Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:26.356Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9a911ce161aa",
"decisions": {
"hubspot": "erase",
"stripe": "unknown",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:25.618Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:26.015Z",
"msg": "agents: crm-records=ok, billing-records=failed, identity-records=ok"
},
{
"at": "2026-10-19T14:53:26.018Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:26.152Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:26.355Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:26.356Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:25.618Z",
"updatedAt": "2026-10-19T14:53:26.356Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-stripe-auth-failure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "stripe_auth_failure"
}
}Server returned
HTTP 200
{
"runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "stripe_auth_failure"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 036634258788",
"durationMs": 288
},
{
"name": "billing-records",
"status": "failed",
"error": "stripe 401 authentication_required: GET /v1/customers → 401 authentication_required",
"errorCode": "stripe:authentication_required",
"durationMs": 284
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 91c6e8ae-ddea-495b-8a9b-461582be7166",
"durationMs": 395
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=unknown, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "49746d6f-4319-47b8-b92f-ed95cefed5b1",
"appliedAt": "2026-10-19T14:53:26.152Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"contact": "036634258788",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"user": "91c6e8ae-ddea-495b-8a9b-461582be7166",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-stripe-auth-failure"
},
"attempts": 1,
"ref": "17YZOIG6UB.XSK03O",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:26.355Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:26.356Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9a911ce161aa",
"decisions": {
"hubspot": "erase",
"stripe": "unknown",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:25.618Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:26.015Z",
"msg": "agents: crm-records=ok, billing-records=failed, identity-records=ok"
},
{
"at": "2026-10-19T14:53:26.018Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:26.152Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:26.355Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:26.356Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:26.815Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:25.618Z",
"updatedAt": "2026-10-19T14:53:26.815Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "523",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-stripe-auth-failure",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "stripe_auth_failure"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "stripe_auth_failure"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 036634258788",
"durationMs": 288
},
{
"name": "billing-records",
"status": "failed",
"error": "stripe 401 authentication_required: GET /v1/customers → 401 authentication_required",
"errorCode": "stripe:authentication_required",
"durationMs": 284
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 91c6e8ae-ddea-495b-8a9b-461582be7166",
"durationMs": 395
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=unknown, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "49746d6f-4319-47b8-b92f-ed95cefed5b1",
"appliedAt": "2026-10-19T14:53:26.152Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"contact": "036634258788",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-stripe-auth-failure",
"user": "91c6e8ae-ddea-495b-8a9b-461582be7166",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-stripe-auth-failure"
},
"attempts": 1,
"ref": "17YZOIG6UB.XSK03O",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:26.355Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 2,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:26.356Z"
},
"output": {
"verified": true,
"complete": false,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9a911ce161aa",
"decisions": {
"hubspot": "erase",
"stripe": "unknown",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:25.618Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:26.015Z",
"msg": "agents: crm-records=ok, billing-records=failed, identity-records=ok"
},
{
"at": "2026-10-19T14:53:26.018Z",
"msg": "planned 4 action(s): 2 need approval"
},
{
"at": "2026-10-19T14:53:26.152Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:26.355Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:26.356Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:26.815Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:25.618Z",
"updatedAt": "2026-10-19T14:53:26.815Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
stripe_auth_failureApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
With billing unreachable nothing billing-related is changed
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (6)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
stripe · GET /v1/customers · HTTP 401
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 401
{
"error": {
"type": "invalid_request_error",
"code": "authentication_required",
"doc_url": "https://stripe.com/docs/error-codes/authentication-required",
"message": "Invalid API key provided. You did not provide a valid API key. Ensure your Authorization header contains a valid Bearer token."
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "036634258788",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "240",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "91c6e8ae-ddea-495b-8a9b-461582be7166",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/19b17bda",
"email_verified": true,
"external_id": "ext_0b2f096432014433b09403d821",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-stripe-auth-failure: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-stripe-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9a911ce161aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): unknown (billing could not be searched)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-stripe-auth-failure: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-stripe-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9a911ce161aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): unknown (billing could not be searched)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "49746d6f-4319-47b8-b92f-ed95cefed5b1"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "558",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-stripe-auth-failure: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-stripe-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9a911ce161aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): unknown (billing could not be searched)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-stripe-auth-failure (GDPR, due 2026-11-14, 25d left) subject 9a911ce161aa: hubspot erase, stripe unknown, workos erase; discovery incomplete.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_f49a2fcda933416a82764b3621",
"client_msg_id": "cli_98659429113a4ba99a8fceb8f0",
"name": "item-d70a77",
"old_name": "Sample Old",
"parent_user_id": "par_1799e1dca2fa488e87f12977b5",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17YZOIG6UB.XSK03O"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "229",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-stripe-auth-failure (GDPR, due 2026-11-14, 25d left) subject 9a911ce161aa: hubspot erase, stripe unknown, workos erase; discovery incomplete.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Slack rate limiting fails the channel post only
slack_rate_limitedWhat we probed
Slack rate limiting fails the channel post only
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
Declared slack fault: rate_limited.
POST /invocations
Expected vs actual
- Expected
- Slack rate limiting fails the channel post only
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-slack-rate-limited",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "slack_rate_limited"
}
}Server returned
HTTP 200
{
"runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "slack_rate_limited"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 152653482639",
"durationMs": 111
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_4VWGLRUH188BHLBN: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 292
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 1ba6d5ec-6599-4899-acb2-af85471dfd38",
"durationMs": 207
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-slack-rate-limited",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "15a77af8-07a9-4375-87d5-85eebed716e6",
"appliedAt": "2026-10-19T14:53:27.954Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"contact": "152653482639",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"customer": "cus_4VWGLRUH188BHLBN",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"user": "1ba6d5ec-6599-4899-acb2-af85471dfd38",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "failed",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-slack-rate-limited"
},
"attempts": 1,
"error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
"errorCode": "slack:ratelimited",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 1,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:37.211Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9d772a8addf0",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:27.509Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:27.803Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:27.806Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:27.954Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:37.209Z",
"msg": "slack.post_dsr: failed (slack:ratelimited)"
},
{
"at": "2026-10-19T14:53:37.211Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:27.509Z",
"updatedAt": "2026-10-19T14:53:37.211Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "519",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-slack-rate-limited",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "slack_rate_limited"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03slack · POST /api/chat.postMessage429
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"host": "fetchsandbox.com",
"content-length": "208",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "30"
}Rebuilt curl
curl --request POST '<SLACK_TWIN_BASE_URL>/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04slack · POST /api/chat.postMessage429
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"host": "fetchsandbox.com",
"content-length": "208",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "30"
}Rebuilt curl
curl --request POST '<SLACK_TWIN_BASE_URL>/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05slack · POST /api/chat.postMessage429
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
{
"host": "fetchsandbox.com",
"content-length": "208",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "30"
}Rebuilt curl
curl --request POST '<SLACK_TWIN_BASE_URL>/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "slack_rate_limited"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 152653482639",
"durationMs": 111
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_4VWGLRUH188BHLBN: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 292
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 1ba6d5ec-6599-4899-acb2-af85471dfd38",
"durationMs": 207
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-slack-rate-limited",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "15a77af8-07a9-4375-87d5-85eebed716e6",
"appliedAt": "2026-10-19T14:53:27.954Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"contact": "152653482639",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"customer": "cus_4VWGLRUH188BHLBN",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"user": "1ba6d5ec-6599-4899-acb2-af85471dfd38",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "failed",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-slack-rate-limited"
},
"attempts": 1,
"error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
"errorCode": "slack:ratelimited",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 1,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:37.211Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9d772a8addf0",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:27.509Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:27.803Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:27.806Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:27.954Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:37.209Z",
"msg": "slack.post_dsr: failed (slack:ratelimited)"
},
{
"at": "2026-10-19T14:53:37.211Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:27.509Z",
"updatedAt": "2026-10-19T14:53:37.211Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
07POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-slack-rate-limited",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "slack_rate_limited"
}
}Server returned
HTTP 200
{
"runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "slack_rate_limited"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 152653482639",
"durationMs": 111
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_4VWGLRUH188BHLBN: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 292
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 1ba6d5ec-6599-4899-acb2-af85471dfd38",
"durationMs": 207
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-slack-rate-limited",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "15a77af8-07a9-4375-87d5-85eebed716e6",
"appliedAt": "2026-10-19T14:53:27.954Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"contact": "152653482639",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"customer": "cus_4VWGLRUH188BHLBN",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"user": "1ba6d5ec-6599-4899-acb2-af85471dfd38",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "failed",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-slack-rate-limited"
},
"attempts": 1,
"error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
"errorCode": "slack:ratelimited",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 1,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:37.211Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9d772a8addf0",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:27.509Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:27.803Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:27.806Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:27.954Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:37.209Z",
"msg": "slack.post_dsr: failed (slack:ratelimited)"
},
{
"at": "2026-10-19T14:53:37.211Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:37.771Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:27.509Z",
"updatedAt": "2026-10-19T14:53:37.771Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "519",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-slack-rate-limited",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "slack_rate_limited"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
08GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "slack_rate_limited"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 152653482639",
"durationMs": 111
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_4VWGLRUH188BHLBN: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 292
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 1ba6d5ec-6599-4899-acb2-af85471dfd38",
"durationMs": 207
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-slack-rate-limited",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "15a77af8-07a9-4375-87d5-85eebed716e6",
"appliedAt": "2026-10-19T14:53:27.954Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"contact": "152653482639",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"customer": "cus_4VWGLRUH188BHLBN",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"user": "1ba6d5ec-6599-4899-acb2-af85471dfd38",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-slack-rate-limited",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "failed",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-slack-rate-limited"
},
"attempts": 1,
"error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited",
"errorCode": "slack:ratelimited",
"reconciled": null
}
],
"counts": {
"applied": 1,
"failed": 1,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:37.211Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9d772a8addf0",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:27.509Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:27.803Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:27.806Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:27.954Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:37.209Z",
"msg": "slack.post_dsr: failed (slack:ratelimited)"
},
{
"at": "2026-10-19T14:53:37.211Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:37.771Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:27.509Z",
"updatedAt": "2026-10-19T14:53:37.771Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
slack_rate_limitedApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
Slack rate limiting fails the channel post only
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (10)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "1ba6d5ec-6599-4899-acb2-af85471dfd38",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/e1fc6aa5",
"email_verified": true,
"external_id": "ext_9ab31f2cc3e7418d86f43f2cf3",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "152653482639",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "239",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_4VWGLRUH188BHLBN",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 41,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-slack-rate-limited: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-slack-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9d772a8addf0. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-slack-rate-limited: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-slack-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9d772a8addf0. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "15a77af8-07a9-4375-87d5-85eebed716e6"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "538",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-slack-rate-limited: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-slack-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9d772a8addf0. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 429
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "208",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "30"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 429
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "208",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "30"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 429
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 429
{
"ok": false,
"error": "ratelimited"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "208",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}{
"retry-after": "30"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Erasures parked for approval survive a real runtime restart and run once when approved
restart_while_parkedWhat we probed
Erasures parked for approval survive a real runtime restart and run once when approved
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations- Declared adapter worker restart.
POST /invocations
Expected vs actual
- Expected
- Erasures parked for approval survive a real runtime restart and run once when approved
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-restart-while-parked",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "restart_while_parked"
}
}Server returned
HTTP 200
{
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "restart_while_parked"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 748298322904",
"durationMs": 114
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 315
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"durationMs": 331
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "03785e86-950f-435d-96b0-5369bac527ef",
"appliedAt": "2026-10-19T14:53:38.904Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-restart-while-parked",
"contact": "748298322904",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-restart-while-parked",
"customer": "cus_KVLTM2G0BDC1W58U",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-restart-while-parked",
"user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-restart-while-parked",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-restart-while-parked"
},
"attempts": 1,
"ref": "17QG80NU8W.VV1L39",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:39.027Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:39.029Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "40d5510b2417",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:38.400Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:38.737Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:38.746Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:38.905Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:39.027Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:39.029Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:53:38.400Z",
"updatedAt": "2026-10-19T14:53:39.029Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "527",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-restart-while-parked",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "restart_while_parked"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
repeated state reads (44)
03GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
07GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
08GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
09GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
10GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
11GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
12GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
13GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
14GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
15GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
16GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
17GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
18GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
19GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
20GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
21GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
22GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
23GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
24GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
25GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
26GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
27GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
28GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
29GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
30GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
31GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
32GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
33GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
34GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
35GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
36GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
37GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
38GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
39GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
40GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
41GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
42GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
43GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
44GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
45GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
46GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:52:36.594Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
47GET /verify/runtime502
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 502
Response body was not recorded.
HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "text/html; charset=UTF-8",
"content-length": "6418",
"retry-after": "60"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
48GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
49POST /invocations200
We sent
POST /invocations
{
"action": "decide",
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}Server returned
HTTP 200
{
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "restart_while_parked"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 748298322904",
"durationMs": 114
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 315
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"durationMs": 331
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "03785e86-950f-435d-96b0-5369bac527ef",
"appliedAt": "2026-10-19T14:53:38.904Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"contact": "748298322904",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "748298322904",
"appliedAt": "2026-10-19T14:54:00.174Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"customer": "cus_KVLTM2G0BDC1W58U",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KVLTM2G0BDC1W58U",
"appliedAt": "2026-10-19T14:54:00.583Z",
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"privilegedRoles": []
},
"attempts": 1,
"ref": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"appliedAt": "2026-10-19T14:54:00.698Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r5130954621264472",
"appliedAt": "2026-10-19T14:54:00.821Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-restart-while-parked"
},
"attempts": 1,
"ref": "17QG80NU8W.VV1L39",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:39.027Z",
"reconciled": null
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:39.029Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:53:59.919Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "40d5510b2417",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:38.400Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:38.737Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:38.746Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:38.905Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:39.027Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:39.029Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:59.919Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:00.175Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:00.583Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:00.699Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:00.822Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:00.823Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-19T14:53:38.400Z",
"updatedAt": "2026-10-19T14:54:00.823Z",
"result": "recorded"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "124",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
50GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "restart_while_parked"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 748298322904",
"durationMs": 114
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 315
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"durationMs": 331
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "03785e86-950f-435d-96b0-5369bac527ef",
"appliedAt": "2026-10-19T14:53:38.904Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"contact": "748298322904",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "748298322904",
"appliedAt": "2026-10-19T14:54:00.174Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"customer": "cus_KVLTM2G0BDC1W58U",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KVLTM2G0BDC1W58U",
"appliedAt": "2026-10-19T14:54:00.583Z",
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"privilegedRoles": []
},
"attempts": 1,
"ref": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"appliedAt": "2026-10-19T14:54:00.698Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r5130954621264472",
"appliedAt": "2026-10-19T14:54:00.821Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-restart-while-parked"
},
"attempts": 1,
"ref": "17QG80NU8W.VV1L39",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:39.027Z",
"reconciled": null
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:39.029Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:53:59.919Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "40d5510b2417",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:38.400Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:38.737Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:38.746Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:38.905Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:39.027Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:39.029Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:59.919Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:00.175Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:00.583Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:00.699Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:00.822Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:00.823Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-19T14:53:38.400Z",
"updatedAt": "2026-10-19T14:54:00.823Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
51POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-restart-while-parked",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "restart_while_parked"
}
}Server returned
HTTP 200
{
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "restart_while_parked"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 748298322904",
"durationMs": 114
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 315
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"durationMs": 331
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "03785e86-950f-435d-96b0-5369bac527ef",
"appliedAt": "2026-10-19T14:53:38.904Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"contact": "748298322904",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "748298322904",
"appliedAt": "2026-10-19T14:54:00.174Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"customer": "cus_KVLTM2G0BDC1W58U",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KVLTM2G0BDC1W58U",
"appliedAt": "2026-10-19T14:54:00.583Z",
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"privilegedRoles": []
},
"attempts": 1,
"ref": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"appliedAt": "2026-10-19T14:54:00.698Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r5130954621264472",
"appliedAt": "2026-10-19T14:54:00.821Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-restart-while-parked"
},
"attempts": 1,
"ref": "17QG80NU8W.VV1L39",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:39.027Z",
"reconciled": null
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:39.029Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:53:59.919Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "40d5510b2417",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:38.400Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:38.737Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:38.746Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:38.905Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:39.027Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:39.029Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:59.919Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:00.175Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:00.583Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:00.699Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:00.822Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:00.823Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:54:01.850Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:38.400Z",
"updatedAt": "2026-10-19T14:54:01.850Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "527",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-restart-while-parked",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "restart_while_parked"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
repeated state reads (21)
52GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
53GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
54GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
55GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
56GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
57GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
58GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
59GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
60GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
61GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
62GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
63GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
64GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
65GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
66GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
67GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
68GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
69GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
70GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
71GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
72GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:53:59.659Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
73GET /verify/runtime502
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 502
Response body was not recorded.
HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "text/html; charset=UTF-8",
"content-length": "6418",
"retry-after": "60"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
74GET /verify/runtime200
We sent
GET /verify/runtime
This request had no body.
Server returned
HTTP 200
{
"instance_id": "7826c8cc-1e96-4d31-ab27-a91ec1dab03b",
"workflow": "privacy-erasure",
"startedAt": "2026-10-19T14:54:12.314Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
75POST /invocations200
We sent
POST /invocations
{
"action": "decide",
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}Server returned
HTTP 200
{
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "restart_while_parked"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 748298322904",
"durationMs": 114
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 315
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"durationMs": 331
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "03785e86-950f-435d-96b0-5369bac527ef",
"appliedAt": "2026-10-19T14:53:38.904Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"contact": "748298322904",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "748298322904",
"appliedAt": "2026-10-19T14:54:00.174Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"customer": "cus_KVLTM2G0BDC1W58U",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KVLTM2G0BDC1W58U",
"appliedAt": "2026-10-19T14:54:00.583Z",
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"privilegedRoles": []
},
"attempts": 1,
"ref": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"appliedAt": "2026-10-19T14:54:00.698Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r5130954621264472",
"appliedAt": "2026-10-19T14:54:00.821Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-restart-while-parked"
},
"attempts": 1,
"ref": "17QG80NU8W.VV1L39",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:39.027Z",
"reconciled": null
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:39.029Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:53:59.919Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "40d5510b2417",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:38.400Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:38.737Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:38.746Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:38.905Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:39.027Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:39.029Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:59.919Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:00.175Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:00.583Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:00.699Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:00.822Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:00.823Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:54:01.850Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:38.400Z",
"updatedAt": "2026-10-19T14:54:12.653Z",
"result": "already_decided"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "124",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
76GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "restart_while_parked"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 748298322904",
"durationMs": 114
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 315
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"durationMs": 331
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "03785e86-950f-435d-96b0-5369bac527ef",
"appliedAt": "2026-10-19T14:53:38.904Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"contact": "748298322904",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "748298322904",
"appliedAt": "2026-10-19T14:54:00.174Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"customer": "cus_KVLTM2G0BDC1W58U",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KVLTM2G0BDC1W58U",
"appliedAt": "2026-10-19T14:54:00.583Z",
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"privilegedRoles": []
},
"attempts": 1,
"ref": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"appliedAt": "2026-10-19T14:54:00.698Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-restart-while-parked",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r5130954621264472",
"appliedAt": "2026-10-19T14:54:00.821Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-restart-while-parked"
},
"attempts": 1,
"ref": "17QG80NU8W.VV1L39",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:53:39.027Z",
"reconciled": null
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:53:39.029Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:53:59.919Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "40d5510b2417",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:53:38.400Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:53:38.737Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:53:38.746Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:53:38.905Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:53:39.027Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:53:39.029Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:53:59.919Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:00.175Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:00.583Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:00.699Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:00.822Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:00.823Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:54:01.850Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:53:38.400Z",
"updatedAt": "2026-10-19T14:54:12.653Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
restart_while_parkedApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
Erasures parked for approval survive a real runtime restart and run once when approved
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (13)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "748298322904",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "241",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_KVLTM2G0BDC1W58U",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 31,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/42fdb09d",
"email_verified": true,
"external_id": "ext_e3338d8d09f74cc1ae14bcbc18",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-restart-while-parked: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-restart-while-parked, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 40d5510b2417. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-restart-while-parked: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-restart-while-parked, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 40d5510b2417. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "03785e86-950f-435d-96b0-5369bac527ef"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "542",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-restart-while-parked: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-restart-while-parked, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 40d5510b2417. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-restart-while-parked (GDPR, due 2026-11-14, 25d left) subject 40d5510b2417: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_846f7c57f9594f94b2d94dcecd",
"client_msg_id": "cli_8704190ed66f4fe2bbc7476623",
"name": "item-78db83",
"old_name": "Sample Old",
"parent_user_id": "par_5ef43d4783794f98894e33d4aa",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17QG80NU8W.VV1L39"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "210",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-restart-while-parked (GDPR, due 2026-11-14, 25d left) subject 40d5510b2417: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/gdpr-delete · HTTP 204
We sent
POST /crm/v3/objects/contacts/gdpr-delete
{
"objectId": "748298322904"
}Server returned
HTTP 204
Response body was not recorded.
HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete
{
"host": "fetchsandbox.com",
"content-length": "27",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"objectId": "748298322904"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · POST /v1/customers/cus_KVLTM2G0BDC1W58U · HTTP 200
We sent
POST /v1/customers/cus_KVLTM2G0BDC1W58U
{
"email": "[email protected]",
"name": "Erased customer",
"phone": "",
"description": "",
"metadata": {
"acme_erased": "DSR-restart-while-parked"
}
}Server returned
HTTP 200
{
"email": "[email protected]",
"name": "Erased customer",
"phone": "",
"id": "cus_KVLTM2G0BDC1W58U",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 31,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": "",
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"metadata": {
"acme_erased": "DSR-restart-while-parked"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KVLTM2G0BDC1W58U
{
"host": "fetchsandbox.com",
"content-length": "142",
"user-agent": "node",
"content-type": "application/x-www-form-urlencoded",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KVLTM2G0BDC1W58U' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/x-www-form-urlencoded' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"email": "[email protected]",
"name": "Erased customer",
"phone": "",
"description": "",
"metadata": {
"acme_erased": "DSR-restart-while-parked"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · DELETE /user_management/users/7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed · HTTP 204
We sent
DELETE /user_management/users/7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed
No body was saved. This receipt cannot tell whether it was empty or not captured.
Server returned
HTTP 204
Response body was not recorded.
HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request DELETE 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
gmail · POST /gmail/v1/users/me/drafts · HTTP 200
We sent
POST /gmail/v1/users/me/drafts
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItcmVzdGFydC13aGlsZS1wYXJrZWRAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItcmVzdGFydC13aGlsZS1wYXJrZWQgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw5YmViMjg4MjE0MDE5N2U1LmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLXJlc3RhcnQtd2hpbGUtcGFya2VkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
}Server returned
HTTP 200
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItcmVzdGFydC13aGlsZS1wYXJrZWRAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItcmVzdGFydC13aGlsZS1wYXJrZWQgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw5YmViMjg4MjE0MDE5N2U1LmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLXJlc3RhcnQtd2hpbGUtcGFya2VkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ",
"payload": {
"mimeType": "text/plain",
"headers": [
{
"name": "From",
"value": "me"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Your data deletion request DSR-restart-while-parked is complete"
},
{
"name": "Message-ID",
"value": "<[email protected]>"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/plain; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "8bit"
}
],
"body": {
"size": 286,
"data": "SGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLXJlc3RhcnQtd2hpbGUtcGFya2VkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
},
"sizeEstimate": 568,
"labelIds": [
"DRAFT"
],
"id": "5d9a6b3566f74f58"
},
"user_id": "me",
"id": "r5130954621264472"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts
{
"host": "fetchsandbox.com",
"content-length": "780",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItcmVzdGFydC13aGlsZS1wYXJrZWRAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItcmVzdGFydC13aGlsZS1wYXJrZWQgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw5YmViMjg4MjE0MDE5N2U1LmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLXJlc3RhcnQtd2hpbGUtcGFya2VkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Reconcile independently confirms the HubSpot contact is gone after GDPR deletion
crm_erasure_readbackWhat we probed
Reconcile independently confirms the HubSpot contact is gone after GDPR deletion
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsPOST /invocationsPOST /invocations
Expected vs actual
| Check | Expected | Actual | Result |
|---|---|---|---|
| HubSpot Contact | 0 | 0 | ✓ Passed |
Counts are derived from saved provider records using declared filters; original verdict unchanged.
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-crm-erasure-readback",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
}
}Server returned
HTTP 200
{
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 751827790049",
"durationMs": 308
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 454
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b",
"durationMs": 341
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3",
"appliedAt": "2026-10-19T14:54:14.049Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"contact": "751827790049",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"customer": "cus_KUFEVHELIBI1YPMX",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"user": "c740de74-659d-45c8-bcf0-0318488f155b",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-erasure-readback"
},
"attempts": 1,
"ref": "17CHMZS3RS.C61AOC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:14.198Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:14.200Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "e108ca3293a4",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:13.423Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:13.885Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:13.890Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:14.049Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:14.199Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:14.200Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:54:13.423Z",
"updatedAt": "2026-10-19T14:54:14.200Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "527",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-crm-erasure-readback",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03POST /invocations200
We sent
POST /invocations
{
"action": "decide",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}Server returned
HTTP 200
{
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 751827790049",
"durationMs": 308
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 454
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b",
"durationMs": 341
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3",
"appliedAt": "2026-10-19T14:54:14.049Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"contact": "751827790049",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "751827790049",
"appliedAt": "2026-10-19T14:54:14.539Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"customer": "cus_KUFEVHELIBI1YPMX",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KUFEVHELIBI1YPMX",
"appliedAt": "2026-10-19T14:54:14.821Z",
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"user": "c740de74-659d-45c8-bcf0-0318488f155b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "c740de74-659d-45c8-bcf0-0318488f155b",
"appliedAt": "2026-10-19T14:54:14.959Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r8833327176329381",
"appliedAt": "2026-10-19T14:54:15.122Z",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-erasure-readback"
},
"attempts": 1,
"ref": "17CHMZS3RS.C61AOC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:14.198Z",
"reconciled": null
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:14.200Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:54:14.411Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "e108ca3293a4",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:13.423Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:13.885Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:13.890Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:14.049Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:14.199Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:14.200Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:14.411Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:14.539Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:14.821Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:14.960Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:15.122Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:15.124Z",
"msg": "done (ok)"
}
],
"createdAt": "2026-10-19T14:54:13.423Z",
"updatedAt": "2026-10-19T14:54:15.124Z",
"result": "recorded"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "124",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "reconcile",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed"
}Server returned
HTTP 200
{
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 751827790049",
"durationMs": 308
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 454
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b",
"durationMs": 341
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3",
"appliedAt": "2026-10-19T14:54:14.049Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:15.438Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"contact": "751827790049",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "751827790049",
"appliedAt": "2026-10-19T14:54:14.539Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:54:15.414Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"customer": "cus_KUFEVHELIBI1YPMX",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KUFEVHELIBI1YPMX",
"appliedAt": "2026-10-19T14:54:14.821Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:15.493Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"user": "c740de74-659d-45c8-bcf0-0318488f155b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "c740de74-659d-45c8-bcf0-0318488f155b",
"appliedAt": "2026-10-19T14:54:14.959Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:54:15.514Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r8833327176329381",
"appliedAt": "2026-10-19T14:54:15.122Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:15.317Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-erasure-readback"
},
"attempts": 1,
"ref": "17CHMZS3RS.C61AOC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:14.198Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:15.317Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:14.200Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:54:14.411Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "e108ca3293a4",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:13.423Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:13.885Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:13.890Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:14.049Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:14.199Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:14.200Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:14.411Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:14.539Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:14.821Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:14.960Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:15.122Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:15.124Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:54:15.515Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
}
],
"createdAt": "2026-10-19T14:54:13.423Z",
"updatedAt": "2026-10-19T14:54:15.515Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "89",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "reconcile",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 751827790049",
"durationMs": 308
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 454
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b",
"durationMs": 341
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3",
"appliedAt": "2026-10-19T14:54:14.049Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:15.438Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"contact": "751827790049",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "751827790049",
"appliedAt": "2026-10-19T14:54:14.539Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:54:15.414Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"customer": "cus_KUFEVHELIBI1YPMX",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KUFEVHELIBI1YPMX",
"appliedAt": "2026-10-19T14:54:14.821Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:15.493Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"user": "c740de74-659d-45c8-bcf0-0318488f155b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "c740de74-659d-45c8-bcf0-0318488f155b",
"appliedAt": "2026-10-19T14:54:14.959Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:54:15.514Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r8833327176329381",
"appliedAt": "2026-10-19T14:54:15.122Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:15.317Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-erasure-readback"
},
"attempts": 1,
"ref": "17CHMZS3RS.C61AOC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:14.198Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:15.317Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:14.200Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:54:14.411Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "e108ca3293a4",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:13.423Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:13.885Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:13.890Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:14.049Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:14.199Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:14.200Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:14.411Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:14.539Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:14.821Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:14.960Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:15.122Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:15.124Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:54:15.515Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
}
],
"createdAt": "2026-10-19T14:54:13.423Z",
"updatedAt": "2026-10-19T14:54:15.515Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-crm-erasure-readback",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
}
}Server returned
HTTP 200
{
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 751827790049",
"durationMs": 308
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 454
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b",
"durationMs": 341
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3",
"appliedAt": "2026-10-19T14:54:14.049Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:15.438Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"contact": "751827790049",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "751827790049",
"appliedAt": "2026-10-19T14:54:14.539Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:54:15.414Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"customer": "cus_KUFEVHELIBI1YPMX",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KUFEVHELIBI1YPMX",
"appliedAt": "2026-10-19T14:54:14.821Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:15.493Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"user": "c740de74-659d-45c8-bcf0-0318488f155b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "c740de74-659d-45c8-bcf0-0318488f155b",
"appliedAt": "2026-10-19T14:54:14.959Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:54:15.514Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r8833327176329381",
"appliedAt": "2026-10-19T14:54:15.122Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:15.317Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-erasure-readback"
},
"attempts": 1,
"ref": "17CHMZS3RS.C61AOC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:14.198Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:15.317Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:14.200Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:54:14.411Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "e108ca3293a4",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:13.423Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:13.885Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:13.890Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:14.049Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:14.199Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:14.200Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:14.411Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:14.539Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:14.821Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:14.960Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:15.122Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:15.124Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:54:15.515Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
},
{
"at": "2026-10-19T14:54:16.014Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:54:13.423Z",
"updatedAt": "2026-10-19T14:54:16.014Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "527",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-crm-erasure-readback",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
07POST /invocations200
We sent
POST /invocations
{
"action": "decide",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}Server returned
HTTP 200
{
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 751827790049",
"durationMs": 308
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 454
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b",
"durationMs": 341
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3",
"appliedAt": "2026-10-19T14:54:14.049Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:15.438Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"contact": "751827790049",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "751827790049",
"appliedAt": "2026-10-19T14:54:14.539Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:54:15.414Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"customer": "cus_KUFEVHELIBI1YPMX",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KUFEVHELIBI1YPMX",
"appliedAt": "2026-10-19T14:54:14.821Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:15.493Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"user": "c740de74-659d-45c8-bcf0-0318488f155b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "c740de74-659d-45c8-bcf0-0318488f155b",
"appliedAt": "2026-10-19T14:54:14.959Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:54:15.514Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r8833327176329381",
"appliedAt": "2026-10-19T14:54:15.122Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:15.317Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-erasure-readback"
},
"attempts": 1,
"ref": "17CHMZS3RS.C61AOC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:14.198Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:15.317Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:14.200Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:54:14.411Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "e108ca3293a4",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:13.423Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:13.885Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:13.890Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:14.049Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:14.199Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:14.200Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:14.411Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:14.539Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:14.821Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:14.960Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:15.122Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:15.124Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:54:15.515Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
},
{
"at": "2026-10-19T14:54:16.014Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:54:13.423Z",
"updatedAt": "2026-10-19T14:54:16.215Z",
"result": "already_decided"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "124",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
08POST /invocations200
We sent
POST /invocations
{
"action": "reconcile",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed"
}Server returned
HTTP 200
{
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 751827790049",
"durationMs": 308
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 454
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b",
"durationMs": 341
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3",
"appliedAt": "2026-10-19T14:54:14.049Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:16.602Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"contact": "751827790049",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "751827790049",
"appliedAt": "2026-10-19T14:54:14.539Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:54:16.601Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"customer": "cus_KUFEVHELIBI1YPMX",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KUFEVHELIBI1YPMX",
"appliedAt": "2026-10-19T14:54:14.821Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:16.552Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"user": "c740de74-659d-45c8-bcf0-0318488f155b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "c740de74-659d-45c8-bcf0-0318488f155b",
"appliedAt": "2026-10-19T14:54:14.959Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:54:16.601Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r8833327176329381",
"appliedAt": "2026-10-19T14:54:15.122Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:16.413Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-erasure-readback"
},
"attempts": 1,
"ref": "17CHMZS3RS.C61AOC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:14.198Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:16.413Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:14.200Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:54:14.411Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "e108ca3293a4",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:13.423Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:13.885Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:13.890Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:14.049Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:14.199Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:14.200Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:14.411Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:14.539Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:14.821Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:14.960Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:15.122Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:15.124Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:54:15.515Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
},
{
"at": "2026-10-19T14:54:16.014Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:54:16.602Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
}
],
"createdAt": "2026-10-19T14:54:13.423Z",
"updatedAt": "2026-10-19T14:54:16.602Z"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "89",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "reconcile",
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
09GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "crm_erasure_readback"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 751827790049",
"durationMs": 308
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 454
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b",
"durationMs": 341
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 1
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3",
"appliedAt": "2026-10-19T14:54:14.049Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:16.602Z"
},
"reconciled": "match"
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"contact": "751827790049",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "751827790049",
"appliedAt": "2026-10-19T14:54:14.539Z",
"reconcile": {
"status": "match",
"detail": "contact no longer exists",
"checkedAt": "2026-10-19T14:54:16.601Z"
},
"reconciled": "match"
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"customer": "cus_KUFEVHELIBI1YPMX",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"ref": "cus_KUFEVHELIBI1YPMX",
"appliedAt": "2026-10-19T14:54:14.821Z",
"reconcile": {
"status": "match",
"checkedAt": "2026-10-19T14:54:16.552Z"
},
"reconciled": "match"
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"user": "c740de74-659d-45c8-bcf0-0318488f155b",
"privilegedRoles": []
},
"attempts": 1,
"ref": "c740de74-659d-45c8-bcf0-0318488f155b",
"appliedAt": "2026-10-19T14:54:14.959Z",
"reconcile": {
"status": "match",
"detail": "account no longer exists",
"checkedAt": "2026-10-19T14:54:16.601Z"
},
"reconciled": "match"
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-crm-erasure-readback",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"ref": "r8833327176329381",
"appliedAt": "2026-10-19T14:54:15.122Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:16.413Z"
},
"reconciled": "unverifiable"
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-crm-erasure-readback"
},
"attempts": 1,
"ref": "17CHMZS3RS.C61AOC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:14.198Z",
"reconcile": {
"status": "unverifiable",
"detail": "no read-back for this action",
"checkedAt": "2026-10-19T14:54:16.413Z"
},
"reconciled": "unverifiable"
}
],
"counts": {
"applied": 6,
"failed": 0,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:14.200Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:54:14.411Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "e108ca3293a4",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:13.423Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:13.885Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:13.890Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:14.049Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:14.199Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:14.200Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:14.411Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:14.539Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:14.821Z",
"msg": "stripe.anonymize_customer: applied"
},
{
"at": "2026-10-19T14:54:14.960Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:15.122Z",
"msg": "gmail.draft_completion: applied"
},
{
"at": "2026-10-19T14:54:15.124Z",
"msg": "done (ok)"
},
{
"at": "2026-10-19T14:54:15.515Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
},
{
"at": "2026-10-19T14:54:16.014Z",
"msg": "duplicate start ignored"
},
{
"at": "2026-10-19T14:54:16.602Z",
"msg": "reconciled: {\"match\":4,\"unverifiable\":2}"
}
],
"createdAt": "2026-10-19T14:54:13.423Z",
"updatedAt": "2026-10-19T14:54:16.602Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
crm_erasure_readbackApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
Reconcile independently confirms the HubSpot contact is gone after GDPR deletion
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (21)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "c740de74-659d-45c8-bcf0-0318488f155b",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/b65c488c",
"email_verified": true,
"external_id": "ext_de35aaaecf864f7fafbcb85470",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "751827790049",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "241",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_KUFEVHELIBI1YPMX",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 70,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-crm-erasure-readback: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-crm-erasure-readback, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref e108ca3293a4. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-crm-erasure-readback: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-crm-erasure-readback, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref e108ca3293a4. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "2cd31539-4edb-442a-b5dd-07a72ab094a3"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "542",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-crm-erasure-readback: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-crm-erasure-readback, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref e108ca3293a4. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-crm-erasure-readback (GDPR, due 2026-11-14, 25d left) subject e108ca3293a4: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_f211966d408042019578ad4b36",
"client_msg_id": "cli_44f281a936c641d891bc3cdf58",
"name": "item-601fbb",
"old_name": "Sample Old",
"parent_user_id": "par_fa2c56e39bb14f4a9174176f4c",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17CHMZS3RS.C61AOC"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "210",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-crm-erasure-readback (GDPR, due 2026-11-14, 25d left) subject e108ca3293a4: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/gdpr-delete · HTTP 204
We sent
POST /crm/v3/objects/contacts/gdpr-delete
{
"objectId": "751827790049"
}Server returned
HTTP 204
Response body was not recorded.
HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete
{
"host": "fetchsandbox.com",
"content-length": "27",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"objectId": "751827790049"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · POST /v1/customers/cus_KUFEVHELIBI1YPMX · HTTP 200
We sent
POST /v1/customers/cus_KUFEVHELIBI1YPMX
{
"email": "[email protected]",
"name": "Erased customer",
"phone": "",
"description": "",
"metadata": {
"acme_erased": "DSR-crm-erasure-readback"
}
}Server returned
HTTP 200
{
"email": "[email protected]",
"name": "Erased customer",
"phone": "",
"id": "cus_KUFEVHELIBI1YPMX",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 70,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": "",
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"metadata": {
"acme_erased": "DSR-crm-erasure-readback"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KUFEVHELIBI1YPMX
{
"host": "fetchsandbox.com",
"content-length": "142",
"user-agent": "node",
"content-type": "application/x-www-form-urlencoded",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KUFEVHELIBI1YPMX' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/x-www-form-urlencoded' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"email": "[email protected]",
"name": "Erased customer",
"phone": "",
"description": "",
"metadata": {
"acme_erased": "DSR-crm-erasure-readback"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · DELETE /user_management/users/c740de74-659d-45c8-bcf0-0318488f155b · HTTP 204
We sent
DELETE /user_management/users/c740de74-659d-45c8-bcf0-0318488f155b
No body was saved. This receipt cannot tell whether it was empty or not captured.
Server returned
HTTP 204
Response body was not recorded.
HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/c740de74-659d-45c8-bcf0-0318488f155b
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request DELETE 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/c740de74-659d-45c8-bcf0-0318488f155b' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
gmail · POST /gmail/v1/users/me/drafts · HTTP 200
We sent
POST /gmail/v1/users/me/drafts
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItY3JtLWVyYXN1cmUtcmVhZGJhY2tAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItY3JtLWVyYXN1cmUtcmVhZGJhY2sgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw3NGNjYjQyNDVmMzgyZmRiLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWNybS1lcmFzdXJlLXJlYWRiYWNrIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
}Server returned
HTTP 200
{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItY3JtLWVyYXN1cmUtcmVhZGJhY2tAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItY3JtLWVyYXN1cmUtcmVhZGJhY2sgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw3NGNjYjQyNDVmMzgyZmRiLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWNybS1lcmFzdXJlLXJlYWRiYWNrIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ",
"payload": {
"mimeType": "text/plain",
"headers": [
{
"name": "From",
"value": "me"
},
{
"name": "To",
"value": "[email protected]"
},
{
"name": "Subject",
"value": "Your data deletion request DSR-crm-erasure-readback is complete"
},
{
"name": "Message-ID",
"value": "<[email protected]>"
},
{
"name": "MIME-Version",
"value": "1.0"
},
{
"name": "Content-Type",
"value": "text/plain; charset=\"UTF-8\""
},
{
"name": "Content-Transfer-Encoding",
"value": "8bit"
}
],
"body": {
"size": 286,
"data": "SGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWNybS1lcmFzdXJlLXJlYWRiYWNrIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
},
"sizeEstimate": 568,
"labelIds": [
"DRAFT"
],
"id": "15404f22e28041a8"
},
"user_id": "me",
"id": "r8833327176329381"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts
{
"host": "fetchsandbox.com",
"content-length": "780",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"message": {
"raw": "RnJvbTogbWUNClRvOiBkc3ItY3JtLWVyYXN1cmUtcmVhZGJhY2tAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItY3JtLWVyYXN1cmUtcmVhZGJhY2sgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw3NGNjYjQyNDVmMzgyZmRiLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWNybS1lcmFzdXJlLXJlYWRiYWNrIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · GET /crm/v3/objects/contacts/751827790049 · HTTP 404
We sent
GET /crm/v3/objects/contacts/751827790049
No body shown for this read.
Server returned
HTTP 404
{
"errors": [
{
"status": "404",
"code": "EGeneral:Not found",
"detail": "Resource 751827790049 not found"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/751827790049
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/751827790049' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · GET /tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3 · HTTP 200
We sent
GET /tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3
No body shown for this read.
Server returned
HTTP 200
{
"data": {
"name": "DSR-crm-erasure-readback: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-crm-erasure-readback, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref e108ca3293a4. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14",
"created_by": {
"gid": "1111",
"resource_type": "default"
},
"gid": "12345",
"resource_subtype": "default_task",
"resource_type": "task",
"approval_status": "pending",
"assigned_by": {
"gid": "12345",
"name": "item-094649",
"resource_type": "default"
},
"assignee_status": "upcoming",
"completed": false,
"completed_by": {
"gid": "12345",
"name": "item-bd1076",
"resource_type": "default"
},
"created_at": "2012-02-22T02:06:58.147Z",
"dependencies": [
{
"gid": "12345",
"resource_type": "default"
}
],
"dependents": [
{
"gid": "12345",
"resource_type": "default"
}
],
"external": {
"data": "A blob of information",
"gid": "my_gid"
},
"hearted": true,
"hearts": [
{
"gid": "12345",
"user": {
"gid": "12345",
"name": "item-892aec",
"resource_type": "default"
}
}
],
"html_notes": "<body>Mittens <em>really</em> likes the stuff from Humboldt.</body>",
"is_rendered_as_separator": false,
"liked": true,
"likes": [
{
"gid": "12345",
"user": {
"gid": "12345",
"name": "item-f3c9fc",
"resource_type": "default"
}
}
],
"memberships": [
{
"project": {
"gid": "12345",
"name": "item-a82d97",
"resource_type": "default"
},
"section": {
"gid": "12345",
"name": "item-c6af6c",
"resource_type": "default"
}
}
],
"modified_at": "2012-02-22T02:06:58.147Z",
"num_hearts": 5,
"num_likes": 5,
"num_subtasks": 3,
"assignee": {
"gid": "12345",
"name": "item-04a0f8",
"resource_type": "default"
},
"assignee_section": {
"gid": "12345",
"name": "item-9a3829",
"resource_type": "default"
},
"custom_fields": [
{
"date_value": {
"date": "2024-08-23",
"date_time": "2024-08-23T22:00:00.000Z"
},
"display_value": "blue",
"enabled": true,
"enum_options": [
{
"color": "#c447fd",
"enabled": true,
"gid": "12345",
"name": "item-16d7ef",
"resource_type": "default"
}
],
"enum_value": {
"color": "#e3da01",
"enabled": true,
"gid": "12345",
"name": "item-5ef85f",
"resource_type": "default"
},
"gid": "12345",
"id_prefix": "ID",
"input_restrictions": "task",
"is_formula_field": false,
"multi_enum_values": [
{
"color": "#f300f5",
"enabled": true,
"gid": "12345",
"name": "item-7ad937",
"resource_type": "default"
}
],
"name": "item-83111f",
"number_value": 5.2,
"representation_type": "number",
"resource_type": "default",
"text_value": "Some Value",
"type": "text",
"asana_created_field": "priority",
"currency_code": "DEFAULT",
"custom_label": "gold pieces",
"custom_label_position": "suffix",
"description": null,
"format": "custom",
"has_notifications_enabled": true,
"is_global_to_workspace": true,
"precision": 2,
"created_by": {
"gid": "12345",
"name": "item-fc28c5",
"resource_type": "default"
},
"default_access_level": "user",
"is_value_read_only": false,
"people_value": [
{
"gid": "12345",
"name": "item-c1200c",
"resource_type": "default"
}
],
"privacy_setting": "public_with_guests",
"reference_value": [
{
"gid": "12345",
"name": "item-c0b3e5",
"resource_type": "default"
}
],
"resource_subtype": "text"
}
],
"custom_type": {
"gid": "12345",
"name": "item-ead33c",
"resource_type": "default"
},
"custom_type_status_option": {
"gid": "12345",
"name": "item-204e68",
"resource_type": "default"
},
"followers": [
{
"gid": "12345",
"name": "item-c0f050",
"resource_type": "default"
}
],
"parent": {
"created_by": {
"gid": "1111",
"resource_type": "default"
},
"gid": "12345",
"name": "item-5ad717",
"resource_subtype": "default_task",
"resource_type": "default"
},
"permalink_url": "https://app.asana.com/1/12345/task/123456789",
"projects": [
{
"gid": "12345",
"name": "item-5fc18b",
"resource_type": "default"
}
],
"tags": [
{
"gid": "59746",
"name": "Grade A",
"resource_type": "tag"
}
]
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_KUFEVHELIBI1YPMX · HTTP 200
We sent
GET /v1/customers/cus_KUFEVHELIBI1YPMX
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 70,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_KUFEVHELIBI1YPMX",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Erased customer",
"object": "customer",
"phone": null,
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"metadata": {
"acme_erased": "DSR-crm-erasure-readback"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KUFEVHELIBI1YPMX
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KUFEVHELIBI1YPMX' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users/c740de74-659d-45c8-bcf0-0318488f155b · HTTP 404
We sent
GET /user_management/users/c740de74-659d-45c8-bcf0-0318488f155b
No body shown for this read.
Server returned
HTTP 404
{
"errors": [
{
"status": "404",
"code": "EGeneral:Not found",
"detail": "Resource c740de74-659d-45c8-bcf0-0318488f155b not found"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/c740de74-659d-45c8-bcf0-0318488f155b
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/c740de74-659d-45c8-bcf0-0318488f155b' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers/cus_KUFEVHELIBI1YPMX · HTTP 200
We sent
GET /v1/customers/cus_KUFEVHELIBI1YPMX
No body shown for this read.
Server returned
HTTP 200
{
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 70,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"email": "[email protected]",
"id": "cus_KUFEVHELIBI1YPMX",
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"name": "Erased customer",
"object": "customer",
"phone": null,
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null,
"metadata": {
"acme_erased": "DSR-crm-erasure-readback"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KUFEVHELIBI1YPMX
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KUFEVHELIBI1YPMX' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users/c740de74-659d-45c8-bcf0-0318488f155b · HTTP 404
We sent
GET /user_management/users/c740de74-659d-45c8-bcf0-0318488f155b
No body shown for this read.
Server returned
HTTP 404
{
"errors": [
{
"status": "404",
"code": "EGeneral:Not found",
"detail": "Resource c740de74-659d-45c8-bcf0-0318488f155b not found"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/c740de74-659d-45c8-bcf0-0318488f155b
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/c740de74-659d-45c8-bcf0-0318488f155b' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · GET /tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3 · HTTP 200
We sent
GET /tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3
No body shown for this read.
Server returned
HTTP 200
{
"data": {
"name": "DSR-crm-erasure-readback: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-crm-erasure-readback, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref e108ca3293a4. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14",
"created_by": {
"gid": "1111",
"resource_type": "default"
},
"gid": "12345",
"resource_subtype": "default_task",
"resource_type": "task",
"approval_status": "pending",
"assigned_by": {
"gid": "12345",
"name": "item-ffd384",
"resource_type": "default"
},
"assignee_status": "upcoming",
"completed": false,
"completed_by": {
"gid": "12345",
"name": "item-1b6ce5",
"resource_type": "default"
},
"created_at": "2012-02-22T02:06:58.147Z",
"dependencies": [
{
"gid": "12345",
"resource_type": "default"
}
],
"dependents": [
{
"gid": "12345",
"resource_type": "default"
}
],
"external": {
"data": "A blob of information",
"gid": "my_gid"
},
"hearted": true,
"hearts": [
{
"gid": "12345",
"user": {
"gid": "12345",
"name": "item-dc31d6",
"resource_type": "default"
}
}
],
"html_notes": "<body>Mittens <em>really</em> likes the stuff from Humboldt.</body>",
"is_rendered_as_separator": false,
"liked": true,
"likes": [
{
"gid": "12345",
"user": {
"gid": "12345",
"name": "item-69672b",
"resource_type": "default"
}
}
],
"memberships": [
{
"project": {
"gid": "12345",
"name": "item-9aa24d",
"resource_type": "default"
},
"section": {
"gid": "12345",
"name": "item-1976db",
"resource_type": "default"
}
}
],
"modified_at": "2012-02-22T02:06:58.147Z",
"num_hearts": 5,
"num_likes": 5,
"num_subtasks": 3,
"assignee": {
"gid": "12345",
"name": "item-67cf10",
"resource_type": "default"
},
"assignee_section": {
"gid": "12345",
"name": "item-aacddf",
"resource_type": "default"
},
"custom_fields": [
{
"date_value": {
"date": "2024-08-23",
"date_time": "2024-08-23T22:00:00.000Z"
},
"display_value": "blue",
"enabled": true,
"enum_options": [
{
"color": "#c148fe",
"enabled": true,
"gid": "12345",
"name": "item-c8c3d2",
"resource_type": "default"
}
],
"enum_value": {
"color": "#699b8c",
"enabled": true,
"gid": "12345",
"name": "item-2f6005",
"resource_type": "default"
},
"gid": "12345",
"id_prefix": "ID",
"input_restrictions": "task",
"is_formula_field": false,
"multi_enum_values": [
{
"color": "#885285",
"enabled": true,
"gid": "12345",
"name": "item-c5a3f2",
"resource_type": "default"
}
],
"name": "item-4eafee",
"number_value": 5.2,
"representation_type": "number",
"resource_type": "default",
"text_value": "Some Value",
"type": "text",
"asana_created_field": "priority",
"currency_code": "DEFAULT",
"custom_label": "gold pieces",
"custom_label_position": "suffix",
"description": null,
"format": "custom",
"has_notifications_enabled": true,
"is_global_to_workspace": true,
"precision": 2,
"created_by": {
"gid": "12345",
"name": "item-2a51c6",
"resource_type": "default"
},
"default_access_level": "user",
"is_value_read_only": false,
"people_value": [
{
"gid": "12345",
"name": "item-f045c8",
"resource_type": "default"
}
],
"privacy_setting": "public_with_guests",
"reference_value": [
{
"gid": "12345",
"name": "item-74e923",
"resource_type": "default"
}
],
"resource_subtype": "text"
}
],
"custom_type": {
"gid": "12345",
"name": "item-cc5777",
"resource_type": "default"
},
"custom_type_status_option": {
"gid": "12345",
"name": "item-b4e718",
"resource_type": "default"
},
"followers": [
{
"gid": "12345",
"name": "item-6b34e6",
"resource_type": "default"
}
],
"parent": {
"created_by": {
"gid": "1111",
"resource_type": "default"
},
"gid": "12345",
"name": "item-5edd5d",
"resource_subtype": "default_task",
"resource_type": "default"
},
"permalink_url": "https://app.asana.com/1/12345/task/123456789",
"projects": [
{
"gid": "12345",
"name": "item-7f6f3d",
"resource_type": "default"
}
],
"tags": [
{
"gid": "59746",
"name": "Grade A",
"resource_type": "tag"
}
]
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · GET /crm/v3/objects/contacts/751827790049 · HTTP 404
We sent
GET /crm/v3/objects/contacts/751827790049
No body shown for this read.
Server returned
HTTP 404
{
"errors": [
{
"status": "404",
"code": "EGeneral:Not found",
"detail": "Resource 751827790049 not found"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/751827790049
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/751827790049' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
A real stored admin membership is detected and erasure waits for approval
privileged_account_flaggedWhat we probed
A real stored admin membership is detected and erasure waits for approval
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocations
Expected vs actual
- Expected
- A real stored admin membership is detected and erasure waits for approval
- Actual
- expected exactly 1, found 1; stable under 2 repeats (1)
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-privileged-account-flagged",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "privileged_account_flagged"
}
}Server returned
HTTP 200
{
"runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "privileged_account_flagged"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 894007378965",
"durationMs": 166
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_SVCNLI1O4XXM5SFH: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 378
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 205683f1-3ec2-4b0f-9629-2eb6663d0bdb (admin)",
"durationMs": 396
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "76b322dc-768b-491c-9974-d1193748fed9",
"appliedAt": "2026-10-19T14:54:18.141Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"contact": "894007378965",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"customer": "cus_SVCNLI1O4XXM5SFH",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"user": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb",
"privilegedRoles": [
"admin"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-privileged-account-flagged"
},
"attempts": 1,
"ref": "1776WJYKBN.10K1QC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:18.269Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:18.271Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "468a07dea834",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:17.299Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:17.698Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:17.703Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:18.141Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:18.270Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:18.271Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:54:17.299Z",
"updatedAt": "2026-10-19T14:54:18.271Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "551",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-privileged-account-flagged",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "privileged_account_flagged"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "privileged_account_flagged"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 894007378965",
"durationMs": 166
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_SVCNLI1O4XXM5SFH: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 378
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 205683f1-3ec2-4b0f-9629-2eb6663d0bdb (admin)",
"durationMs": 396
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "76b322dc-768b-491c-9974-d1193748fed9",
"appliedAt": "2026-10-19T14:54:18.141Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"contact": "894007378965",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"customer": "cus_SVCNLI1O4XXM5SFH",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"user": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb",
"privilegedRoles": [
"admin"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-privileged-account-flagged"
},
"attempts": 1,
"ref": "1776WJYKBN.10K1QC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:18.269Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:18.271Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "468a07dea834",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:17.299Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:17.698Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:17.703Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:18.141Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:18.270Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:18.271Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:54:17.299Z",
"updatedAt": "2026-10-19T14:54:18.271Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-privileged-account-flagged",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "privileged_account_flagged"
}
}Server returned
HTTP 200
{
"runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "privileged_account_flagged"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 894007378965",
"durationMs": 166
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_SVCNLI1O4XXM5SFH: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 378
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 205683f1-3ec2-4b0f-9629-2eb6663d0bdb (admin)",
"durationMs": 396
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "76b322dc-768b-491c-9974-d1193748fed9",
"appliedAt": "2026-10-19T14:54:18.141Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"contact": "894007378965",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"customer": "cus_SVCNLI1O4XXM5SFH",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"user": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb",
"privilegedRoles": [
"admin"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-privileged-account-flagged"
},
"attempts": 1,
"ref": "1776WJYKBN.10K1QC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:18.269Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:18.271Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "468a07dea834",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:17.299Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:17.698Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:17.703Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:18.141Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:18.270Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:18.271Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:18.763Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:54:17.299Z",
"updatedAt": "2026-10-19T14:54:18.763Z",
"duplicate": true
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "551",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-privileged-account-flagged",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "privileged_account_flagged"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "privileged_account_flagged"
},
"duplicateStarts": 1,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 894007378965",
"durationMs": 166
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_SVCNLI1O4XXM5SFH: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 378
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 205683f1-3ec2-4b0f-9629-2eb6663d0bdb (admin)",
"durationMs": 396
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "76b322dc-768b-491c-9974-d1193748fed9",
"appliedAt": "2026-10-19T14:54:18.141Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"contact": "894007378965",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"customer": "cus_SVCNLI1O4XXM5SFH",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"user": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb",
"privilegedRoles": [
"admin"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-privileged-account-flagged",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-privileged-account-flagged"
},
"attempts": 1,
"ref": "1776WJYKBN.10K1QC",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:18.269Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:18.271Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "468a07dea834",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:17.299Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:17.698Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:17.703Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:18.141Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:18.270Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:18.271Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:18.763Z",
"msg": "duplicate start ignored"
}
],
"createdAt": "2026-10-19T14:54:17.299Z",
"updatedAt": "2026-10-19T14:54:18.763Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
privileged_account_flaggedApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
A real stored admin membership is detected and erasure waits for approval
expected exactly 1, found 1; stable under 2 repeats (1)
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (8)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "894007378965",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "247",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/dbd91b23",
"email_verified": true,
"external_id": "ext_492658dac4ea422d9be9aceb48",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_SVCNLI1O4XXM5SFH",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 13,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [
{
"object": "organization_membership",
"user_id": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb",
"organization_id": "150af516-d536-4952-9015-a0c7b0667503",
"status": "active",
"role": {
"slug": "admin"
},
"roles": [
{
"slug": "admin"
}
],
"id": "om_V9H7K5LDXYS9FA4HZ9JK1XAZI6"
}
],
"list_metadata": {
"before": "om_V9H7K5LDXYS9FA4HZ9JK1XAZI6",
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-privileged-account-flagged: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-privileged-account-flagged, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 468a07dea834. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (account holds admin: security must confirm)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-privileged-account-flagged: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-privileged-account-flagged, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 468a07dea834. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (account holds admin: security must confirm)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "76b322dc-768b-491c-9974-d1193748fed9"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "583",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-privileged-account-flagged: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-privileged-account-flagged, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 468a07dea834. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (account holds admin: security must confirm)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-privileged-account-flagged (GDPR, due 2026-11-14, 25d left) subject 468a07dea834: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_f4560229bd3f467ca2beb6c94f",
"client_msg_id": "cli_995cb733708a46b99f91688233",
"name": "item-2bbb4f",
"old_name": "Sample Old",
"parent_user_id": "par_c11204e1f8a347ffb509b7f894",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "1776WJYKBN.10K1QC"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "216",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-privileged-account-flagged (GDPR, due 2026-11-14, 25d left) subject 468a07dea834: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
A subscription created by an independent operator after discovery prevents billing erasure and the completion draft
hold_rechecked_at_writeWhat we probed
A subscription created by an independent operator after discovery prevents billing erasure and the completion draft
How we probed it
Frozen intended probe steps. Recorded requests show what actually ran.
POST /invocationsdeclared_external_inputPOST /invocationsPOST /invocations
Expected vs actual
| Check | Expected | Actual | Result |
|---|---|---|---|
| stripe · customers | 1 | 1 | ✓ Passed |
Counts are derived from saved provider records using declared filters; original verdict unchanged.
Requests and responses
01GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs
This request had no body.
Server returned
HTTP 200
{
"runs": []
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json",
"content-length": "11"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
02POST /invocations200
We sent
POST /invocations
{
"action": "start",
"runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-hold-rechecked-at-write",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hold_rechecked_at_write"
}
}Server returned
HTTP 200
{
"runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "AWAITING_APPROVAL",
"closed": false,
"outcome": "ok",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hold_rechecked_at_write"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 571462475593",
"durationMs": 167
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_455D72PONKQRDNY9: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 282
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"durationMs": 335
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "41e0b96f-2c5b-4da3-8698-d92a3525d1cb",
"appliedAt": "2026-10-19T14:54:20.847Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"contact": "571462475593",
"method": "gdpr-delete (permanent)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"customer": "cus_455D72PONKQRDNY9",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 0,
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"user": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"privilegedRoles": []
},
"attempts": 0,
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "pending_approval",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 0,
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-hold-rechecked-at-write"
},
"attempts": 1,
"ref": "17M37KF43D.3WSJZW",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:20.999Z",
"reconciled": null
}
],
"counts": {
"applied": 2,
"failed": 0,
"pendingApproval": 4,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:20.999Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9601000a5c88",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:19.488Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:19.827Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:19.831Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:20.847Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:20.999Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:20.999Z",
"msg": "awaiting approval"
}
],
"createdAt": "2026-10-19T14:54:19.488Z",
"updatedAt": "2026-10-19T14:54:20.999Z",
"duplicate": false
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "539",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "start",
"runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed",
"input": {
"requestId": "DSR-hold-rechecked-at-write",
"subject": {
"email": "[email protected]",
"name": "Erin Example"
},
"regulation": "gdpr",
"receivedAt": "2026-10-15T09:00:00Z",
"verification": {
"method": "email_link",
"verifiedBy": "privacy-portal"
},
"privacyChannel": "C0BILLING01",
"approvers": [
"U_DPO"
]
},
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hold_rechecked_at_write"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
03stripe · POST /v1/subscriptions200 · trialing
We sent
POST /v1/subscriptions
{
"customer": "cus_455D72PONKQRDNY9",
"items": [
{
"price": "price_1Pro_Monthly_USD"
}
],
"trial_period_days": 30
}Server returned
HTTP 200
{
"application": null,
"application_fee_percent": null,
"automatic_tax": {
"disabled_reason": "requires_location_inputs",
"enabled": true,
"liability": null
},
"billing_cycle_anchor": 21,
"billing_cycle_anchor_config": null,
"billing_mode": {
"flexible": null,
"type": "classic"
},
"billing_thresholds": null,
"cancel_at": null,
"cancel_at_period_end": false,
"canceled_at": null,
"cancellation_details": null,
"collection_method": "charge_automatically",
"created": 18,
"currency": "usd",
"customer": "cus_455D72PONKQRDNY9",
"customer_account": null,
"days_until_due": null,
"default_payment_method": null,
"default_source": null,
"default_tax_rates": null,
"description": null,
"discounts": [
"sample-value"
],
"ended_at": null,
"id": "sub_CFGIXRSTQ8OMHD87CT7CEMNY",
"invoice_settings": {
"account_tax_ids": null,
"issuer": {
"type": "account"
}
},
"items": {
"object": "list",
"data": [
{
"object": "subscription_item",
"price": {
"id": "price_1Pro_Monthly_USD",
"object": "price",
"active": true,
"currency": "usd",
"unit_amount": 4900,
"unit_amount_decimal": "4900",
"product": "prod_SaaS_ProPlan",
"type": "recurring",
"recurring": {
"interval": "month",
"interval_count": 1,
"usage_type": "licensed",
"aggregate_usage": null
},
"billing_scheme": "per_unit",
"livemode": false,
"created": "2024-06-01T08:00:00Z",
"metadata": {}
},
"quantity": 1,
"subscription": "sub_CFGIXRSTQ8OMHD87CT7CEMNY"
}
],
"has_more": false,
"url": "/v1/subscription_items?subscription=sub_CFGIXRSTQ8OMHD87CT7CEMNY"
},
"latest_invoice": "in_JDH7H2701KC5A9VQ116DYE8S",
"livemode": false,
"metadata": {},
"next_pending_invoice_item_invoice": null,
"object": "subscription",
"on_behalf_of": null,
"pause_collection": null,
"payment_settings": null,
"pending_invoice_item_interval": null,
"pending_setup_intent": null,
"pending_update": null,
"schedule": null,
"start_date": 77,
"status": "trialing",
"test_clock": null,
"transfer_data": null,
"trial_end": 1795013661,
"trial_settings": null,
"trial_start": 1792421661
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
Request headers were not saved in this run.
Response headers were not saved in this run.
Rebuilt curl
curl --request POST '<STRIPE_TWIN_BASE_URL>/v1/subscriptions' \
--data-raw '{
"customer": "cus_455D72PONKQRDNY9",
"items": [
{
"price": "price_1Pro_Monthly_USD"
}
],
"trial_period_days": 30
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
04POST /invocations200
We sent
POST /invocations
{
"action": "decide",
"runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}Server returned
HTTP 200
{
"runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hold_rechecked_at_write"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 571462475593",
"durationMs": 167
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_455D72PONKQRDNY9: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 282
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"durationMs": 335
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "41e0b96f-2c5b-4da3-8698-d92a3525d1cb",
"appliedAt": "2026-10-19T14:54:20.847Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"contact": "571462475593",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "571462475593",
"appliedAt": "2026-10-19T14:54:21.445Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "failed",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"customer": "cus_455D72PONKQRDNY9",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"error": "FatalError: cus_455D72PONKQRDNY9 has an active subscription again (sub_CFGIXRSTQ8OMHD87CT7CEMNY); erasure held",
"errorCode": "fatal",
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"user": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"privilegedRoles": []
},
"attempts": 1,
"ref": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"appliedAt": "2026-10-19T14:54:21.769Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "failed",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"error": "FatalError: erasure not done yet: stripe.anonymize_customer",
"errorCode": "fatal",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-hold-rechecked-at-write"
},
"attempts": 1,
"ref": "17M37KF43D.3WSJZW",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:20.999Z",
"reconciled": null
}
],
"counts": {
"applied": 4,
"failed": 2,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:20.999Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:54:21.329Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9601000a5c88",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:19.488Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:19.827Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:19.831Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:20.847Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:20.999Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:20.999Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:21.329Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:21.445Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:21.655Z",
"msg": "stripe.anonymize_customer: failed (fatal)"
},
{
"at": "2026-10-19T14:54:21.769Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:21.770Z",
"msg": "gmail.draft_completion: failed (fatal)"
},
{
"at": "2026-10-19T14:54:21.770Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-19T14:54:19.488Z",
"updatedAt": "2026-10-19T14:54:21.770Z",
"result": "recorded"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "127",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
05POST /invocations200
We sent
POST /invocations
{
"action": "decide",
"runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}Server returned
HTTP 200
{
"runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hold_rechecked_at_write"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 571462475593",
"durationMs": 167
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_455D72PONKQRDNY9: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 282
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"durationMs": 335
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "41e0b96f-2c5b-4da3-8698-d92a3525d1cb",
"appliedAt": "2026-10-19T14:54:20.847Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"contact": "571462475593",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "571462475593",
"appliedAt": "2026-10-19T14:54:21.445Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "failed",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"customer": "cus_455D72PONKQRDNY9",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"error": "FatalError: cus_455D72PONKQRDNY9 has an active subscription again (sub_CFGIXRSTQ8OMHD87CT7CEMNY); erasure held",
"errorCode": "fatal",
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"user": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"privilegedRoles": []
},
"attempts": 1,
"ref": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"appliedAt": "2026-10-19T14:54:21.769Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "failed",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"error": "FatalError: erasure not done yet: stripe.anonymize_customer",
"errorCode": "fatal",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-hold-rechecked-at-write"
},
"attempts": 1,
"ref": "17M37KF43D.3WSJZW",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:20.999Z",
"reconciled": null
}
],
"counts": {
"applied": 4,
"failed": 2,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:20.999Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:54:21.329Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9601000a5c88",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:19.488Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:19.827Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:19.831Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:20.847Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:20.999Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:20.999Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:21.329Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:21.445Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:21.655Z",
"msg": "stripe.anonymize_customer: failed (fatal)"
},
{
"at": "2026-10-19T14:54:21.769Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:21.770Z",
"msg": "gmail.draft_completion: failed (fatal)"
},
{
"at": "2026-10-19T14:54:21.770Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-19T14:54:19.488Z",
"updatedAt": "2026-10-19T14:54:21.960Z",
"result": "already_decided"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]",
"content-length": "127",
"content-type": "application/json"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \
--header 'accept: */*' \
--header 'user-agent: python-httpx/0.28.1' \
--header 'host: fetchsandbox.com' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--header 'x-fetchsandbox-relay: [redacted]' \
--header 'authorization: [redacted]' \
--header 'content-type: application/json' \
--data-raw '{
"action": "decide",
"runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed",
"decision": "approve",
"userId": "U_DPO"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
06GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs200
We sent
GET /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs
This request had no body.
Server returned
HTTP 200
{
"runs": [
{
"runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed",
"workflow": "privacy-erasure",
"org": "Legal",
"team": "privacy-ops",
"phase": "DONE",
"closed": true,
"outcome": "partial",
"requestedBy": {
"userId": "U_FETCHSANDBOX"
},
"labels": {
"fs_run": "vr_1fae88cbe29d455aa062b167be9977ed",
"fs_case": "hold_rechecked_at_write"
},
"duplicateStarts": 0,
"agents": [
{
"name": "crm-records",
"status": "ok",
"summary": "HubSpot contact 571462475593",
"durationMs": 167
},
{
"name": "billing-records",
"status": "ok",
"summary": "cus_455D72PONKQRDNY9: 0 live subscription(s), 0 open invoice(s)",
"durationMs": 282
},
{
"name": "identity-records",
"status": "ok",
"summary": "WorkOS user 9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"durationMs": 335
},
{
"name": "erasure-plan",
"status": "ok",
"summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14",
"durationMs": 0
}
],
"actions": [
{
"id": "asana.dsar_record",
"kind": "asana.dsar_record",
"provider": "asana",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"deadline": "2026-11-14",
"verified": true
},
"attempts": 1,
"ref": "41e0b96f-2c5b-4da3-8698-d92a3525d1cb",
"appliedAt": "2026-10-19T14:54:20.847Z",
"reconciled": null
},
{
"id": "hubspot.erase_contact",
"kind": "hubspot.erase_contact",
"provider": "hubspot",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"contact": "571462475593",
"method": "gdpr-delete (permanent)"
},
"attempts": 1,
"ref": "571462475593",
"appliedAt": "2026-10-19T14:54:21.445Z",
"reconciled": null
},
{
"id": "stripe.anonymize_customer",
"kind": "stripe.anonymize_customer",
"provider": "stripe",
"agent": "erasure-plan",
"gate": "approval",
"status": "failed",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"customer": "cus_455D72PONKQRDNY9",
"keeps": "invoices and payments (tax retention)"
},
"attempts": 1,
"error": "FatalError: cus_455D72PONKQRDNY9 has an active subscription again (sub_CFGIXRSTQ8OMHD87CT7CEMNY); erasure held",
"errorCode": "fatal",
"reconciled": null
},
{
"id": "workos.delete_user",
"kind": "workos.delete_user",
"provider": "workos",
"agent": "erasure-plan",
"gate": "approval",
"status": "applied",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"user": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"privilegedRoles": []
},
"attempts": 1,
"ref": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"appliedAt": "2026-10-19T14:54:21.769Z",
"reconciled": null
},
{
"id": "gmail.draft_completion",
"kind": "gmail.draft_completion",
"provider": "gmail",
"agent": "erasure-plan",
"gate": "approval",
"status": "failed",
"summary": {
"requestId": "DSR-hold-rechecked-at-write",
"sent": false,
"after": [
"hubspot.erase_contact",
"stripe.anonymize_customer",
"workos.delete_user"
]
},
"attempts": 1,
"error": "FatalError: erasure not done yet: stripe.anonymize_customer",
"errorCode": "fatal",
"reconciled": null
},
{
"id": "slack.post_dsr",
"kind": "slack.post_dsr",
"provider": "slack",
"agent": "erasure-plan",
"gate": "auto",
"status": "applied",
"summary": {
"channel": "C0BILLING01",
"requestId": "DSR-hold-rechecked-at-write"
},
"attempts": 1,
"ref": "17M37KF43D.3WSJZW",
"detail": {
"channel": "C0BILLING01"
},
"appliedAt": "2026-10-19T14:54:20.999Z",
"reconciled": null
}
],
"counts": {
"applied": 4,
"failed": 2,
"pendingApproval": 0,
"skipped": 0,
"rejected": 0
},
"approval": {
"approvers": [
"U_DPO"
],
"expiresAt": "2026-10-20T14:54:20.999Z",
"decision": "approve",
"decidedBy": "U_DPO",
"decidedAt": "2026-10-19T14:54:21.329Z"
},
"output": {
"verified": true,
"complete": true,
"deadline": "2026-11-14T09:00:00.000Z",
"daysLeft": 25,
"subjectRef": "9601000a5c88",
"decisions": {
"hubspot": "erase",
"stripe": "anonymize",
"workos": "erase"
}
},
"events": [
{
"at": "2026-10-19T14:54:19.488Z",
"msg": "started by U_FETCHSANDBOX"
},
{
"at": "2026-10-19T14:54:19.827Z",
"msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok"
},
{
"at": "2026-10-19T14:54:19.831Z",
"msg": "planned 6 action(s): 4 need approval"
},
{
"at": "2026-10-19T14:54:20.847Z",
"msg": "asana.dsar_record: applied"
},
{
"at": "2026-10-19T14:54:20.999Z",
"msg": "slack.post_dsr: applied"
},
{
"at": "2026-10-19T14:54:20.999Z",
"msg": "awaiting approval"
},
{
"at": "2026-10-19T14:54:21.329Z",
"msg": "approved by U_DPO"
},
{
"at": "2026-10-19T14:54:21.445Z",
"msg": "hubspot.erase_contact: applied"
},
{
"at": "2026-10-19T14:54:21.655Z",
"msg": "stripe.anonymize_customer: failed (fatal)"
},
{
"at": "2026-10-19T14:54:21.769Z",
"msg": "workos.delete_user: applied"
},
{
"at": "2026-10-19T14:54:21.770Z",
"msg": "gmail.draft_completion: failed (fatal)"
},
{
"at": "2026-10-19T14:54:21.770Z",
"msg": "done (partial)"
}
],
"createdAt": "2026-10-19T14:54:19.488Z",
"updatedAt": "2026-10-19T14:54:21.960Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs
{
"accept": "*/*",
"user-agent": "python-httpx/0.28.1",
"host": "fetchsandbox.com",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"x-fetchsandbox-relay": "[redacted]",
"authorization": "[redacted]"
}{
"content-type": "application/json"
}Rebuilt curl
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Evidence
- Run
vr_1fae88cbe29d455aa062b167be9977ed- App version (declared)
acme-ops-privacy-erasure-1.0…- Source receipt
- Source receipt ↗
Technical reference
hold_rechecked_at_writeApp version (declared): acme-ops-privacy-erasure-1.0.0-639dac1
A subscription created by an independent operator after discovery prevents billing erasure and the completion draft
expected exactly 1, found 1
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Provider traffic in the same time window (11)
These calls were recorded during the same request window as this check but are not directly linked to it. Timing alone is not proof that they caused or were caused by this check.
hubspot · POST /crm/v3/objects/contacts/search · HTTP 200
We sent
POST /crm/v3/objects/contacts/search
{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}Server returned
HTTP 200
{
"total": 1,
"results": [
{
"properties": {
"email": "[email protected]",
"firstname": "Erin"
},
"id": "571462475593",
"archived": false,
"createdAt": "2019-10-30T03:30:17.883Z",
"updatedAt": "2019-12-07T16:50:06.678Z"
}
]
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search
{
"host": "fetchsandbox.com",
"content-length": "244",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"filterGroups": [
{
"filters": [
{
"propertyName": "email",
"operator": "EQ",
"value": "[email protected]"
}
]
}
],
"properties": [
"email",
"firstname",
"lastname",
"company",
"lifecyclestage",
"hs_lead_status",
"hubspot_owner_id"
],
"limit": 10
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/customers · HTTP 200
We sent
GET /v1/customers
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"name": "Erin Example",
"phone": "+15550100",
"id": "cus_455D72PONKQRDNY9",
"address": null,
"balance": 0,
"business_name": "Sample Business",
"cash_balance": null,
"created": 54,
"currency": "USD",
"customer_account": null,
"default_source": null,
"delinquent": false,
"description": null,
"discount": null,
"individual_name": "Sample Individual",
"invoice_prefix": null,
"livemode": false,
"object": "customer",
"preferred_locales": null,
"shipping": null,
"tax_exempt": "exempt",
"test_clock": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/customers"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/customers
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/users · HTTP 200
We sent
GET /user_management/users
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"email": "[email protected]",
"first_name": "Erin",
"id": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8",
"object": "user",
"last_name": "Sample Last",
"profile_picture_url": "https://example.com/04bd947a",
"email_verified": true,
"external_id": "ext_cea2a55089f945eb91247f3d57",
"last_sign_in_at": "2025-06-25T19:07:33.155Z",
"locale": "en",
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
],
"object": "list",
"list_metadata": {
"before": "user_01HXYZ123456789ABCDEFGHIJ",
"after": "user_01HXYZ987654321KJIHGFEDCBA"
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/invoices · HTTP 200
We sent
GET /v1/invoices
No body shown for this read.
Server returned
HTTP 200
{
"data": [],
"has_more": false,
"object": "list",
"url": "/v1/invoices"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · GET /user_management/organization_memberships · HTTP 200
We sent
GET /user_management/organization_memberships
No body shown for this read.
Server returned
HTTP 200
{
"object": "list",
"data": [],
"list_metadata": {
"before": null,
"after": null
}
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
asana · POST /tasks · HTTP 201
We sent
POST /tasks
{
"data": {
"name": "DSR-hold-rechecked-at-write: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-hold-rechecked-at-write, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9601000a5c88. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}Server returned
HTTP 201
{
"data": {
"name": "DSR-hold-rechecked-at-write: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-hold-rechecked-at-write, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9601000a5c88. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
},
"id": "41e0b96f-2c5b-4da3-8698-d92a3525d1cb"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/f7899cfff6/tasks
{
"host": "fetchsandbox.com",
"content-length": "548",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"data": {
"name": "DSR-hold-rechecked-at-write: GDPR erasure, due 2026-11-14",
"notes": "GDPR erasure request DSR-hold-rechecked-at-write, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9601000a5c88. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.",
"workspace": "acme-privacy",
"due_on": "2026-11-14"
}
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
slack · POST /api/chat.postMessage · HTTP 200
We sent
POST /api/chat.postMessage
{
"channel": "C0BILLING01",
"text": ":lock: DSR-hold-rechecked-at-write (GDPR, due 2026-11-14, 25d left) subject 9601000a5c88: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}Server returned
HTTP 200
{
"channel": "C0BILLING01",
"message": {
"bot_id": "bot_96119a32bd9940159999c9cd03",
"client_msg_id": "cli_4a0cf45fa52f495ab0fb93c8f9",
"name": "item-14c420",
"old_name": "Sample Old",
"parent_user_id": "par_d620830fb6a8494083f0bd2798",
"permalink": "my-resource",
"reply_count": 0,
"reply_users_count": 0,
"text": "Sample text content",
"ts": "sample-value",
"type": "default",
"unread_count": 0,
"username": "acme-corp"
},
"ok": true,
"ts": "17M37KF43D.3WSJZW"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage
{
"host": "fetchsandbox.com",
"content-length": "213",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"channel": "C0BILLING01",
"text": ":lock: DSR-hold-rechecked-at-write (GDPR, due 2026-11-14, 25d left) subject 9601000a5c88: hubspot erase, stripe anonymize, workos erase.",
"unfurl_links": false,
"unfurl_media": false
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
hubspot · POST /crm/v3/objects/contacts/gdpr-delete · HTTP 204
We sent
POST /crm/v3/objects/contacts/gdpr-delete
{
"objectId": "571462475593"
}Server returned
HTTP 204
Response body was not recorded.
HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete
{
"host": "fetchsandbox.com",
"content-length": "27",
"user-agent": "node",
"content-type": "application/json; charset=utf-8",
"accept": "application/json",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed"
}Response headers were not saved in this run.
Rebuilt curl
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete' \
--header 'host: fetchsandbox.com' \
--header 'user-agent: node' \
--header 'content-type: application/json; charset=utf-8' \
--header 'accept: application/json' \
--header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \
--data-raw '{
"objectId": "571462475593"
}'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
stripe · GET /v1/subscriptions · HTTP 200
We sent
GET /v1/subscriptions
No body shown for this read.
Server returned
HTTP 200
{
"data": [
{
"customer": "cus_455D72PONKQRDNY9",
"items": {
"object": "list",
"data": [
{
"object": "subscription_item",
"price": {
"id": "price_1Pro_Monthly_USD",
"object": "price",
"active": true,
"currency": "usd",
"unit_amount": 4900,
"unit_amount_decimal": "4900",
"product": "prod_SaaS_ProPlan",
"type": "recurring",
"recurring": {
"interval": "month",
"interval_count": 1,
"usage_type": "licensed",
"aggregate_usage": null
},
"billing_scheme": "per_unit",
"livemode": false,
"created": "2024-06-01T08:00:00Z",
"metadata": {}
},
"quantity": 1,
"subscription": "sub_CFGIXRSTQ8OMHD87CT7CEMNY",
"created": 16,
"current_period_end": 57,
"current_period_start": 71,
"discounts": [
"sample-value"
],
"id": "sample-value",
"metadata": {}
}
],
"has_more": false,
"url": "/v1/subscription_items?subscription=sub_CFGIXRSTQ8OMHD87CT7CEMNY"
},
"status": "trialing",
"object": "subscription",
"currency": "usd",
"trial_start": 1792421661,
"trial_end": 1795013661,
"canceled_at": null,
"ended_at": null,
"cancel_at_period_end": false,
"collection_method": "charge_automatically",
"latest_invoice": "in_JDH7H2701KC5A9VQ116DYE8S",
"default_payment_method": null,
"id": "sub_CFGIXRSTQ8OMHD87CT7CEMNY",
"application": null,
"application_fee_percent": null,
"automatic_tax": {
"disabled_reason": "requires_location_inputs",
"enabled": true,
"liability": null
},
"billing_cycle_anchor": 21,
"billing_cycle_anchor_config": null,
"billing_mode": {
"flexible": null,
"type": "classic"
},
"billing_thresholds": null,
"cancel_at": null,
"cancellation_details": null,
"created": 18,
"customer_account": null,
"days_until_due": null,
"default_source": null,
"default_tax_rates": null,
"description": null,
"discounts": [
"sample-value"
],
"invoice_settings": {
"account_tax_ids": null,
"issuer": {
"type": "account"
}
},
"livemode": false,
"metadata": {},
"next_pending_invoice_item_invoice": null,
"on_behalf_of": null,
"pause_collection": null,
"payment_settings": null,
"pending_invoice_item_interval": null,
"pending_setup_intent": null,
"pending_update": null,
"schedule": null,
"start_date": 77,
"test_clock": null,
"transfer_data": null,
"trial_settings": null
}
],
"has_more": false,
"object": "list",
"url": "/v1/subscriptions"
}HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
workos · DELETE /user_management/users/9eab4cb9-976d-4394-88ae-c7c1ecb24fb8 · HTTP 204
We sent
DELETE /user_management/users/9eab4cb9-976d-4394-88ae-c7c1ecb24fb8
No body was saved. This receipt cannot tell whether it was empty or not captured.
Server returned
HTTP 204
Response body was not recorded.
HTTP status is a response, not the scenario verdict. State shown here is reported by the app.
Technical details
Headers and timing
https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/9eab4cb9-976d-4394-88ae-c7c1ecb24fb8
{
"host": "fetchsandbox.com",
"user-agent": "node",
"x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed",
"accept": "application/json"
}Response headers were not saved in this run.
Rebuilt curl
curl --request DELETE 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/9eab4cb9-976d-4394-88ae-c7c1ecb24fb8' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Run details
Run vr_1fae88cbe29d455aa062b167be9977ed
19 required checks for the declared application workflow. Results apply to the recorded observation windows.
19 passed · 0 failed · 0 not checked
Coverage beyond the declared checks
Passing these checks does not establish every production behavior.
- Normal successful behavior · Linked checks passed · baseline
- The right user gets the right access · Linked checks passed · approve_by_stranger_refused, unverified_no_erasure, privileged_account_flagged
- Valid data and boundary values · Linked checks passed · invalid_input_rejected
- Correct amount, currency and quantity · Proposed as not applicable
- Duplicate requests and events · Linked checks passed · duplicate_start
- Requests arriving together · Linked checks passed · concurrent_start
- Out-of-order and stale events · Linked checks passed · hold_rechecked_at_write
- Delayed or missing events · Proposed as not applicable
- Provider authentication and permissions · Linked checks passed · workos_auth_failure, stripe_auth_failure
- Rate limits, server failures and timeouts · Linked checks passed · hubspot_rate_limited, slack_rate_limited
- Completed action with a lost response · Proposed as not applicable
- Partial completion and recovery · Linked checks passed · workos_auth_failure, hubspot_rate_limited
- Restart without losing or duplicating work · Linked checks passed · restart_while_parked
- Finding and repairing inconsistent state · Linked checks passed · approve_erases, crm_erasure_readback
- Cancellation, refunds and access · Linked checks passed · rejected, active_subscription_retains_billing
- Data ownership and privacy · Linked checks passed · baseline, crm_only, nothing_held
- Test isolation and cleanup · Linked checks passed · baseline, concurrent_start
Applicability comes from the proposed plan. Test results come from the recorded execution.
App version: acme-ops-privacy-erasure-1.0.0-639dac1 (declared)
Measured run: 2026-10-19T14:52:37.733701+00:00 – 2026-10-19T14:54:22.433870+00:00
Recorded execution
Recorded application requests and state reads for the declared HTTP contract.
The timeline below merges all requests from this run, sorted by recorded timestamp.
Recorded requests and deliveries: 345/377 successful · checkpoints: 19/19 recorded
Sanitized request and event timeline (373 events)
- · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:37.917534+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-baseline", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "baseline" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:39.668719+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "479", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-baseline", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "baseline" } }Recorded response · HTTP 200
{ "runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "baseline" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 614106600705", "durationMs": 242 }, { "name": "billing-records", "status": "ok", "summary": "cus_TTG2J93TE60XUPRL: 0 live subscription(s), 0 open invoice(s)", "durationMs": 407 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user dc94f494-0d63-4135-ae86-3202569c544b", "durationMs": 314 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-baseline", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "7b25c0e6-bb83-492b-ba0c-faac5702148e", "appliedAt": "2026-10-19T14:52:38.550Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "contact": "614106600705", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "customer": "cus_TTG2J93TE60XUPRL", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "user": "dc94f494-0d63-4135-ae86-3202569c544b", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-baseline" }, "attempts": 1, "ref": "17RLRYY34J.K5O4ES", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:39.473Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:39.474Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "84db96913b1d", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:38.013Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:38.425Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:38.428Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:38.550Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:39.473Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:39.474Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:52:38.013Z", "updatedAt": "2026-10-19T14:52:39.474Z", "duplicate": false } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 531d1ba13ce5 · processing 2.14ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.14ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "229", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "614106600705", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request 07a23ac45782 · processing 1.9ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.9ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "dc94f494-0d63-4135-ae86-3202569c544b", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/a8d470c3", "email_verified": true, "external_id": "ext_f3f1f837f7d3405a9515ec06a5", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 4b55f8da47e1 · processing 16.59ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 16.59ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_TTG2J93TE60XUPRL", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 11, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request 926459ab555e · processing 0.48ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.48ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 38aca66a0ea2 · processing 6.97ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.97ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request da101d060b21 · processing 5.87ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 5.87ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 5e7051e1cc0c · processing 13.7ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-baseline: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-baseline, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 84db96913b1d. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.7ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "518", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-baseline: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-baseline, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 84db96913b1d. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-baseline: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-baseline, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 84db96913b1d. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "7b25c0e6-bb83-492b-ba0c-faac5702148e" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 9753dc6e261a · processing 12.59ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-baseline (GDPR, due 2026-11-14, 25d left) subject 84db96913b1d: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.59ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "198", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-baseline (GDPR, due 2026-11-14, 25d left) subject 84db96913b1d: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_c0113346e3c44c9fa01d3d5f99", "client_msg_id": "cli_502143e49ea248a6842ba2f773", "name": "item-b3ab2f", "old_name": "Sample Old", "parent_user_id": "par_4c542e9052064249a84b894f25", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17RLRYY34J.K5O4ES" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:40.004922+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "baseline" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 614106600705", "durationMs": 242 }, { "name": "billing-records", "status": "ok", "summary": "cus_TTG2J93TE60XUPRL: 0 live subscription(s), 0 open invoice(s)", "durationMs": 407 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user dc94f494-0d63-4135-ae86-3202569c544b", "durationMs": 314 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-baseline", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "7b25c0e6-bb83-492b-ba0c-faac5702148e", "appliedAt": "2026-10-19T14:52:38.550Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "contact": "614106600705", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "customer": "cus_TTG2J93TE60XUPRL", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "user": "dc94f494-0d63-4135-ae86-3202569c544b", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-baseline" }, "attempts": 1, "ref": "17RLRYY34J.K5O4ES", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:39.473Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:39.474Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "84db96913b1d", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:38.013Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:38.425Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:38.428Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:38.550Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:39.473Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:39.474Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:52:38.013Z", "updatedAt": "2026-10-19T14:52:39.474Z" } ] } - · POST app request /invocations · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-baseline", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "baseline" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:40.258106+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "479", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-baseline", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "baseline" } }Recorded response · HTTP 200
{ "runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "baseline" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 614106600705", "durationMs": 242 }, { "name": "billing-records", "status": "ok", "summary": "cus_TTG2J93TE60XUPRL: 0 live subscription(s), 0 open invoice(s)", "durationMs": 407 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user dc94f494-0d63-4135-ae86-3202569c544b", "durationMs": 314 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-baseline", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "7b25c0e6-bb83-492b-ba0c-faac5702148e", "appliedAt": "2026-10-19T14:52:38.550Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "contact": "614106600705", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "customer": "cus_TTG2J93TE60XUPRL", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "user": "dc94f494-0d63-4135-ae86-3202569c544b", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-baseline" }, "attempts": 1, "ref": "17RLRYY34J.K5O4ES", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:39.473Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:39.474Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "84db96913b1d", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:38.013Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:38.425Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:38.428Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:38.550Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:39.473Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:39.474Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:40.103Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:38.013Z", "updatedAt": "2026-10-19T14:52:40.103Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs · baseline · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/baseline/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:40.595271+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "baseline-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "baseline" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 614106600705", "durationMs": 242 }, { "name": "billing-records", "status": "ok", "summary": "cus_TTG2J93TE60XUPRL: 0 live subscription(s), 0 open invoice(s)", "durationMs": 407 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user dc94f494-0d63-4135-ae86-3202569c544b", "durationMs": 314 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-baseline", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "7b25c0e6-bb83-492b-ba0c-faac5702148e", "appliedAt": "2026-10-19T14:52:38.550Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "contact": "614106600705", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "customer": "cus_TTG2J93TE60XUPRL", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "user": "dc94f494-0d63-4135-ae86-3202569c544b", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-baseline", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-baseline" }, "attempts": 1, "ref": "17RLRYY34J.K5O4ES", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:39.473Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:39.474Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "84db96913b1d", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:38.013Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:38.425Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:38.428Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:38.550Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:39.473Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:39.474Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:40.103Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:38.013Z", "updatedAt": "2026-10-19T14:52:40.103Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs · approve erases · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:40.808858+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · approve erases · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-approve-erases", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:43.053787+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "503", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-approve-erases", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" } }Recorded response · HTTP 200
{ "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 736462240085", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)", "durationMs": 386 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "durationMs": 220 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78", "appliedAt": "2026-10-19T14:52:41.454Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-erases", "contact": "736462240085", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-erases", "customer": "cus_7M79SIC2RDSYIUZ5", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-erases", "user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-erases", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-erases" }, "attempts": 1, "ref": "171JJ2W18U.5KAYHR", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:41.587Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:41.589Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "c6968cd3f1d6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:40.891Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:41.280Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:41.283Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:41.454Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:41.587Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:41.589Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:52:40.891Z", "updatedAt": "2026-10-19T14:52:41.589Z", "duplicate": false } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request cd84735910e0 · processing 1.61ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.61ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/55332a99", "email_verified": true, "external_id": "ext_870d44ce913146f79c8468e449", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request c583317daba0 · processing 18.93ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 18.93ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_7M79SIC2RDSYIUZ5", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 39, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 29f4548d12c8 · processing 2.17ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.17ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "235", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "736462240085", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request 79bbb1495380 · processing 0.5ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.5ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request 94ec7fbc456d · processing 6.17ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.17ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 5b31eac69b46 · processing 6.01ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.01ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 95fac6a41713 · processing 15.61ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-approve-erases: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-approve-erases, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref c6968cd3f1d6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.61ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "530", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-approve-erases: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-approve-erases, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref c6968cd3f1d6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-approve-erases: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-approve-erases, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref c6968cd3f1d6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request fce8ef39d612 · processing 15ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-approve-erases (GDPR, due 2026-11-14, 25d left) subject c6968cd3f1d6: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "204", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-approve-erases (GDPR, due 2026-11-14, 25d left) subject c6968cd3f1d6: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_e1c5f0b7221049c49cf4457561", "client_msg_id": "cli_5c26fc03099f450bb2cf944082", "name": "item-6b4eaa", "old_name": "Sample Old", "parent_user_id": "par_b9ec4a118c63407cbe8496abd4", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "171JJ2W18U.5KAYHR" } - · POST app request /invocations · approve erases · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:43.822929+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "118", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }Recorded response · HTTP 200
{ "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 736462240085", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)", "durationMs": 386 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "durationMs": 220 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78", "appliedAt": "2026-10-19T14:52:41.454Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "contact": "736462240085", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "736462240085", "appliedAt": "2026-10-19T14:52:43.249Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "customer": "cus_7M79SIC2RDSYIUZ5", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_7M79SIC2RDSYIUZ5", "appliedAt": "2026-10-19T14:52:43.497Z", "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "privilegedRoles": [] }, "attempts": 1, "ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "appliedAt": "2026-10-19T14:52:43.609Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r9030766816237466", "appliedAt": "2026-10-19T14:52:43.720Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-erases" }, "attempts": 1, "ref": "171JJ2W18U.5KAYHR", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:41.587Z", "reconciled": null } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:41.589Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:43.146Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "c6968cd3f1d6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:40.891Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:41.280Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:41.283Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:41.454Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:41.587Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:41.589Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:43.146Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:52:43.249Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:52:43.497Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:52:43.609Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:52:43.721Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:52:43.722Z", "msg": "done (ok)" } ], "createdAt": "2026-10-19T14:52:40.891Z", "updatedAt": "2026-10-19T14:52:43.722Z", "result": "recorded" } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/gdpr-delete · HTTP 204 · request 69f77fa3f727 · processing 0.72ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "objectId": "736462240085" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.72ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "27", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "objectId": "736462240085" }Recorded response · HTTP 204
No response body was saved.
- · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request 39dbcc0254d3 · processing 6.64ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.64ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · POST stripe request · provider traffic · /v1/customers/cus_7M79SIC2RDSYIUZ5 · HTTP 200 · request 88d9dd68dd74 · processing 20.46ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_7M79SIC2RDSYIUZ5' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/x-www-form-urlencoded' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "email": "[email protected]", "name": "Erased customer", "phone": "", "description": "", "metadata": { "acme_erased": "DSR-approve-erases" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 20.46ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "136", "user-agent": "node", "content-type": "application/x-www-form-urlencoded", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "email": "[email protected]", "name": "Erased customer", "phone": "", "description": "", "metadata": { "acme_erased": "DSR-approve-erases" } }Recorded response · HTTP 200
{ "email": "[email protected]", "name": "Erased customer", "phone": "", "id": "cus_7M79SIC2RDSYIUZ5", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 39, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": "", "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "metadata": { "acme_erased": "DSR-approve-erases" } } - · DELETE workos request · provider traffic · /user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b · HTTP 204 · request de0075234fd5 · processing 1.08ms
- · POST gmail request · provider traffic · /gmail/v1/users/me/drafts · HTTP 200 · request 5e2714d1a1aa · processing 11.62ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItYXBwcm92ZS1lcmFzZXNAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItYXBwcm92ZS1lcmFzZXMgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDwwNjJlM2E3NTIwZmYxYWJkLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWFwcHJvdmUtZXJhc2VzIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 11.62ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "756", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItYXBwcm92ZS1lcmFzZXNAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItYXBwcm92ZS1lcmFzZXMgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDwwNjJlM2E3NTIwZmYxYWJkLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWFwcHJvdmUtZXJhc2VzIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }Recorded response · HTTP 200
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItYXBwcm92ZS1lcmFzZXNAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItYXBwcm92ZS1lcmFzZXMgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDwwNjJlM2E3NTIwZmYxYWJkLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWFwcHJvdmUtZXJhc2VzIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ", "payload": { "mimeType": "text/plain", "headers": [ { "name": "From", "value": "me" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Your data deletion request DSR-approve-erases is complete" }, { "name": "Message-ID", "value": "<[email protected]>" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/plain; charset=\"UTF-8\"" }, { "name": "Content-Transfer-Encoding", "value": "8bit" } ], "body": { "size": 280, "data": "SGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWFwcHJvdmUtZXJhc2VzIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }, "sizeEstimate": 550, "labelIds": [ "DRAFT" ], "id": "51685b77d9ce42e5" }, "user_id": "me", "id": "r9030766816237466" } - · POST app request /invocations · approve erases · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "reconcile", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:44.249898+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "83", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "reconcile", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response · HTTP 200
{ "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 736462240085", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)", "durationMs": 386 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "durationMs": 220 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78", "appliedAt": "2026-10-19T14:52:41.454Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:44.030Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "contact": "736462240085", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "736462240085", "appliedAt": "2026-10-19T14:52:43.249Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:52:44.033Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "customer": "cus_7M79SIC2RDSYIUZ5", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_7M79SIC2RDSYIUZ5", "appliedAt": "2026-10-19T14:52:43.497Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:44.090Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "privilegedRoles": [] }, "attempts": 1, "ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "appliedAt": "2026-10-19T14:52:43.609Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:52:44.090Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r9030766816237466", "appliedAt": "2026-10-19T14:52:43.720Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:43.899Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-erases" }, "attempts": 1, "ref": "171JJ2W18U.5KAYHR", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:41.587Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:43.899Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:41.589Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:43.146Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "c6968cd3f1d6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:40.891Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:41.280Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:41.283Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:41.454Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:41.587Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:41.589Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:43.146Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:52:43.249Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:52:43.497Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:52:43.609Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:52:43.721Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:52:43.722Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:52:44.091Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" } ], "createdAt": "2026-10-19T14:52:40.891Z", "updatedAt": "2026-10-19T14:52:44.091Z" } - · GET asana request · provider traffic · /tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78 · HTTP 200 · request c76309467e67 · processing 10.22ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 10.22ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": { "name": "DSR-approve-erases: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-approve-erases, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref c6968cd3f1d6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14", "created_by": { "gid": "1111", "resource_type": "default" }, "gid": "12345", "resource_subtype": "default_task", "resource_type": "task", "approval_status": "pending", "assigned_by": { "gid": "12345", "name": "item-ee45f4", "resource_type": "default" }, "assignee_status": "upcoming", "completed": false, "completed_by": { "gid": "12345", "name": "item-163d4d", "resource_type": "default" }, "created_at": "2012-02-22T02:06:58.147Z", "dependencies": [ { "gid": "12345", "resource_type": "default" } ], "dependents": [ { "gid": "12345", "resource_type": "default" } ], "external": { "data": "A blob of information", "gid": "my_gid" }, "hearted": true, "hearts": [ { "gid": "12345", "user": { "gid": "12345", "name": "item-1293b0", "resource_type": "default" } } ], "html_notes": "<body>Mittens <em>really</em> likes the stuff from Humboldt.</body>", "is_rendered_as_separator": false, "liked": true, "likes": [ { "gid": "12345", "user": { "gid": "12345", "name": "item-c0bfeb", "resource_type": "default" } } ], "memberships": [ { "project": { "gid": "12345", "name": "item-180366", "resource_type": "default" }, "section": { "gid": "12345", "name": "item-c7820b", "resource_type": "default" } } ], "modified_at": "2012-02-22T02:06:58.147Z", "num_hearts": 5, "num_likes": 5, "num_subtasks": 3, "assignee": { "gid": "12345", "name": "item-700ec6", "resource_type": "default" }, "assignee_section": { "gid": "12345", "name": "item-0d24b3", "resource_type": "default" }, "custom_fields": [ { "date_value": { "date": "2024-08-23", "date_time": "2024-08-23T22:00:00.000Z" }, "display_value": "blue", "enabled": true, "enum_options": [ { "color": "#cedf41", "enabled": true, "gid": "12345", "name": "item-8b95cc", "resource_type": "default" } ], "enum_value": { "color": "#f568f6", "enabled": true, "gid": "12345", "name": "item-7bbff8", "resource_type": "default" }, "gid": "12345", "id_prefix": "ID", "input_restrictions": "task", "is_formula_field": false, "multi_enum_values": [ { "color": "#44689f", "enabled": true, "gid": "12345", "name": "item-2c2907", "resource_type": "default" } ], "name": "item-dc02ab", "number_value": 5.2, "representation_type": "number", "resource_type": "default", "text_value": "Some Value", "type": "text", "asana_created_field": "priority", "currency_code": "DEFAULT", "custom_label": "gold pieces", "custom_label_position": "suffix", "description": null, "format": "custom", "has_notifications_enabled": true, "is_global_to_workspace": true, "precision": 2, "created_by": { "gid": "12345", "name": "item-dadf0c", "resource_type": "default" }, "default_access_level": "user", "is_value_read_only": false, "people_value": [ { "gid": "12345", "name": "item-70439e", "resource_type": "default" } ], "privacy_setting": "public_with_guests", "reference_value": [ { "gid": "12345", "name": "item-6da78f", "resource_type": "default" } ], "resource_subtype": "text" } ], "custom_type": { "gid": "12345", "name": "item-da1cc2", "resource_type": "default" }, "custom_type_status_option": { "gid": "12345", "name": "item-e82701", "resource_type": "default" }, "followers": [ { "gid": "12345", "name": "item-38291c", "resource_type": "default" } ], "parent": { "created_by": { "gid": "1111", "resource_type": "default" }, "gid": "12345", "name": "item-bf2c54", "resource_subtype": "default_task", "resource_type": "default" }, "permalink_url": "https://app.asana.com/1/12345/task/123456789", "projects": [ { "gid": "12345", "name": "item-d95750", "resource_type": "default" } ], "tags": [ { "gid": "59746", "name": "Grade A", "resource_type": "tag" } ] } } - · GET hubspot request · provider traffic · /crm/v3/objects/contacts/736462240085 · HTTP 404 · request ea297040e14b · processing 1.44ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/736462240085' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.44ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 404
{ "errors": [ { "status": "404", "code": "EGeneral:Not found", "detail": "Resource 736462240085 not found" } ] } - · GET workos request · provider traffic · /user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b · HTTP 404 · request 70f12af1efcb · processing 1.52ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.52ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 404
{ "errors": [ { "status": "404", "code": "EGeneral:Not found", "detail": "Resource 24036dd1-ab3c-4f2e-bb32-f189b8d0518b not found" } ] } - · GET stripe request · provider traffic · /v1/customers/cus_7M79SIC2RDSYIUZ5 · HTTP 200 · request 8460b1c20970 · processing 32.27ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_7M79SIC2RDSYIUZ5' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 32.27ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 39, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_7M79SIC2RDSYIUZ5", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Erased customer", "object": "customer", "phone": null, "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "metadata": { "acme_erased": "DSR-approve-erases" } } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs · approve erases · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:44.597882+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 736462240085", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)", "durationMs": 386 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "durationMs": 220 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78", "appliedAt": "2026-10-19T14:52:41.454Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:44.030Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "contact": "736462240085", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "736462240085", "appliedAt": "2026-10-19T14:52:43.249Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:52:44.033Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "customer": "cus_7M79SIC2RDSYIUZ5", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_7M79SIC2RDSYIUZ5", "appliedAt": "2026-10-19T14:52:43.497Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:44.090Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "privilegedRoles": [] }, "attempts": 1, "ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "appliedAt": "2026-10-19T14:52:43.609Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:52:44.090Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r9030766816237466", "appliedAt": "2026-10-19T14:52:43.720Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:43.899Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-erases" }, "attempts": 1, "ref": "171JJ2W18U.5KAYHR", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:41.587Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:43.899Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:41.589Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:43.146Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "c6968cd3f1d6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:40.891Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:41.280Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:41.283Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:41.454Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:41.587Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:41.589Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:43.146Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:52:43.249Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:52:43.497Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:52:43.609Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:52:43.721Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:52:43.722Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:52:44.091Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" } ], "createdAt": "2026-10-19T14:52:40.891Z", "updatedAt": "2026-10-19T14:52:44.091Z" } ] } - · POST app request /invocations · approve erases · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-approve-erases", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:44.779153+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "503", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-approve-erases", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" } }Recorded response · HTTP 200
{ "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 736462240085", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)", "durationMs": 386 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "durationMs": 220 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78", "appliedAt": "2026-10-19T14:52:41.454Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:44.030Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "contact": "736462240085", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "736462240085", "appliedAt": "2026-10-19T14:52:43.249Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:52:44.033Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "customer": "cus_7M79SIC2RDSYIUZ5", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_7M79SIC2RDSYIUZ5", "appliedAt": "2026-10-19T14:52:43.497Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:44.090Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "privilegedRoles": [] }, "attempts": 1, "ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "appliedAt": "2026-10-19T14:52:43.609Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:52:44.090Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r9030766816237466", "appliedAt": "2026-10-19T14:52:43.720Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:43.899Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-erases" }, "attempts": 1, "ref": "171JJ2W18U.5KAYHR", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:41.587Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:43.899Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:41.589Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:43.146Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "c6968cd3f1d6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:40.891Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:41.280Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:41.283Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:41.454Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:41.587Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:41.589Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:43.146Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:52:43.249Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:52:43.497Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:52:43.609Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:52:43.721Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:52:43.722Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:52:44.091Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" }, { "at": "2026-10-19T14:52:44.672Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:40.891Z", "updatedAt": "2026-10-19T14:52:44.672Z", "duplicate": true } - · POST app request /invocations · approve erases · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:44.967400+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "118", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }Recorded response · HTTP 200
{ "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 736462240085", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)", "durationMs": 386 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "durationMs": 220 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78", "appliedAt": "2026-10-19T14:52:41.454Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:44.030Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "contact": "736462240085", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "736462240085", "appliedAt": "2026-10-19T14:52:43.249Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:52:44.033Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "customer": "cus_7M79SIC2RDSYIUZ5", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_7M79SIC2RDSYIUZ5", "appliedAt": "2026-10-19T14:52:43.497Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:44.090Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "privilegedRoles": [] }, "attempts": 1, "ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "appliedAt": "2026-10-19T14:52:43.609Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:52:44.090Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r9030766816237466", "appliedAt": "2026-10-19T14:52:43.720Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:43.899Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-erases" }, "attempts": 1, "ref": "171JJ2W18U.5KAYHR", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:41.587Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:43.899Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:41.589Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:43.146Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "c6968cd3f1d6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:40.891Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:41.280Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:41.283Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:41.454Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:41.587Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:41.589Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:43.146Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:52:43.249Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:52:43.497Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:52:43.609Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:52:43.721Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:52:43.722Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:52:44.091Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" }, { "at": "2026-10-19T14:52:44.672Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:40.891Z", "updatedAt": "2026-10-19T14:52:44.863Z", "result": "already_decided" } - · POST app request /invocations · approve erases · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "reconcile", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:46.219881+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "83", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "reconcile", "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response · HTTP 200
{ "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 736462240085", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)", "durationMs": 386 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "durationMs": 220 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78", "appliedAt": "2026-10-19T14:52:41.454Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:45.248Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "contact": "736462240085", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "736462240085", "appliedAt": "2026-10-19T14:52:43.249Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:52:45.207Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "customer": "cus_7M79SIC2RDSYIUZ5", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_7M79SIC2RDSYIUZ5", "appliedAt": "2026-10-19T14:52:43.497Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:45.252Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "privilegedRoles": [] }, "attempts": 1, "ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "appliedAt": "2026-10-19T14:52:43.609Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:52:45.257Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r9030766816237466", "appliedAt": "2026-10-19T14:52:43.720Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:45.044Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-erases" }, "attempts": 1, "ref": "171JJ2W18U.5KAYHR", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:41.587Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:45.044Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:41.589Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:43.146Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "c6968cd3f1d6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:40.891Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:41.280Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:41.283Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:41.454Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:41.587Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:41.589Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:43.146Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:52:43.249Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:52:43.497Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:52:43.609Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:52:43.721Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:52:43.722Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:52:44.091Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" }, { "at": "2026-10-19T14:52:44.672Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:52:45.257Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" } ], "createdAt": "2026-10-19T14:52:40.891Z", "updatedAt": "2026-10-19T14:52:45.257Z" } - · GET hubspot request · provider traffic · /crm/v3/objects/contacts/736462240085 · HTTP 404 · request 88fa3ea73a49 · processing 1.66ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/736462240085' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.66ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 404
{ "errors": [ { "status": "404", "code": "EGeneral:Not found", "detail": "Resource 736462240085 not found" } ] } - · GET asana request · provider traffic · /tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78 · HTTP 200 · request fe8c3c5ef6c9 · processing 12.31ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks/1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.31ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": { "name": "DSR-approve-erases: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-approve-erases, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref c6968cd3f1d6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14", "created_by": { "gid": "1111", "resource_type": "default" }, "gid": "12345", "resource_subtype": "default_task", "resource_type": "task", "approval_status": "pending", "assigned_by": { "gid": "12345", "name": "item-0821a1", "resource_type": "default" }, "assignee_status": "upcoming", "completed": false, "completed_by": { "gid": "12345", "name": "item-c31672", "resource_type": "default" }, "created_at": "2012-02-22T02:06:58.147Z", "dependencies": [ { "gid": "12345", "resource_type": "default" } ], "dependents": [ { "gid": "12345", "resource_type": "default" } ], "external": { "data": "A blob of information", "gid": "my_gid" }, "hearted": true, "hearts": [ { "gid": "12345", "user": { "gid": "12345", "name": "item-2d0e0d", "resource_type": "default" } } ], "html_notes": "<body>Mittens <em>really</em> likes the stuff from Humboldt.</body>", "is_rendered_as_separator": false, "liked": true, "likes": [ { "gid": "12345", "user": { "gid": "12345", "name": "item-fcb282", "resource_type": "default" } } ], "memberships": [ { "project": { "gid": "12345", "name": "item-fe1ced", "resource_type": "default" }, "section": { "gid": "12345", "name": "item-9fc351", "resource_type": "default" } } ], "modified_at": "2012-02-22T02:06:58.147Z", "num_hearts": 5, "num_likes": 5, "num_subtasks": 3, "assignee": { "gid": "12345", "name": "item-7889f2", "resource_type": "default" }, "assignee_section": { "gid": "12345", "name": "item-6279b8", "resource_type": "default" }, "custom_fields": [ { "date_value": { "date": "2024-08-23", "date_time": "2024-08-23T22:00:00.000Z" }, "display_value": "blue", "enabled": true, "enum_options": [ { "color": "#c2ef74", "enabled": true, "gid": "12345", "name": "item-c8fdd5", "resource_type": "default" } ], "enum_value": { "color": "#6135f9", "enabled": true, "gid": "12345", "name": "item-b15a4c", "resource_type": "default" }, "gid": "12345", "id_prefix": "ID", "input_restrictions": "task", "is_formula_field": false, "multi_enum_values": [ { "color": "#6b1a3c", "enabled": true, "gid": "12345", "name": "item-1cc359", "resource_type": "default" } ], "name": "item-9ed03d", "number_value": 5.2, "representation_type": "number", "resource_type": "default", "text_value": "Some Value", "type": "text", "asana_created_field": "priority", "currency_code": "DEFAULT", "custom_label": "gold pieces", "custom_label_position": "suffix", "description": null, "format": "custom", "has_notifications_enabled": true, "is_global_to_workspace": true, "precision": 2, "created_by": { "gid": "12345", "name": "item-12a210", "resource_type": "default" }, "default_access_level": "user", "is_value_read_only": false, "people_value": [ { "gid": "12345", "name": "item-431e84", "resource_type": "default" } ], "privacy_setting": "public_with_guests", "reference_value": [ { "gid": "12345", "name": "item-4a854a", "resource_type": "default" } ], "resource_subtype": "text" } ], "custom_type": { "gid": "12345", "name": "item-953287", "resource_type": "default" }, "custom_type_status_option": { "gid": "12345", "name": "item-115fd1", "resource_type": "default" }, "followers": [ { "gid": "12345", "name": "item-de0997", "resource_type": "default" } ], "parent": { "created_by": { "gid": "1111", "resource_type": "default" }, "gid": "12345", "name": "item-a62e81", "resource_subtype": "default_task", "resource_type": "default" }, "permalink_url": "https://app.asana.com/1/12345/task/123456789", "projects": [ { "gid": "12345", "name": "item-90ec2f", "resource_type": "default" } ], "tags": [ { "gid": "59746", "name": "Grade A", "resource_type": "tag" } ] } } - · GET workos request · provider traffic · /user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b · HTTP 404 · request f1d6654d3225 · processing 1.89ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/24036dd1-ab3c-4f2e-bb32-f189b8d0518b' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.89ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 404
{ "errors": [ { "status": "404", "code": "EGeneral:Not found", "detail": "Resource 24036dd1-ab3c-4f2e-bb32-f189b8d0518b not found" } ] } - · GET stripe request · provider traffic · /v1/customers/cus_7M79SIC2RDSYIUZ5 · HTTP 200 · request 776bd91ac361 · processing 25.42ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_7M79SIC2RDSYIUZ5' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 25.42ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 39, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_7M79SIC2RDSYIUZ5", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Erased customer", "object": "customer", "phone": null, "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "metadata": { "acme_erased": "DSR-approve-erases" } } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs · approve erases · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_erases/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:46.512992+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "approve-erases-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_erases" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 736462240085", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_7M79SIC2RDSYIUZ5: 0 live subscription(s), 0 open invoice(s)", "durationMs": 386 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "durationMs": 220 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "1f071cf2-d8f9-4f5a-a5e2-0a5d3ea13c78", "appliedAt": "2026-10-19T14:52:41.454Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:45.248Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "contact": "736462240085", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "736462240085", "appliedAt": "2026-10-19T14:52:43.249Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:52:45.207Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "customer": "cus_7M79SIC2RDSYIUZ5", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_7M79SIC2RDSYIUZ5", "appliedAt": "2026-10-19T14:52:43.497Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:52:45.252Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "user": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "privilegedRoles": [] }, "attempts": 1, "ref": "24036dd1-ab3c-4f2e-bb32-f189b8d0518b", "appliedAt": "2026-10-19T14:52:43.609Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:52:45.257Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-approve-erases", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r9030766816237466", "appliedAt": "2026-10-19T14:52:43.720Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:45.044Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-erases" }, "attempts": 1, "ref": "171JJ2W18U.5KAYHR", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:41.587Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:52:45.044Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:41.589Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:43.146Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "c6968cd3f1d6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:40.891Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:41.280Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:41.283Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:41.454Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:41.587Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:41.589Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:43.146Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:52:43.249Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:52:43.497Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:52:43.609Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:52:43.721Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:52:43.722Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:52:44.091Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" }, { "at": "2026-10-19T14:52:44.672Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:52:45.257Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" } ], "createdAt": "2026-10-19T14:52:40.891Z", "updatedAt": "2026-10-19T14:52:45.257Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs · rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:46.768848+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-rejected", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "rejected" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:48.888750+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "479", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-rejected", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "rejected" } }Recorded response · HTTP 200
{ "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "rejected" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 874521035700", "durationMs": 182 }, { "name": "billing-records", "status": "ok", "summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)", "durationMs": 374 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1", "durationMs": 380 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-rejected", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "383dbc02-8fae-4e5b-b680-8703968ea20f", "appliedAt": "2026-10-19T14:52:47.358Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-rejected", "contact": "874521035700", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-rejected", "customer": "cus_XLF6K52HQ2KNJ92V", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-rejected", "user": "45fe92cf-6d70-4a92-a16f-030b8a382be1", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-rejected", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-rejected" }, "attempts": 1, "ref": "17DZBZZL09.RALPOG", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:47.483Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:47.484Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "a187bda2bbd3", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:46.843Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:47.225Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:47.230Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:47.358Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:47.483Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:47.484Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:52:46.843Z", "updatedAt": "2026-10-19T14:52:47.484Z", "duplicate": false } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request bd539e3010b0 · processing 1.55ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.55ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "229", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "874521035700", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 08e0d82f8ac9 · processing 16.73ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 16.73ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_XLF6K52HQ2KNJ92V", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 51, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request 730288c1be77 · processing 1.64ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.64ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "45fe92cf-6d70-4a92-a16f-030b8a382be1", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/53dcad79", "email_verified": true, "external_id": "ext_4756ddedd093479f9010cff3ce", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request 5dea0d78daa6 · processing 7.14ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 7.14ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request aed8695bbb03 · processing 7.2ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 7.2ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request 1f82b126e639 · processing 0.89ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.89ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 6a786ea4f959 · processing 12.84ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-rejected: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-rejected, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref a187bda2bbd3. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.84ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "518", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-rejected: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-rejected, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref a187bda2bbd3. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-rejected: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-rejected, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref a187bda2bbd3. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "383dbc02-8fae-4e5b-b680-8703968ea20f" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request a14785a767aa · processing 15.52ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-rejected (GDPR, due 2026-11-14, 25d left) subject a187bda2bbd3: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.52ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "198", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-rejected (GDPR, due 2026-11-14, 25d left) subject a187bda2bbd3: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_3f76b0568340488c9cee687103", "client_msg_id": "cli_f6fa860991ca4137a3c652c9af", "name": "item-7cadaa", "old_name": "Sample Old", "parent_user_id": "par_5622b1f6e98a4c38a9f66ad4f4", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17DZBZZL09.RALPOG" } - · POST app request /invocations · rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "reject", "userId": "U_DPO" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:49.166533+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "111", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "reject", "userId": "U_DPO" }Recorded response · HTTP 200
{ "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "REJECTED", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "rejected" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 874521035700", "durationMs": 182 }, { "name": "billing-records", "status": "ok", "summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)", "durationMs": 374 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1", "durationMs": 380 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-rejected", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "383dbc02-8fae-4e5b-b680-8703968ea20f", "appliedAt": "2026-10-19T14:52:47.358Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "contact": "874521035700", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "customer": "cus_XLF6K52HQ2KNJ92V", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "user": "45fe92cf-6d70-4a92-a16f-030b8a382be1", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-rejected" }, "attempts": 1, "ref": "17DZBZZL09.RALPOG", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:47.483Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 4 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:47.484Z", "decision": "reject", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:48.980Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "a187bda2bbd3", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:46.843Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:47.225Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:47.230Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:47.358Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:47.483Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:47.484Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:48.980Z", "msg": "rejected by U_DPO" } ], "createdAt": "2026-10-19T14:52:46.843Z", "updatedAt": "2026-10-19T14:52:48.980Z", "result": "recorded" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs · rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:49.755080+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "REJECTED", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "rejected" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 874521035700", "durationMs": 182 }, { "name": "billing-records", "status": "ok", "summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)", "durationMs": 374 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1", "durationMs": 380 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-rejected", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "383dbc02-8fae-4e5b-b680-8703968ea20f", "appliedAt": "2026-10-19T14:52:47.358Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "contact": "874521035700", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "customer": "cus_XLF6K52HQ2KNJ92V", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "user": "45fe92cf-6d70-4a92-a16f-030b8a382be1", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-rejected" }, "attempts": 1, "ref": "17DZBZZL09.RALPOG", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:47.483Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 4 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:47.484Z", "decision": "reject", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:48.980Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "a187bda2bbd3", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:46.843Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:47.225Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:47.230Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:47.358Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:47.483Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:47.484Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:48.980Z", "msg": "rejected by U_DPO" } ], "createdAt": "2026-10-19T14:52:46.843Z", "updatedAt": "2026-10-19T14:52:48.980Z" } ] } - · POST app request /invocations · rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-rejected", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "rejected" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:49.935197+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "479", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-rejected", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "rejected" } }Recorded response · HTTP 200
{ "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "REJECTED", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "rejected" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 874521035700", "durationMs": 182 }, { "name": "billing-records", "status": "ok", "summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)", "durationMs": 374 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1", "durationMs": 380 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-rejected", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "383dbc02-8fae-4e5b-b680-8703968ea20f", "appliedAt": "2026-10-19T14:52:47.358Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "contact": "874521035700", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "customer": "cus_XLF6K52HQ2KNJ92V", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "user": "45fe92cf-6d70-4a92-a16f-030b8a382be1", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-rejected" }, "attempts": 1, "ref": "17DZBZZL09.RALPOG", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:47.483Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 4 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:47.484Z", "decision": "reject", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:48.980Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "a187bda2bbd3", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:46.843Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:47.225Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:47.230Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:47.358Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:47.483Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:47.484Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:48.980Z", "msg": "rejected by U_DPO" }, { "at": "2026-10-19T14:52:49.831Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:46.843Z", "updatedAt": "2026-10-19T14:52:49.831Z", "duplicate": true } - · POST app request /invocations · rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "reject", "userId": "U_DPO" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:50.125613+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "111", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "reject", "userId": "U_DPO" }Recorded response · HTTP 200
{ "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "REJECTED", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "rejected" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 874521035700", "durationMs": 182 }, { "name": "billing-records", "status": "ok", "summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)", "durationMs": 374 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1", "durationMs": 380 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-rejected", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "383dbc02-8fae-4e5b-b680-8703968ea20f", "appliedAt": "2026-10-19T14:52:47.358Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "contact": "874521035700", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "customer": "cus_XLF6K52HQ2KNJ92V", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "user": "45fe92cf-6d70-4a92-a16f-030b8a382be1", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-rejected" }, "attempts": 1, "ref": "17DZBZZL09.RALPOG", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:47.483Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 4 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:47.484Z", "decision": "reject", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:48.980Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "a187bda2bbd3", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:46.843Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:47.225Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:47.230Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:47.358Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:47.483Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:47.484Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:48.980Z", "msg": "rejected by U_DPO" }, { "at": "2026-10-19T14:52:49.831Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:46.843Z", "updatedAt": "2026-10-19T14:52:50.023Z", "result": "already_decided" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs · rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:51.332028+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "rejected-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "REJECTED", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "rejected" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 874521035700", "durationMs": 182 }, { "name": "billing-records", "status": "ok", "summary": "cus_XLF6K52HQ2KNJ92V: 0 live subscription(s), 0 open invoice(s)", "durationMs": 374 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 45fe92cf-6d70-4a92-a16f-030b8a382be1", "durationMs": 380 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-rejected", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "383dbc02-8fae-4e5b-b680-8703968ea20f", "appliedAt": "2026-10-19T14:52:47.358Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "contact": "874521035700", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "customer": "cus_XLF6K52HQ2KNJ92V", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "user": "45fe92cf-6d70-4a92-a16f-030b8a382be1", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "rejected", "summary": { "requestId": "DSR-rejected", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-rejected" }, "attempts": 1, "ref": "17DZBZZL09.RALPOG", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:47.483Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 4 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:47.484Z", "decision": "reject", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:52:48.980Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "a187bda2bbd3", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:46.843Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:47.225Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:47.230Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:47.358Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:47.483Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:47.484Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:48.980Z", "msg": "rejected by U_DPO" }, { "at": "2026-10-19T14:52:49.831Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:46.843Z", "updatedAt": "2026-10-19T14:52:50.023Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs · approve by stranger refused · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:51.559463+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · approve by stranger refused · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-approve-by-stranger-refused", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_by_stranger_refused" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:52.327792+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "555", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-approve-by-stranger-refused", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_by_stranger_refused" } }Recorded response · HTTP 200
{ "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_by_stranger_refused" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 018155334412", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)", "durationMs": 335 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "durationMs": 264 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-by-stranger-refused", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "81ae7b63-5f94-4fee-9349-319ec80373de", "appliedAt": "2026-10-19T14:52:52.080Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "contact": "018155334412", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "customer": "cus_3BQZBPFIP75KZNQ4", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-by-stranger-refused" }, "attempts": 1, "ref": "17UES8HHJE.0QHP8H", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:52.234Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:52.236Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "462f4195dc0e", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:51.633Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:51.970Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:51.973Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:52.080Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:52.234Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:52.236Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:52:51.633Z", "updatedAt": "2026-10-19T14:52:52.236Z", "duplicate": false } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request 7422065104b1 · processing 1.66ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.66ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/b44fb990", "email_verified": true, "external_id": "ext_8f290cdb103c42afb19c1ba5e7", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 044eaa88c39d · processing 1.94ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.94ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "248", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "018155334412", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 4bab5902d8c0 · processing 15.96ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.96ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_3BQZBPFIP75KZNQ4", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 33, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request 926ee32b6d82 · processing 0.5ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.5ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request cecf16d36e2b · processing 5.98ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 5.98ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 055e41ccc6e6 · processing 6.36ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.36ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · POST asana request · provider traffic · /tasks · HTTP 201 · request c2bea70b4ca4 · processing 14.46ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-approve-by-stranger-refused: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-approve-by-stranger-refused, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 462f4195dc0e. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 14.46ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "556", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-approve-by-stranger-refused: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-approve-by-stranger-refused, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 462f4195dc0e. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-approve-by-stranger-refused: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-approve-by-stranger-refused, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 462f4195dc0e. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "81ae7b63-5f94-4fee-9349-319ec80373de" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 351846c1667d · processing 14.24ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-approve-by-stranger-refused (GDPR, due 2026-11-14, 25d left) subject 462f4195dc0e: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 14.24ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "217", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-approve-by-stranger-refused (GDPR, due 2026-11-14, 25d left) subject 462f4195dc0e: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_52da893c9aae4291b663d94143", "client_msg_id": "cli_4115da7e7ac14de1a8250bd805", "name": "item-f19ead", "old_name": "Sample Old", "parent_user_id": "par_7d5890b4795942d2b7c8364f42", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17UES8HHJE.0QHP8H" } - · POST app request /invocations · approve by stranger refused · HTTP 403
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_SUPPORT" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:52.517498+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "135", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_SUPPORT" }Recorded response · HTTP 403
{ "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_by_stranger_refused" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 018155334412", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)", "durationMs": 335 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "durationMs": 264 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-by-stranger-refused", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "81ae7b63-5f94-4fee-9349-319ec80373de", "appliedAt": "2026-10-19T14:52:52.080Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "contact": "018155334412", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "customer": "cus_3BQZBPFIP75KZNQ4", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-by-stranger-refused" }, "attempts": 1, "ref": "17UES8HHJE.0QHP8H", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:52.234Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:52.236Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "462f4195dc0e", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:51.633Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:51.970Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:51.973Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:52.080Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:52.234Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:52.236Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:52.402Z", "msg": "decision by U_SUPPORT refused: not an approver" } ], "createdAt": "2026-10-19T14:52:51.633Z", "updatedAt": "2026-10-19T14:52:52.402Z", "result": "forbidden" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs · approve by stranger refused · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:53.652438+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_by_stranger_refused" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 018155334412", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)", "durationMs": 335 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "durationMs": 264 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-by-stranger-refused", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "81ae7b63-5f94-4fee-9349-319ec80373de", "appliedAt": "2026-10-19T14:52:52.080Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "contact": "018155334412", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "customer": "cus_3BQZBPFIP75KZNQ4", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-by-stranger-refused" }, "attempts": 1, "ref": "17UES8HHJE.0QHP8H", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:52.234Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:52.236Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "462f4195dc0e", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:51.633Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:51.970Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:51.973Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:52.080Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:52.234Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:52.236Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:52.402Z", "msg": "decision by U_SUPPORT refused: not an approver" } ], "createdAt": "2026-10-19T14:52:51.633Z", "updatedAt": "2026-10-19T14:52:52.402Z" } ] } - · POST app request /invocations · approve by stranger refused · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-approve-by-stranger-refused", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_by_stranger_refused" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:54.336774+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "555", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-approve-by-stranger-refused", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_by_stranger_refused" } }Recorded response · HTTP 200
{ "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_by_stranger_refused" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 018155334412", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)", "durationMs": 335 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "durationMs": 264 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-by-stranger-refused", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "81ae7b63-5f94-4fee-9349-319ec80373de", "appliedAt": "2026-10-19T14:52:52.080Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "contact": "018155334412", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "customer": "cus_3BQZBPFIP75KZNQ4", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-by-stranger-refused" }, "attempts": 1, "ref": "17UES8HHJE.0QHP8H", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:52.234Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:52.236Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "462f4195dc0e", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:51.633Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:51.970Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:51.973Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:52.080Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:52.234Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:52.236Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:52.402Z", "msg": "decision by U_SUPPORT refused: not an approver" }, { "at": "2026-10-19T14:52:54.217Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:51.633Z", "updatedAt": "2026-10-19T14:52:54.217Z", "duplicate": true } - · POST app request /invocations · approve by stranger refused · HTTP 403
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_SUPPORT" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:54.624056+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "135", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_SUPPORT" }Recorded response · HTTP 403
{ "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_by_stranger_refused" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 018155334412", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)", "durationMs": 335 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "durationMs": 264 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-by-stranger-refused", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "81ae7b63-5f94-4fee-9349-319ec80373de", "appliedAt": "2026-10-19T14:52:52.080Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "contact": "018155334412", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "customer": "cus_3BQZBPFIP75KZNQ4", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-by-stranger-refused" }, "attempts": 1, "ref": "17UES8HHJE.0QHP8H", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:52.234Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:52.236Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "462f4195dc0e", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:51.633Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:51.970Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:51.973Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:52.080Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:52.234Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:52.236Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:52.402Z", "msg": "decision by U_SUPPORT refused: not an approver" }, { "at": "2026-10-19T14:52:54.217Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:52:54.414Z", "msg": "decision by U_SUPPORT refused: not an approver" } ], "createdAt": "2026-10-19T14:52:51.633Z", "updatedAt": "2026-10-19T14:52:54.414Z", "result": "forbidden" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs · approve by stranger refused · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/approve_by_stranger_refused/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:54.981097+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "approve-by-stranger-refused-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "approve_by_stranger_refused" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 018155334412", "durationMs": 218 }, { "name": "billing-records", "status": "ok", "summary": "cus_3BQZBPFIP75KZNQ4: 0 live subscription(s), 0 open invoice(s)", "durationMs": 335 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "durationMs": 264 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-approve-by-stranger-refused", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "81ae7b63-5f94-4fee-9349-319ec80373de", "appliedAt": "2026-10-19T14:52:52.080Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "contact": "018155334412", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "customer": "cus_3BQZBPFIP75KZNQ4", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "user": "2e054f8c-0995-48fd-8d5a-0d30a105d1e7", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-approve-by-stranger-refused", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-approve-by-stranger-refused" }, "attempts": 1, "ref": "17UES8HHJE.0QHP8H", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:52.234Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:52.236Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "462f4195dc0e", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:51.633Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:51.970Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:51.973Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:52:52.080Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:52.234Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:52.236Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:52:52.402Z", "msg": "decision by U_SUPPORT refused: not an approver" }, { "at": "2026-10-19T14:52:54.217Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:52:54.414Z", "msg": "decision by U_SUPPORT refused: not an approver" } ], "createdAt": "2026-10-19T14:52:51.633Z", "updatedAt": "2026-10-19T14:52:54.414Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs · unverified no erasure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:55.301988+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · unverified no erasure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-unverified-no-erasure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "none", "verifiedBy": "inbox" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "unverified_no_erasure" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:56.190635+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "516", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-unverified-no-erasure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "none", "verifiedBy": "inbox" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "unverified_no_erasure" } }Recorded response · HTTP 200
{ "runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "unverified_no_erasure" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 137268112170", "durationMs": 96 }, { "name": "billing-records", "status": "ok", "summary": "cus_90PC79TY1TM1MVB3: 0 live subscription(s), 0 open invoice(s)", "durationMs": 287 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 5f753775-63fc-4636-9695-01c44488de08", "durationMs": 232 }, { "name": "erasure-plan", "status": "ok", "summary": "UNVERIFIED; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-unverified-no-erasure", "deadline": "2026-11-14", "verified": false }, "attempts": 1, "ref": "54e08c9b-32ff-452b-a6f2-a26a460562f0", "appliedAt": "2026-10-19T14:52:55.792Z", "reconciled": null }, { "id": "gmail.draft_verification_request", "kind": "gmail.draft_verification_request", "provider": "gmail", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-unverified-no-erasure", "sent": false }, "attempts": 1, "ref": "r3488270922212164", "appliedAt": "2026-10-19T14:52:55.950Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-unverified-no-erasure" }, "attempts": 1, "ref": "17SAH7S3KF.8F0YE6", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:56.068Z", "reconciled": null } ], "counts": { "applied": 3, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "output": { "verified": false, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "2cbf76a34c08", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:55.378Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:55.665Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:55.668Z", "msg": "planned 3 action(s): 0 need approval" }, { "at": "2026-10-19T14:52:55.792Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:55.950Z", "msg": "gmail.draft_verification_request: applied" }, { "at": "2026-10-19T14:52:56.069Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:56.070Z", "msg": "done (ok)" } ], "createdAt": "2026-10-19T14:52:55.378Z", "updatedAt": "2026-10-19T14:52:56.070Z", "duplicate": false } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 457b08d77a82 · processing 1.76ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.76ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "242", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "137268112170", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request ee06c5b2d107 · processing 3.34ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 3.34ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "5f753775-63fc-4636-9695-01c44488de08", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/1ef10dff", "email_verified": true, "external_id": "ext_d27594165493473799a44369ef", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request a98f85843aa7 · processing 18.8ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 18.8ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_90PC79TY1TM1MVB3", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 64, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request 0c2e76206d06 · processing 0.49ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.49ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request f9ba29355e83 · processing 6.79ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.79ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request e1ed0aecfb85 · processing 6.04ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.04ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 4df2138821e8 · processing 13.9ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-unverified-no-erasure: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-unverified-no-erasure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2cbf76a34c08. Verification: none by inbox.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nNot verified: nothing will be erased until identity is confirmed.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.9ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "567", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-unverified-no-erasure: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-unverified-no-erasure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2cbf76a34c08. Verification: none by inbox.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nNot verified: nothing will be erased until identity is confirmed.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-unverified-no-erasure: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-unverified-no-erasure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2cbf76a34c08. Verification: none by inbox.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nNot verified: nothing will be erased until identity is confirmed.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "54e08c9b-32ff-452b-a6f2-a26a460562f0" } - · POST gmail request · provider traffic · /gmail/v1/users/me/drafts · HTTP 200 · request f4448c70cfd3 · processing 13.58ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItdW52ZXJpZmllZC1uby1lcmFzdXJlQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLXVudmVyaWZpZWQtbm8tZXJhc3VyZQ0KTWVzc2FnZS1JRDogPDMyOTk5OWNmYjQ3NWNkZDguZHNyLXZlcmlmeUBvcHMuYWNtZS5leGFtcGxlPg0KTUlNRS1WZXJzaW9uOiAxLjANCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0DQoNCkhlbGxvLAoKV2UgcmVjZWl2ZWQgYSByZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgcGVyc29uYWwgZGF0YSB3ZSBob2xkIGFib3V0IHRoaXMgZW1haWwgYWRkcmVzcy4gQmVmb3JlIHdlIGRlbGV0ZSBhbnl0aGluZyB3ZSBuZWVkIHRvIGNvbmZpcm0gdGhlIHJlcXVlc3QgY2FtZSBmcm9tIHlvdTogcGxlYXNlIHJlcGx5IGZyb20gdGhpcyBhZGRyZXNzIG9yIHNpZ24gaW4gdG8geW91ciBBQ01FIGFjY291bnQgYW5kIGNvbmZpcm0gdGhlIHJlcXVlc3QgdGhlcmUuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.58ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "756", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItdW52ZXJpZmllZC1uby1lcmFzdXJlQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLXVudmVyaWZpZWQtbm8tZXJhc3VyZQ0KTWVzc2FnZS1JRDogPDMyOTk5OWNmYjQ3NWNkZDguZHNyLXZlcmlmeUBvcHMuYWNtZS5leGFtcGxlPg0KTUlNRS1WZXJzaW9uOiAxLjANCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0DQoNCkhlbGxvLAoKV2UgcmVjZWl2ZWQgYSByZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgcGVyc29uYWwgZGF0YSB3ZSBob2xkIGFib3V0IHRoaXMgZW1haWwgYWRkcmVzcy4gQmVmb3JlIHdlIGRlbGV0ZSBhbnl0aGluZyB3ZSBuZWVkIHRvIGNvbmZpcm0gdGhlIHJlcXVlc3QgY2FtZSBmcm9tIHlvdTogcGxlYXNlIHJlcGx5IGZyb20gdGhpcyBhZGRyZXNzIG9yIHNpZ24gaW4gdG8geW91ciBBQ01FIGFjY291bnQgYW5kIGNvbmZpcm0gdGhlIHJlcXVlc3QgdGhlcmUuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }Recorded response · HTTP 200
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItdW52ZXJpZmllZC1uby1lcmFzdXJlQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLXVudmVyaWZpZWQtbm8tZXJhc3VyZQ0KTWVzc2FnZS1JRDogPDMyOTk5OWNmYjQ3NWNkZDguZHNyLXZlcmlmeUBvcHMuYWNtZS5leGFtcGxlPg0KTUlNRS1WZXJzaW9uOiAxLjANCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0iVVRGLTgiDQpDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0DQoNCkhlbGxvLAoKV2UgcmVjZWl2ZWQgYSByZXF1ZXN0IHRvIGRlbGV0ZSB0aGUgcGVyc29uYWwgZGF0YSB3ZSBob2xkIGFib3V0IHRoaXMgZW1haWwgYWRkcmVzcy4gQmVmb3JlIHdlIGRlbGV0ZSBhbnl0aGluZyB3ZSBuZWVkIHRvIGNvbmZpcm0gdGhlIHJlcXVlc3QgY2FtZSBmcm9tIHlvdTogcGxlYXNlIHJlcGx5IGZyb20gdGhpcyBhZGRyZXNzIG9yIHNpZ24gaW4gdG8geW91ciBBQ01FIGFjY291bnQgYW5kIGNvbmZpcm0gdGhlIHJlcXVlc3QgdGhlcmUuCgpBQ01FIFByaXZhY3kgVGVhbQ", "payload": { "mimeType": "text/plain", "headers": [ { "name": "From", "value": "me" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Your data deletion request DSR-unverified-no-erasure" }, { "name": "Message-ID", "value": "<[email protected]>" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/plain; charset=\"UTF-8\"" }, { "name": "Content-Transfer-Encoding", "value": "8bit" } ], "body": { "size": 276, "data": "SGVsbG8sCgpXZSByZWNlaXZlZCBhIHJlcXVlc3QgdG8gZGVsZXRlIHRoZSBwZXJzb25hbCBkYXRhIHdlIGhvbGQgYWJvdXQgdGhpcyBlbWFpbCBhZGRyZXNzLiBCZWZvcmUgd2UgZGVsZXRlIGFueXRoaW5nIHdlIG5lZWQgdG8gY29uZmlybSB0aGUgcmVxdWVzdCBjYW1lIGZyb20geW91OiBwbGVhc2UgcmVwbHkgZnJvbSB0aGlzIGFkZHJlc3Mgb3Igc2lnbiBpbiB0byB5b3VyIEFDTUUgYWNjb3VudCBhbmQgY29uZmlybSB0aGUgcmVxdWVzdCB0aGVyZS4KCkFDTUUgUHJpdmFjeSBUZWFt" } }, "sizeEstimate": 550, "labelIds": [ "DRAFT" ], "id": "8be3203a6f564d09" }, "user_id": "me", "id": "r3488270922212164" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 136fc22f8a25 · processing 14.97ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-unverified-no-erasure (GDPR, due 2026-11-14, 25d left) subject 2cbf76a34c08: NOT VERIFIED, nothing erased.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 14.97ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "194", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-unverified-no-erasure (GDPR, due 2026-11-14, 25d left) subject 2cbf76a34c08: NOT VERIFIED, nothing erased.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_bf6780bc9f914aa0bc01aeaccf", "client_msg_id": "cli_45b7498e172f43bf99b2020c48", "name": "item-569293", "old_name": "Sample Old", "parent_user_id": "par_bcc7c13bc7034834affa03cf83", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17SAH7S3KF.8F0YE6" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs · unverified no erasure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:56.467721+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "unverified_no_erasure" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 137268112170", "durationMs": 96 }, { "name": "billing-records", "status": "ok", "summary": "cus_90PC79TY1TM1MVB3: 0 live subscription(s), 0 open invoice(s)", "durationMs": 287 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 5f753775-63fc-4636-9695-01c44488de08", "durationMs": 232 }, { "name": "erasure-plan", "status": "ok", "summary": "UNVERIFIED; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-unverified-no-erasure", "deadline": "2026-11-14", "verified": false }, "attempts": 1, "ref": "54e08c9b-32ff-452b-a6f2-a26a460562f0", "appliedAt": "2026-10-19T14:52:55.792Z", "reconciled": null }, { "id": "gmail.draft_verification_request", "kind": "gmail.draft_verification_request", "provider": "gmail", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-unverified-no-erasure", "sent": false }, "attempts": 1, "ref": "r3488270922212164", "appliedAt": "2026-10-19T14:52:55.950Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-unverified-no-erasure" }, "attempts": 1, "ref": "17SAH7S3KF.8F0YE6", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:56.068Z", "reconciled": null } ], "counts": { "applied": 3, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "output": { "verified": false, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "2cbf76a34c08", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:55.378Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:55.665Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:55.668Z", "msg": "planned 3 action(s): 0 need approval" }, { "at": "2026-10-19T14:52:55.792Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:55.950Z", "msg": "gmail.draft_verification_request: applied" }, { "at": "2026-10-19T14:52:56.069Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:56.070Z", "msg": "done (ok)" } ], "createdAt": "2026-10-19T14:52:55.378Z", "updatedAt": "2026-10-19T14:52:56.070Z" } ] } - · POST app request /invocations · unverified no erasure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-unverified-no-erasure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "none", "verifiedBy": "inbox" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "unverified_no_erasure" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:57.727818+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "516", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-unverified-no-erasure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "none", "verifiedBy": "inbox" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "unverified_no_erasure" } }Recorded response · HTTP 200
{ "runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "unverified_no_erasure" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 137268112170", "durationMs": 96 }, { "name": "billing-records", "status": "ok", "summary": "cus_90PC79TY1TM1MVB3: 0 live subscription(s), 0 open invoice(s)", "durationMs": 287 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 5f753775-63fc-4636-9695-01c44488de08", "durationMs": 232 }, { "name": "erasure-plan", "status": "ok", "summary": "UNVERIFIED; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-unverified-no-erasure", "deadline": "2026-11-14", "verified": false }, "attempts": 1, "ref": "54e08c9b-32ff-452b-a6f2-a26a460562f0", "appliedAt": "2026-10-19T14:52:55.792Z", "reconciled": null }, { "id": "gmail.draft_verification_request", "kind": "gmail.draft_verification_request", "provider": "gmail", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-unverified-no-erasure", "sent": false }, "attempts": 1, "ref": "r3488270922212164", "appliedAt": "2026-10-19T14:52:55.950Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-unverified-no-erasure" }, "attempts": 1, "ref": "17SAH7S3KF.8F0YE6", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:56.068Z", "reconciled": null } ], "counts": { "applied": 3, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "output": { "verified": false, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "2cbf76a34c08", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:55.378Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:55.665Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:55.668Z", "msg": "planned 3 action(s): 0 need approval" }, { "at": "2026-10-19T14:52:55.792Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:55.950Z", "msg": "gmail.draft_verification_request: applied" }, { "at": "2026-10-19T14:52:56.069Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:56.070Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:52:57.402Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:55.378Z", "updatedAt": "2026-10-19T14:52:57.402Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs · unverified no erasure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/unverified_no_erasure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:58.035381+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "unverified-no-erasure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "unverified_no_erasure" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 137268112170", "durationMs": 96 }, { "name": "billing-records", "status": "ok", "summary": "cus_90PC79TY1TM1MVB3: 0 live subscription(s), 0 open invoice(s)", "durationMs": 287 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 5f753775-63fc-4636-9695-01c44488de08", "durationMs": 232 }, { "name": "erasure-plan", "status": "ok", "summary": "UNVERIFIED; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-unverified-no-erasure", "deadline": "2026-11-14", "verified": false }, "attempts": 1, "ref": "54e08c9b-32ff-452b-a6f2-a26a460562f0", "appliedAt": "2026-10-19T14:52:55.792Z", "reconciled": null }, { "id": "gmail.draft_verification_request", "kind": "gmail.draft_verification_request", "provider": "gmail", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-unverified-no-erasure", "sent": false }, "attempts": 1, "ref": "r3488270922212164", "appliedAt": "2026-10-19T14:52:55.950Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-unverified-no-erasure" }, "attempts": 1, "ref": "17SAH7S3KF.8F0YE6", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:56.068Z", "reconciled": null } ], "counts": { "applied": 3, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "output": { "verified": false, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "2cbf76a34c08", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:55.378Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:55.665Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:55.668Z", "msg": "planned 3 action(s): 0 need approval" }, { "at": "2026-10-19T14:52:55.792Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:55.950Z", "msg": "gmail.draft_verification_request: applied" }, { "at": "2026-10-19T14:52:56.069Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:56.070Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:52:57.402Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:55.378Z", "updatedAt": "2026-10-19T14:52:57.402Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs · active subscription retains billing · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:58.653796+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · active subscription retains billing · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-active-subscription-retains-billing", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "active_subscription_retains_billing" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:52:59.804886+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "587", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-active-subscription-retains-billing", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "active_subscription_retains_billing" } }Recorded response · HTTP 200
{ "runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "active_subscription_retains_billing" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 915733078391", "durationMs": 167 }, { "name": "billing-records", "status": "ok", "summary": "cus_3MLW3PH1LVZPW4XG: 1 live subscription(s), 1 open invoice(s)", "durationMs": 622 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 91f2262b-eae1-4820-9d88-846ebdf73f91", "durationMs": 620 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=retain, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-active-subscription-retains-billing", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "5bc957df-5485-4b9e-b385-8e63a211e197", "appliedAt": "2026-10-19T14:52:59.552Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "contact": "915733078391", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "user": "91f2262b-eae1-4820-9d88-846ebdf73f91", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "sent": false, "after": [ "hubspot.erase_contact", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-active-subscription-retains-billing" }, "attempts": 1, "ref": "177E5L5GDQ.IGYPVT", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:59.682Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 3, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:59.684Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "5e69abe63461", "decisions": { "hubspot": "erase", "stripe": "retain", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:58.817Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:59.441Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:59.444Z", "msg": "planned 5 action(s): 3 need approval" }, { "at": "2026-10-19T14:52:59.553Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:59.682Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:59.684Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:52:58.817Z", "updatedAt": "2026-10-19T14:52:59.684Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 34856093ac04 · processing 15.2ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.2ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_3MLW3PH1LVZPW4XG", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 51, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request cb37b883b61b · processing 2.12ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.12ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "256", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "915733078391", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request 1089f3af30ea · processing 1.69ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.69ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "91f2262b-eae1-4820-9d88-846ebdf73f91", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/fdb3d0a5", "email_verified": true, "external_id": "ext_2202cacd333a4193933513ed40", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request 4c71b41a6e7f · processing 0.53ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.53ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request ebf4e9ee6ead · processing 70.7ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 70.7ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "customer": "cus_3MLW3PH1LVZPW4XG", "items": { "object": "list", "data": [ { "object": "subscription_item", "price": { "id": "price_1Pro_Monthly_USD", "object": "price", "active": true, "currency": "usd", "unit_amount": 4900, "unit_amount_decimal": "4900", "product": "prod_SaaS_ProPlan", "type": "recurring", "recurring": { "interval": "month", "interval_count": 1, "usage_type": "licensed", "aggregate_usage": null }, "billing_scheme": "per_unit", "livemode": false, "created": "2024-06-01T08:00:00Z", "metadata": {} }, "quantity": 1, "subscription": "sub_UKGOK8W18VJZMUNC88KZU9KO", "created": 94, "current_period_end": 30, "current_period_start": 58, "discounts": [ "sample-value" ], "id": "sample-value", "metadata": {} } ], "has_more": false, "url": "/v1/subscription_items?subscription=sub_UKGOK8W18VJZMUNC88KZU9KO" }, "status": "incomplete", "object": "subscription", "currency": "usd", "trial_start": null, "trial_end": null, "canceled_at": null, "ended_at": null, "cancel_at_period_end": false, "collection_method": "charge_automatically", "latest_invoice": "in_LELOMHDF9OHKUGJ27PC1DCDC", "default_payment_method": null, "id": "sub_UKGOK8W18VJZMUNC88KZU9KO", "application": null, "application_fee_percent": null, "automatic_tax": { "disabled_reason": "requires_location_inputs", "enabled": true, "liability": null }, "billing_cycle_anchor": 60, "billing_cycle_anchor_config": null, "billing_mode": { "flexible": null, "type": "classic" }, "billing_thresholds": null, "cancel_at": null, "cancellation_details": null, "created": 43, "customer_account": null, "days_until_due": null, "default_source": null, "default_tax_rates": null, "description": null, "discounts": [ "sample-value" ], "invoice_settings": { "account_tax_ids": null, "issuer": { "type": "account" } }, "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "on_behalf_of": null, "pause_collection": null, "payment_settings": null, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "schedule": null, "start_date": 13, "test_clock": null, "transfer_data": null, "trial_settings": null } ], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 7de1380020bf · processing 173.7ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 173.7ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "object": "invoice", "parent": { "type": "subscription_details", "subscription_details": { "subscription": "sub_UKGOK8W18VJZMUNC88KZU9KO", "metadata": {} } }, "customer": "cus_3MLW3PH1LVZPW4XG", "currency": "usd", "total": 4900, "amount_due": 4900, "amount_paid": 0, "amount_remaining": 4900, "status": "open", "created": 1792421450, "id": "in_LELOMHDF9OHKUGJ27PC1DCDC", "payments": { "object": "list", "data": [ { "id": "inpay_4VTXUYLEJA6WPJHCY3GN1UQS", "object": "invoice_payment", "invoice": "in_LELOMHDF9OHKUGJ27PC1DCDC", "amount_requested": 4900, "amount_paid": null, "currency": "usd", "created": 1792421450, "is_default": true, "livemode": false, "status": "open", "status_transitions": { "paid_at": null, "canceled_at": null }, "payment": { "type": "payment_intent", "payment_intent": "pi_OGB7K3PI9JPSBCX5RZ5WRK0Z" } } ], "has_more": false, "url": "/v1/invoice_payments?invoice=in_LELOMHDF9OHKUGJ27PC1DCDC" }, "amount_overpaid": 10, "amount_shipping": 1, "attempt_count": 37, "attempted": true, "auto_advance": true, "automatic_tax": { "disabled_reason": "finalization_requires_location_inputs", "enabled": true, "provider": "default", "status": "complete" }, "collection_method": "charge_automatically", "default_tax_rates": [ { "active": true, "country": "US", "created": 68, "display_name": "Item 273", "id": "obj_0689ef93f0944d359d8a743b4a", "inclusive": true, "jurisdiction_level": "city", "livemode": false, "object": "tax_rate", "percentage": 543.8761, "rate_type": "flat_amount", "tax_type": "amusement_tax" } ], "discounts": [ "sample-value" ], "issuer": { "type": "account" }, "lines": { "data": [ { "amount": 34, "currency": "USD", "discountable": true, "discounts": [ "sample-value" ], "id": "obj_81669a252e994e9ba7df75bbc2", "livemode": false, "metadata": {}, "object": "line_item", "period": { "end": 81, "start": 85 }, "subtotal": 71 } ], "has_more": true, "object": "list", "url": "https://example.com/a818e49c" }, "livemode": true, "payment_settings": { "default_mandate": "sample-value", "payment_method_options": { "acss_debit": { "mandate_options": { "transaction_type": "business" }, "verification_method": "automatic" }, "bancontact": { "preferred_language": "de" }, "card": { "installments": { "enabled": true }, "request_three_d_secure": "any" }, "customer_balance": { "bank_transfer": { "eu_bank_transfer": { "country": "US" }, "type": "default" }, "funding_type": "bank_transfer" }, "konbini": {}, "payto": { "mandate_options": { "amount": 79, "amount_type": "fixed", "purpose": "dependant_support" } }, "sepa_debit": {}, "us_bank_account": { "financial_connections": { "filters": { "account_subcategories": [ "checking" ] }, "permissions": [ "balances" ], "prefetch": [ "balances" ] }, "verification_method": "automatic" } }, "payment_method_types": [ "ach_credit_transfer" ] }, "period_end": 10, "period_start": 99, "post_payment_credit_notes_amount": 16, "pre_payment_credit_notes_amount": 63, "starting_balance": 16, "status_transitions": { "finalized_at": 10, "marked_uncollectible_at": 68, "paid_at": 78, "voided_at": 71 }, "subtotal": 69, "account_country": null, "account_name": null, "account_tax_ids": null, "application": null, "automatically_finalizes_at": null, "billing_reason": null, "confirmation_secret": "[redacted]", "custom_fields": null, "customer_account": null, "customer_address": null, "customer_email": null, "customer_name": null, "customer_phone": null, "customer_shipping": null, "customer_tax_exempt": null, "customer_tax_ids": null, "default_payment_method": null, "default_source": null, "description": null, "due_date": null, "effective_at": null, "ending_balance": null, "footer": null, "from_invoice": null, "hosted_invoice_url": null, "invoice_pdf": null, "last_finalization_error": null, "latest_revision": null, "metadata": null, "next_payment_attempt": null, "number": null, "on_behalf_of": null, "receipt_number": null, "rendering": null, "shipping_cost": null, "shipping_details": null, "statement_descriptor": null, "subtotal_excluding_tax": null, "test_clock": null, "total_discount_amounts": null, "total_excluding_tax": null, "total_pretax_credit_amounts": null, "total_taxes": null, "webhooks_delivered_at": null } ], "has_more": false, "object": "list", "url": "/v1/invoices" } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 531b35d4a215 · processing 12.97ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-active-subscription-retains-billing: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-active-subscription-retains-billing, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 5e69abe63461. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): retain (active subscription sub_UKGOK8W18VJZMUNC88KZU9KO: cancel before erasure)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.97ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "583", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-active-subscription-retains-billing: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-active-subscription-retains-billing, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 5e69abe63461. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): retain (active subscription sub_UKGOK8W18VJZMUNC88KZU9KO: cancel before erasure)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-active-subscription-retains-billing: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-active-subscription-retains-billing, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 5e69abe63461. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): retain (active subscription sub_UKGOK8W18VJZMUNC88KZU9KO: cancel before erasure)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "5bc957df-5485-4b9e-b385-8e63a211e197" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request ab2a793661f9 · processing 13.68ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-active-subscription-retains-billing (GDPR, due 2026-11-14, 25d left) subject 5e69abe63461: hubspot erase, stripe retain, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.68ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "222", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-active-subscription-retains-billing (GDPR, due 2026-11-14, 25d left) subject 5e69abe63461: hubspot erase, stripe retain, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_973e275ad1ec4f25a0fa538793", "client_msg_id": "cli_f08daff41b1e4afebba9b884b0", "name": "item-df9dbe", "old_name": "Sample Old", "parent_user_id": "par_a6298ac5fc404ac3a77a2e5bc2", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "177E5L5GDQ.IGYPVT" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs · active subscription retains billing · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:00.311859+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "active_subscription_retains_billing" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 915733078391", "durationMs": 167 }, { "name": "billing-records", "status": "ok", "summary": "cus_3MLW3PH1LVZPW4XG: 1 live subscription(s), 1 open invoice(s)", "durationMs": 622 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 91f2262b-eae1-4820-9d88-846ebdf73f91", "durationMs": 620 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=retain, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-active-subscription-retains-billing", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "5bc957df-5485-4b9e-b385-8e63a211e197", "appliedAt": "2026-10-19T14:52:59.552Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "contact": "915733078391", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "user": "91f2262b-eae1-4820-9d88-846ebdf73f91", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "sent": false, "after": [ "hubspot.erase_contact", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-active-subscription-retains-billing" }, "attempts": 1, "ref": "177E5L5GDQ.IGYPVT", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:59.682Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 3, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:59.684Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "5e69abe63461", "decisions": { "hubspot": "erase", "stripe": "retain", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:58.817Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:59.441Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:59.444Z", "msg": "planned 5 action(s): 3 need approval" }, { "at": "2026-10-19T14:52:59.553Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:59.682Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:59.684Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:52:58.817Z", "updatedAt": "2026-10-19T14:52:59.684Z" } ] } - · POST app request /invocations · active subscription retains billing · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-active-subscription-retains-billing", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "active_subscription_retains_billing" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:00.533109+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "587", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-active-subscription-retains-billing", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "active_subscription_retains_billing" } }Recorded response · HTTP 200
{ "runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "active_subscription_retains_billing" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 915733078391", "durationMs": 167 }, { "name": "billing-records", "status": "ok", "summary": "cus_3MLW3PH1LVZPW4XG: 1 live subscription(s), 1 open invoice(s)", "durationMs": 622 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 91f2262b-eae1-4820-9d88-846ebdf73f91", "durationMs": 620 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=retain, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-active-subscription-retains-billing", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "5bc957df-5485-4b9e-b385-8e63a211e197", "appliedAt": "2026-10-19T14:52:59.552Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "contact": "915733078391", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "user": "91f2262b-eae1-4820-9d88-846ebdf73f91", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "sent": false, "after": [ "hubspot.erase_contact", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-active-subscription-retains-billing" }, "attempts": 1, "ref": "177E5L5GDQ.IGYPVT", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:59.682Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 3, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:59.684Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "5e69abe63461", "decisions": { "hubspot": "erase", "stripe": "retain", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:58.817Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:59.441Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:59.444Z", "msg": "planned 5 action(s): 3 need approval" }, { "at": "2026-10-19T14:52:59.553Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:59.682Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:59.684Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:00.421Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:58.817Z", "updatedAt": "2026-10-19T14:53:00.421Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs · active subscription retains billing · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/active_subscription_retains_billing/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:00.854097+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "active-subscription-retains-billing-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "active_subscription_retains_billing" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 915733078391", "durationMs": 167 }, { "name": "billing-records", "status": "ok", "summary": "cus_3MLW3PH1LVZPW4XG: 1 live subscription(s), 1 open invoice(s)", "durationMs": 622 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 91f2262b-eae1-4820-9d88-846ebdf73f91", "durationMs": 620 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=retain, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-active-subscription-retains-billing", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "5bc957df-5485-4b9e-b385-8e63a211e197", "appliedAt": "2026-10-19T14:52:59.552Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "contact": "915733078391", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "user": "91f2262b-eae1-4820-9d88-846ebdf73f91", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-active-subscription-retains-billing", "sent": false, "after": [ "hubspot.erase_contact", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-active-subscription-retains-billing" }, "attempts": 1, "ref": "177E5L5GDQ.IGYPVT", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:52:59.682Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 3, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:52:59.684Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "5e69abe63461", "decisions": { "hubspot": "erase", "stripe": "retain", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:52:58.817Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:52:59.441Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:52:59.444Z", "msg": "planned 5 action(s): 3 need approval" }, { "at": "2026-10-19T14:52:59.553Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:52:59.682Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:52:59.684Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:00.421Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:52:58.817Z", "updatedAt": "2026-10-19T14:53:00.421Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs · crm only · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:01.050484+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · crm only · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-crm-only", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_only" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:04.713788+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "479", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-crm-only", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_only" } }Recorded response · HTTP 200
{ "runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_only" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 252562329687", "durationMs": 352 }, { "name": "billing-records", "status": "ok", "summary": "no Stripe customer", "durationMs": 345 }, { "name": "identity-records", "status": "ok", "summary": "no directory account", "durationMs": 370 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=none, workos=none; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-only", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "48742844-c3de-400c-b415-91d0862a2350", "appliedAt": "2026-10-19T14:53:01.756Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-only", "contact": "252562329687", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-only", "sent": false, "after": [ "hubspot.erase_contact" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-only" }, "attempts": 1, "ref": "17S3WAWTLR.907BSS", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:02.942Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:02.943Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "cf9153f4d147", "decisions": { "hubspot": "erase", "stripe": "none", "workos": "none" } }, "events": [ { "at": "2026-10-19T14:53:01.157Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:01.530Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:01.594Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:01.757Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:02.942Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:02.943Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:01.157Z", "updatedAt": "2026-10-19T14:53:02.943Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request f4a61a34ac27 · processing 15.21ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.21ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/customers" } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 0103ae856c23 · processing 1.71ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.71ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "229", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "252562329687", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request b8b50537cbd4 · processing 8.81ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 8.81ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 430842e91a54 · processing 30ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-crm-only: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-crm-only, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref cf9153f4d147. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 30ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "463", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-crm-only: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-crm-only, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref cf9153f4d147. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-crm-only: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-crm-only, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref cf9153f4d147. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "48742844-c3de-400c-b415-91d0862a2350" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 90c25873b128 · processing 49.01ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-crm-only (GDPR, due 2026-11-14, 25d left) subject cf9153f4d147: hubspot erase, stripe none, workos none.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 49.01ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "192", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-crm-only (GDPR, due 2026-11-14, 25d left) subject cf9153f4d147: hubspot erase, stripe none, workos none.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_aba6ba6b45064c08bf9c446a5c", "client_msg_id": "cli_e86092b96fc64ab5a835e39d44", "name": "item-0b6b09", "old_name": "Sample Old", "parent_user_id": "par_d575b23e342a429aa2c55e32d1", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17S3WAWTLR.907BSS" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs · crm only · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:05.235256+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_only" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 252562329687", "durationMs": 352 }, { "name": "billing-records", "status": "ok", "summary": "no Stripe customer", "durationMs": 345 }, { "name": "identity-records", "status": "ok", "summary": "no directory account", "durationMs": 370 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=none, workos=none; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-only", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "48742844-c3de-400c-b415-91d0862a2350", "appliedAt": "2026-10-19T14:53:01.756Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-only", "contact": "252562329687", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-only", "sent": false, "after": [ "hubspot.erase_contact" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-only" }, "attempts": 1, "ref": "17S3WAWTLR.907BSS", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:02.942Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:02.943Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "cf9153f4d147", "decisions": { "hubspot": "erase", "stripe": "none", "workos": "none" } }, "events": [ { "at": "2026-10-19T14:53:01.157Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:01.530Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:01.594Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:01.757Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:02.942Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:02.943Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:01.157Z", "updatedAt": "2026-10-19T14:53:02.943Z" } ] } - · POST app request /invocations · crm only · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-crm-only", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_only" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:05.429636+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "479", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-crm-only", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_only" } }Recorded response · HTTP 200
{ "runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_only" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 252562329687", "durationMs": 352 }, { "name": "billing-records", "status": "ok", "summary": "no Stripe customer", "durationMs": 345 }, { "name": "identity-records", "status": "ok", "summary": "no directory account", "durationMs": 370 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=none, workos=none; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-only", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "48742844-c3de-400c-b415-91d0862a2350", "appliedAt": "2026-10-19T14:53:01.756Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-only", "contact": "252562329687", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-only", "sent": false, "after": [ "hubspot.erase_contact" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-only" }, "attempts": 1, "ref": "17S3WAWTLR.907BSS", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:02.942Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:02.943Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "cf9153f4d147", "decisions": { "hubspot": "erase", "stripe": "none", "workos": "none" } }, "events": [ { "at": "2026-10-19T14:53:01.157Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:01.530Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:01.594Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:01.757Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:02.942Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:02.943Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:05.315Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:01.157Z", "updatedAt": "2026-10-19T14:53:05.315Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs · crm only · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_only/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:05.723174+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "crm-only-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_only" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 252562329687", "durationMs": 352 }, { "name": "billing-records", "status": "ok", "summary": "no Stripe customer", "durationMs": 345 }, { "name": "identity-records", "status": "ok", "summary": "no directory account", "durationMs": 370 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=none, workos=none; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-only", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "48742844-c3de-400c-b415-91d0862a2350", "appliedAt": "2026-10-19T14:53:01.756Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-only", "contact": "252562329687", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-only", "sent": false, "after": [ "hubspot.erase_contact" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-only" }, "attempts": 1, "ref": "17S3WAWTLR.907BSS", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:02.942Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:02.943Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "cf9153f4d147", "decisions": { "hubspot": "erase", "stripe": "none", "workos": "none" } }, "events": [ { "at": "2026-10-19T14:53:01.157Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:01.530Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:01.594Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:01.757Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:02.942Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:02.943Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:05.315Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:01.157Z", "updatedAt": "2026-10-19T14:53:05.315Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs · nothing held · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:05.895629+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · nothing held · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-nothing-held", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "nothing_held" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:07.531923+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "495", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-nothing-held", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "nothing_held" } }Recorded response · HTTP 200
{ "runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "nothing_held" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "no HubSpot contact", "durationMs": 226 }, { "name": "billing-records", "status": "ok", "summary": "no Stripe customer", "durationMs": 111 }, { "name": "identity-records", "status": "ok", "summary": "no directory account", "durationMs": 235 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=none, stripe=none, workos=none; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-nothing-held", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "516b3ef6-3d10-4bc8-8a5e-68e423790837", "appliedAt": "2026-10-19T14:53:07.195Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-nothing-held", "sent": false, "after": [] }, "attempts": 1, "ref": "r7960242669334351", "appliedAt": "2026-10-19T14:53:07.314Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-nothing-held" }, "attempts": 1, "ref": "17RPYU3B6Q.M1I79V", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:07.437Z", "reconciled": null } ], "counts": { "applied": 3, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "bb60b466d1ba", "decisions": { "hubspot": "none", "stripe": "none", "workos": "none" } }, "events": [ { "at": "2026-10-19T14:53:05.984Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:06.223Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:06.227Z", "msg": "planned 3 action(s): 0 need approval" }, { "at": "2026-10-19T14:53:07.195Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:07.315Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:53:07.437Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:07.438Z", "msg": "done (ok)" } ], "createdAt": "2026-10-19T14:53:05.984Z", "updatedAt": "2026-10-19T14:53:07.438Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 54f14c711c87 · processing 4.09ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 4.09ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/customers" } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 8c3cae28839f · processing 1.98ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.98ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "233", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 0, "results": [] } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request 053d99e5a74f · processing 2.16ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.16ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 1524042a63d6 · processing 12.54ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-nothing-held: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-nothing-held, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref bb60b466d1ba. Verification: email_link by privacy-portal.\n- CRM (HubSpot): none (no contact)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.54ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "435", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-nothing-held: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-nothing-held, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref bb60b466d1ba. Verification: email_link by privacy-portal.\n- CRM (HubSpot): none (no contact)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-nothing-held: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-nothing-held, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref bb60b466d1ba. Verification: email_link by privacy-portal.\n- CRM (HubSpot): none (no contact)\n- billing (Stripe): none (no customer)\n- login account: none (no account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "516b3ef6-3d10-4bc8-8a5e-68e423790837" } - · POST gmail request · provider traffic · /gmail/v1/users/me/drafts · HTTP 200 · request e56248521917 · processing 14.61ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3Itbm90aGluZy1oZWxkQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLW5vdGhpbmctaGVsZCBpcyBjb21wbGV0ZQ0KTWVzc2FnZS1JRDogPDYwMjQwNDUyNTA1NjA5OTQuZHNyLWRvbmVAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCldlIGhhdmUgY29tcGxldGVkIHlvdXIgcmVxdWVzdCBEU1Itbm90aGluZy1oZWxkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogbm90aGluZyBoZWxkCi0gYmlsbGluZyAoU3RyaXBlKTogbm90aGluZyBoZWxkCi0gbG9naW4gYWNjb3VudDogbm90aGluZyBoZWxkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 14.61ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "684", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3Itbm90aGluZy1oZWxkQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLW5vdGhpbmctaGVsZCBpcyBjb21wbGV0ZQ0KTWVzc2FnZS1JRDogPDYwMjQwNDUyNTA1NjA5OTQuZHNyLWRvbmVAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCldlIGhhdmUgY29tcGxldGVkIHlvdXIgcmVxdWVzdCBEU1Itbm90aGluZy1oZWxkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogbm90aGluZyBoZWxkCi0gYmlsbGluZyAoU3RyaXBlKTogbm90aGluZyBoZWxkCi0gbG9naW4gYWNjb3VudDogbm90aGluZyBoZWxkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }Recorded response · HTTP 200
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3Itbm90aGluZy1oZWxkQHByaXZhY3kudGVzdA0KU3ViamVjdDogWW91ciBkYXRhIGRlbGV0aW9uIHJlcXVlc3QgRFNSLW5vdGhpbmctaGVsZCBpcyBjb21wbGV0ZQ0KTWVzc2FnZS1JRDogPDYwMjQwNDUyNTA1NjA5OTQuZHNyLWRvbmVAb3BzLmFjbWUuZXhhbXBsZT4NCk1JTUUtVmVyc2lvbjogMS4wDQpDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9IlVURi04Ig0KQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KDQpIZWxsbywKCldlIGhhdmUgY29tcGxldGVkIHlvdXIgcmVxdWVzdCBEU1Itbm90aGluZy1oZWxkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogbm90aGluZyBoZWxkCi0gYmlsbGluZyAoU3RyaXBlKTogbm90aGluZyBoZWxkCi0gbG9naW4gYWNjb3VudDogbm90aGluZyBoZWxkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ", "payload": { "mimeType": "text/plain", "headers": [ { "name": "From", "value": "me" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Your data deletion request DSR-nothing-held is complete" }, { "name": "Message-ID", "value": "<[email protected]>" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/plain; charset=\"UTF-8\"" }, { "name": "Content-Transfer-Encoding", "value": "8bit" } ], "body": { "size": 230, "data": "SGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLW5vdGhpbmctaGVsZCB0byBkZWxldGUgeW91ciBwZXJzb25hbCBkYXRhOgotIENSTSAoSHViU3BvdCk6IG5vdGhpbmcgaGVsZAotIGJpbGxpbmcgKFN0cmlwZSk6IG5vdGhpbmcgaGVsZAotIGxvZ2luIGFjY291bnQ6IG5vdGhpbmcgaGVsZAoKTm90aGluZyBlbHNlIGlzIGhlbGQgYWJvdXQgeW91LgoKQUNNRSBQcml2YWN5IFRlYW0" } }, "sizeEstimate": 496, "labelIds": [ "DRAFT" ], "id": "f103bdeba2c5440b" }, "user_id": "me", "id": "r7960242669334351" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request adee61e358d8 · processing 13.81ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-nothing-held (GDPR, due 2026-11-14, 25d left) subject bb60b466d1ba: hubspot none, stripe none, workos none.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.81ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "195", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-nothing-held (GDPR, due 2026-11-14, 25d left) subject bb60b466d1ba: hubspot none, stripe none, workos none.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_1287bb8a264e4cf6a7f7cb6934", "client_msg_id": "cli_33360a95f9c34e1aa48fa96ddc", "name": "item-f3d46b", "old_name": "Sample Old", "parent_user_id": "par_423b9ac2b751471183734f69d3", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17RPYU3B6Q.M1I79V" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs · nothing held · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:07.807887+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "nothing_held" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "no HubSpot contact", "durationMs": 226 }, { "name": "billing-records", "status": "ok", "summary": "no Stripe customer", "durationMs": 111 }, { "name": "identity-records", "status": "ok", "summary": "no directory account", "durationMs": 235 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=none, stripe=none, workos=none; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-nothing-held", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "516b3ef6-3d10-4bc8-8a5e-68e423790837", "appliedAt": "2026-10-19T14:53:07.195Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-nothing-held", "sent": false, "after": [] }, "attempts": 1, "ref": "r7960242669334351", "appliedAt": "2026-10-19T14:53:07.314Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-nothing-held" }, "attempts": 1, "ref": "17RPYU3B6Q.M1I79V", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:07.437Z", "reconciled": null } ], "counts": { "applied": 3, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "bb60b466d1ba", "decisions": { "hubspot": "none", "stripe": "none", "workos": "none" } }, "events": [ { "at": "2026-10-19T14:53:05.984Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:06.223Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:06.227Z", "msg": "planned 3 action(s): 0 need approval" }, { "at": "2026-10-19T14:53:07.195Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:07.315Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:53:07.437Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:07.438Z", "msg": "done (ok)" } ], "createdAt": "2026-10-19T14:53:05.984Z", "updatedAt": "2026-10-19T14:53:07.438Z" } ] } - · POST app request /invocations · nothing held · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-nothing-held", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "nothing_held" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:07.999564+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "495", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-nothing-held", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "nothing_held" } }Recorded response · HTTP 200
{ "runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "nothing_held" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "no HubSpot contact", "durationMs": 226 }, { "name": "billing-records", "status": "ok", "summary": "no Stripe customer", "durationMs": 111 }, { "name": "identity-records", "status": "ok", "summary": "no directory account", "durationMs": 235 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=none, stripe=none, workos=none; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-nothing-held", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "516b3ef6-3d10-4bc8-8a5e-68e423790837", "appliedAt": "2026-10-19T14:53:07.195Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-nothing-held", "sent": false, "after": [] }, "attempts": 1, "ref": "r7960242669334351", "appliedAt": "2026-10-19T14:53:07.314Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-nothing-held" }, "attempts": 1, "ref": "17RPYU3B6Q.M1I79V", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:07.437Z", "reconciled": null } ], "counts": { "applied": 3, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "bb60b466d1ba", "decisions": { "hubspot": "none", "stripe": "none", "workos": "none" } }, "events": [ { "at": "2026-10-19T14:53:05.984Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:06.223Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:06.227Z", "msg": "planned 3 action(s): 0 need approval" }, { "at": "2026-10-19T14:53:07.195Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:07.315Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:53:07.437Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:07.438Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:53:07.881Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:05.984Z", "updatedAt": "2026-10-19T14:53:07.881Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs · nothing held · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/nothing_held/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:08.284406+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "nothing-held-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "nothing_held" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "no HubSpot contact", "durationMs": 226 }, { "name": "billing-records", "status": "ok", "summary": "no Stripe customer", "durationMs": 111 }, { "name": "identity-records", "status": "ok", "summary": "no directory account", "durationMs": 235 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=none, stripe=none, workos=none; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-nothing-held", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "516b3ef6-3d10-4bc8-8a5e-68e423790837", "appliedAt": "2026-10-19T14:53:07.195Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-nothing-held", "sent": false, "after": [] }, "attempts": 1, "ref": "r7960242669334351", "appliedAt": "2026-10-19T14:53:07.314Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-nothing-held" }, "attempts": 1, "ref": "17RPYU3B6Q.M1I79V", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:07.437Z", "reconciled": null } ], "counts": { "applied": 3, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "bb60b466d1ba", "decisions": { "hubspot": "none", "stripe": "none", "workos": "none" } }, "events": [ { "at": "2026-10-19T14:53:05.984Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:06.223Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:06.227Z", "msg": "planned 3 action(s): 0 need approval" }, { "at": "2026-10-19T14:53:07.195Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:07.315Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:53:07.437Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:07.438Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:53:07.881Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:05.984Z", "updatedAt": "2026-10-19T14:53:07.881Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs · duplicate start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:08.463395+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · duplicate start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-duplicate-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:10.326168+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "507", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-duplicate-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" } }Recorded response · HTTP 200
{ "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 657172589139", "durationMs": 161 }, { "name": "billing-records", "status": "ok", "summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)", "durationMs": 1299 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "durationMs": 1298 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-duplicate-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "90d82880-cb30-4c1a-af39-484ac8ded766", "appliedAt": "2026-10-19T14:53:09.992Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "contact": "657172589139", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "customer": "cus_GCFEKXX986JD4A7Y", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-duplicate-start" }, "attempts": 1, "ref": "17PFUO6NQP.6P3AZK", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:10.132Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:10.133Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f832d197fc40", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:08.542Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:09.843Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:09.846Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:09.992Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:10.132Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:10.133Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:08.542Z", "updatedAt": "2026-10-19T14:53:10.133Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request b0e7b1120eed · processing 17.03ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 17.03ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_GCFEKXX986JD4A7Y", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 71, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request c48cd39a420a · processing 2ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "236", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "657172589139", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request d5a25799b238 · processing 2.66ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.66ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/1ed0e83f", "email_verified": true, "external_id": "ext_63d730c965da4d5589eae6f34b", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request e963a00e8591 · processing 5.97ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 5.97ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request bdfa64bf3a56 · processing 0.65ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.65ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 6ef65807e05a · processing 7.6ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 7.6ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · POST asana request · provider traffic · /tasks · HTTP 201 · request e4964d3a3df7 · processing 12.68ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-duplicate-start: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-duplicate-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f832d197fc40. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.68ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "532", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-duplicate-start: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-duplicate-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f832d197fc40. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-duplicate-start: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-duplicate-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f832d197fc40. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "90d82880-cb30-4c1a-af39-484ac8ded766" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 0ad2cf06334e · processing 14.75ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-duplicate-start (GDPR, due 2026-11-14, 25d left) subject f832d197fc40: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 14.75ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "205", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-duplicate-start (GDPR, due 2026-11-14, 25d left) subject f832d197fc40: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_0bf342d254994a8e8c391e4198", "client_msg_id": "cli_f2782569757b4a7abc5ce59d70", "name": "item-46ef51", "old_name": "Sample Old", "parent_user_id": "par_f1a618b4aefb40c298c568c37d", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17PFUO6NQP.6P3AZK" } - · POST app request /invocations · duplicate start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-duplicate-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:10.982507+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "507", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-duplicate-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" } }Recorded response · HTTP 200
{ "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 657172589139", "durationMs": 161 }, { "name": "billing-records", "status": "ok", "summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)", "durationMs": 1299 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "durationMs": 1298 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-duplicate-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "90d82880-cb30-4c1a-af39-484ac8ded766", "appliedAt": "2026-10-19T14:53:09.992Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "contact": "657172589139", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "customer": "cus_GCFEKXX986JD4A7Y", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-duplicate-start" }, "attempts": 1, "ref": "17PFUO6NQP.6P3AZK", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:10.132Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:10.133Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f832d197fc40", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:08.542Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:09.843Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:09.846Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:09.992Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:10.132Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:10.133Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:10.403Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:08.542Z", "updatedAt": "2026-10-19T14:53:10.403Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs · duplicate start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:11.264845+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 657172589139", "durationMs": 161 }, { "name": "billing-records", "status": "ok", "summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)", "durationMs": 1299 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "durationMs": 1298 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-duplicate-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "90d82880-cb30-4c1a-af39-484ac8ded766", "appliedAt": "2026-10-19T14:53:09.992Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "contact": "657172589139", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "customer": "cus_GCFEKXX986JD4A7Y", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-duplicate-start" }, "attempts": 1, "ref": "17PFUO6NQP.6P3AZK", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:10.132Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:10.133Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f832d197fc40", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:08.542Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:09.843Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:09.846Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:09.992Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:10.132Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:10.133Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:10.403Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:08.542Z", "updatedAt": "2026-10-19T14:53:10.403Z" } ] } - · POST app request /invocations · duplicate start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-duplicate-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:11.499495+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "507", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-duplicate-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" } }Recorded response · HTTP 200
{ "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" }, "duplicateStarts": 2, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 657172589139", "durationMs": 161 }, { "name": "billing-records", "status": "ok", "summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)", "durationMs": 1299 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "durationMs": 1298 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-duplicate-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "90d82880-cb30-4c1a-af39-484ac8ded766", "appliedAt": "2026-10-19T14:53:09.992Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "contact": "657172589139", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "customer": "cus_GCFEKXX986JD4A7Y", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-duplicate-start" }, "attempts": 1, "ref": "17PFUO6NQP.6P3AZK", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:10.132Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:10.133Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f832d197fc40", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:08.542Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:09.843Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:09.846Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:09.992Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:10.132Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:10.133Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:10.403Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:11.357Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:08.542Z", "updatedAt": "2026-10-19T14:53:11.357Z", "duplicate": true } - · POST app request /invocations · duplicate start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-duplicate-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:11.711885+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "507", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-duplicate-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" } }Recorded response · HTTP 200
{ "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" }, "duplicateStarts": 3, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 657172589139", "durationMs": 161 }, { "name": "billing-records", "status": "ok", "summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)", "durationMs": 1299 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "durationMs": 1298 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-duplicate-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "90d82880-cb30-4c1a-af39-484ac8ded766", "appliedAt": "2026-10-19T14:53:09.992Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "contact": "657172589139", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "customer": "cus_GCFEKXX986JD4A7Y", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-duplicate-start" }, "attempts": 1, "ref": "17PFUO6NQP.6P3AZK", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:10.132Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:10.133Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f832d197fc40", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:08.542Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:09.843Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:09.846Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:09.992Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:10.132Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:10.133Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:10.403Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:11.357Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:11.595Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:08.542Z", "updatedAt": "2026-10-19T14:53:11.595Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs · duplicate start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/duplicate_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:12.061507+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "duplicate-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "duplicate_start" }, "duplicateStarts": 3, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 657172589139", "durationMs": 161 }, { "name": "billing-records", "status": "ok", "summary": "cus_GCFEKXX986JD4A7Y: 0 live subscription(s), 0 open invoice(s)", "durationMs": 1299 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "durationMs": 1298 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-duplicate-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "90d82880-cb30-4c1a-af39-484ac8ded766", "appliedAt": "2026-10-19T14:53:09.992Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "contact": "657172589139", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "customer": "cus_GCFEKXX986JD4A7Y", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "user": "1c7b5c2d-f2d2-4186-a4d8-da4c3edd6d5c", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-duplicate-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-duplicate-start" }, "attempts": 1, "ref": "17PFUO6NQP.6P3AZK", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:10.132Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:10.133Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f832d197fc40", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:08.542Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:09.843Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:09.846Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:09.992Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:10.132Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:10.133Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:10.403Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:11.357Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:11.595Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:08.542Z", "updatedAt": "2026-10-19T14:53:11.595Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:12.286255+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:13.964165+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "511", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }Recorded response · HTTP 200
{ "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:13.789Z", "duplicate": false } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 129c232f3399 · processing 1.68ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.68ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "237", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "501251998115", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request e171cec4eff0 · processing 2.3ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.3ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "85235ff0-5fc7-4391-ac38-37809985177d", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/f9a2fe47", "email_verified": true, "external_id": "ext_ca9af3438ce74b779f26022b26", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request f3314aaa7ebb · processing 18.11ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 18.11ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_B2NQADIWYA1THZD2", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 34, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request 77030a1aa34b · processing 0.63ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.63ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request 7e4f084ce7a3 · processing 6.12ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.12ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 5bf82bef2d29 · processing 6.39ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.39ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 3654d3cf1ffe · processing 13ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-concurrent-start: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-concurrent-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f5720788f3a6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "534", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-concurrent-start: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-concurrent-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f5720788f3a6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-concurrent-start: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-concurrent-start, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref f5720788f3a6. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request d4422fd49487 · processing 13.62ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-concurrent-start (GDPR, due 2026-11-14, 25d left) subject f5720788f3a6: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.62ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "206", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-concurrent-start (GDPR, due 2026-11-14, 25d left) subject f5720788f3a6: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_ef587a1ebf8041fc9597dfbaa6", "client_msg_id": "cli_5e467d445d6c4e47a3a1e405af", "name": "item-2465f8", "old_name": "Sample Old", "parent_user_id": "par_8d63a54e6a224692a88dcb6232", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "174WY8LMYE.3PQXDJ" } - · POST app request /invocations · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:14.397706+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "511", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }Recorded response · HTTP 200
{ "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 2, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.189Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:14.189Z", "duplicate": true } - · POST app request /invocations · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:14.778471+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "511", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }Recorded response · HTTP 200
{ "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 4, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.189Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.369Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.519Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:14.519Z", "duplicate": true } - · POST app request /invocations · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:14.227784+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "511", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }Recorded response · HTTP 200
{ "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:14.092Z", "duplicate": true } - · POST app request /invocations · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:14.497412+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "511", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }Recorded response · HTTP 200
{ "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 3, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.189Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.369Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:14.369Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:15.088118+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 4, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.189Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.369Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.519Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:14.519Z" } ] } - · POST app request /invocations · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:15.306105+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "511", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }Recorded response · HTTP 200
{ "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 5, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.189Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.369Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.519Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.181Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:15.181Z", "duplicate": true } - · POST app request /invocations · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:15.840052+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "511", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }Recorded response · HTTP 200
{ "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 8, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.189Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.369Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.519Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.181Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.519Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.619Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.714Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:15.714Z", "duplicate": true } - · POST app request /invocations · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:15.732998+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "511", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }Recorded response · HTTP 200
{ "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 7, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.189Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.369Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.519Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.181Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.519Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.619Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:15.619Z", "duplicate": true } - · POST app request /invocations · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:15.947715+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "511", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }Recorded response · HTTP 200
{ "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 9, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.189Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.369Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.519Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.181Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.519Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.619Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.714Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.834Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:15.834Z", "duplicate": true } - · POST app request /invocations · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:15.647292+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "511", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-concurrent-start", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" } }Recorded response · HTTP 200
{ "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 6, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.189Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.369Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.519Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.181Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.519Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:15.519Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs · concurrent start · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/concurrent_start/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:16.240825+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "concurrent-start-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "concurrent_start" }, "duplicateStarts": 9, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 501251998115", "durationMs": 149 }, { "name": "billing-records", "status": "ok", "summary": "cus_B2NQADIWYA1THZD2: 0 live subscription(s), 0 open invoice(s)", "durationMs": 291 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 85235ff0-5fc7-4391-ac38-37809985177d", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-concurrent-start", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "d88027bf-40dd-4c25-a8b7-b5d59ba4702a", "appliedAt": "2026-10-19T14:53:12.794Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "contact": "501251998115", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "customer": "cus_B2NQADIWYA1THZD2", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "user": "85235ff0-5fc7-4391-ac38-37809985177d", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-concurrent-start", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-concurrent-start" }, "attempts": 1, "ref": "174WY8LMYE.3PQXDJ", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:13.788Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:13.789Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "f5720788f3a6", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:12.371Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:12.671Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:12.674Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:12.794Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:13.788Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:13.789Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:14.092Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.189Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.369Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:14.519Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.181Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.519Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.619Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.714Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:53:15.834Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:12.371Z", "updatedAt": "2026-10-19T14:53:15.834Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs · invalid input rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:16.427804+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · invalid input rejected · HTTP 400
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "invalid-input-rejected-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "x", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "invalid_input_rejected" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:16.606160+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "510", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json", "content-length": "79" }Request body
{ "action": "start", "runId": "invalid-input-rejected-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "x", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "invalid_input_rejected" } }Recorded response · HTTP 400
{ "error": "invalid input", "issues": [ "requestId: request id like DSR-2026-0042" ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs · invalid input rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:16.884560+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · invalid input rejected · HTTP 400
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "invalid-input-rejected-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "x", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "invalid_input_rejected" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:17.075848+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "510", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json", "content-length": "79" }Request body
{ "action": "start", "runId": "invalid-input-rejected-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "x", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "invalid_input_rejected" } }Recorded response · HTTP 400
{ "error": "invalid input", "issues": [ "requestId: request id like DSR-2026-0042" ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs · invalid input rejected · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/invalid_input_rejected/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:17.359562+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs · workos auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:17.581671+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · workos auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-workos-auth-failure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "workos_auth_failure" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:18.337692+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "523", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-workos-auth-failure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "workos_auth_failure" } }Recorded response · HTTP 200
{ "runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "workos_auth_failure" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 168586431606", "durationMs": 213 }, { "name": "billing-records", "status": "ok", "summary": "cus_JJZBH85M2MVB8MQV: 0 live subscription(s), 0 open invoice(s)", "durationMs": 301 }, { "name": "identity-records", "status": "failed", "error": "workos 401 unauthorized: GET /user_management/users → 401 unauthorized", "errorCode": "workos:unauthorized", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=unknown; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-workos-auth-failure", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "fe2aec3d-7ace-4467-a095-d8973631c195", "appliedAt": "2026-10-19T14:53:18.104Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-workos-auth-failure", "contact": "168586431606", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-workos-auth-failure", "customer": "cus_JJZBH85M2MVB8MQV", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-workos-auth-failure" }, "attempts": 1, "ref": "1754TTLY8M.4X7CUV", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:18.220Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:18.222Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "2661ba7a7984", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "unknown" } }, "events": [ { "at": "2026-10-19T14:53:17.670Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:17.974Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=failed" }, { "at": "2026-10-19T14:53:17.978Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:18.104Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:18.220Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:18.222Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:17.670Z", "updatedAt": "2026-10-19T14:53:18.222Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 3ddfc94f5920 · processing 17.08ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 17.08ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_JJZBH85M2MVB8MQV", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 13, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 3099a4b06003 · processing 1.99ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.99ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "240", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "168586431606", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET workos request · workos auth failure · /user_management/users · HTTP 401 · processing 0.21ms
View sanitized request and response
Curl-style request view
curl --request GET '<WORKOS_TWIN_BASE_URL>/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL was not recorded. Provider processing: 0.21ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 401
{ "errors": [ { "status": "401", "code": "unauthorized", "detail": "Invalid API key or expired credentials" } ] } - · GET workos request · provider traffic · /user_management/users · HTTP 401 · request e1f8e233b1de · processing 0.21ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.21ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 401
{ "errors": [ { "status": "401", "code": "unauthorized", "detail": "Invalid API key or expired credentials" } ] } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request f14d6b6162ad · processing 5.87ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 5.87ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request b5093056c780 · processing 6.79ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.79ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 9870c2dd45d2 · processing 12.49ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-workos-auth-failure: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-workos-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2661ba7a7984. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: unknown (directory could not be searched)\nDiscovery incomplete: the request stays open until every system is checked.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.49ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "608", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-workos-auth-failure: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-workos-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2661ba7a7984. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: unknown (directory could not be searched)\nDiscovery incomplete: the request stays open until every system is checked.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-workos-auth-failure: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-workos-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 2661ba7a7984. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: unknown (directory could not be searched)\nDiscovery incomplete: the request stays open until every system is checked.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "fe2aec3d-7ace-4467-a095-d8973631c195" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 324323240f7a · processing 14ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-workos-auth-failure (GDPR, due 2026-11-14, 25d left) subject 2661ba7a7984: hubspot erase, stripe anonymize, workos unknown; discovery incomplete.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 14ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "233", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-workos-auth-failure (GDPR, due 2026-11-14, 25d left) subject 2661ba7a7984: hubspot erase, stripe anonymize, workos unknown; discovery incomplete.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_764e1a36b2344e23bbe5379c57", "client_msg_id": "cli_dc655ebf244f4516b2a1ec0802", "name": "item-aeed61", "old_name": "Sample Old", "parent_user_id": "par_cda44f537c5d4c6496bcef4a30", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "1754TTLY8M.4X7CUV" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs · workos auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:18.673595+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "workos_auth_failure" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 168586431606", "durationMs": 213 }, { "name": "billing-records", "status": "ok", "summary": "cus_JJZBH85M2MVB8MQV: 0 live subscription(s), 0 open invoice(s)", "durationMs": 301 }, { "name": "identity-records", "status": "failed", "error": "workos 401 unauthorized: GET /user_management/users → 401 unauthorized", "errorCode": "workos:unauthorized", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=unknown; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-workos-auth-failure", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "fe2aec3d-7ace-4467-a095-d8973631c195", "appliedAt": "2026-10-19T14:53:18.104Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-workos-auth-failure", "contact": "168586431606", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-workos-auth-failure", "customer": "cus_JJZBH85M2MVB8MQV", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-workos-auth-failure" }, "attempts": 1, "ref": "1754TTLY8M.4X7CUV", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:18.220Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:18.222Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "2661ba7a7984", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "unknown" } }, "events": [ { "at": "2026-10-19T14:53:17.670Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:17.974Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=failed" }, { "at": "2026-10-19T14:53:17.978Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:18.104Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:18.220Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:18.222Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:17.670Z", "updatedAt": "2026-10-19T14:53:18.222Z" } ] } - · POST app request /invocations · workos auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-workos-auth-failure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "workos_auth_failure" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:18.874960+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "523", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-workos-auth-failure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "workos_auth_failure" } }Recorded response · HTTP 200
{ "runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "workos_auth_failure" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 168586431606", "durationMs": 213 }, { "name": "billing-records", "status": "ok", "summary": "cus_JJZBH85M2MVB8MQV: 0 live subscription(s), 0 open invoice(s)", "durationMs": 301 }, { "name": "identity-records", "status": "failed", "error": "workos 401 unauthorized: GET /user_management/users → 401 unauthorized", "errorCode": "workos:unauthorized", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=unknown; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-workos-auth-failure", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "fe2aec3d-7ace-4467-a095-d8973631c195", "appliedAt": "2026-10-19T14:53:18.104Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-workos-auth-failure", "contact": "168586431606", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-workos-auth-failure", "customer": "cus_JJZBH85M2MVB8MQV", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-workos-auth-failure" }, "attempts": 1, "ref": "1754TTLY8M.4X7CUV", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:18.220Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:18.222Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "2661ba7a7984", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "unknown" } }, "events": [ { "at": "2026-10-19T14:53:17.670Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:17.974Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=failed" }, { "at": "2026-10-19T14:53:17.978Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:18.104Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:18.220Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:18.222Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:18.748Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:17.670Z", "updatedAt": "2026-10-19T14:53:18.748Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs · workos auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/workos_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:19.167742+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "workos-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "workos_auth_failure" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 168586431606", "durationMs": 213 }, { "name": "billing-records", "status": "ok", "summary": "cus_JJZBH85M2MVB8MQV: 0 live subscription(s), 0 open invoice(s)", "durationMs": 301 }, { "name": "identity-records", "status": "failed", "error": "workos 401 unauthorized: GET /user_management/users → 401 unauthorized", "errorCode": "workos:unauthorized", "durationMs": 249 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=unknown; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-workos-auth-failure", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "fe2aec3d-7ace-4467-a095-d8973631c195", "appliedAt": "2026-10-19T14:53:18.104Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-workos-auth-failure", "contact": "168586431606", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-workos-auth-failure", "customer": "cus_JJZBH85M2MVB8MQV", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-workos-auth-failure" }, "attempts": 1, "ref": "1754TTLY8M.4X7CUV", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:18.220Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:18.222Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "2661ba7a7984", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "unknown" } }, "events": [ { "at": "2026-10-19T14:53:17.670Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:17.974Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=failed" }, { "at": "2026-10-19T14:53:17.978Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:18.104Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:18.220Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:18.222Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:18.748Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:17.670Z", "updatedAt": "2026-10-19T14:53:18.748Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs · hubspot rate limited · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:19.359320+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · hubspot rate limited · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-hubspot-rate-limited", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hubspot_rate_limited" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:24.577607+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "527", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-hubspot-rate-limited", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hubspot_rate_limited" } }Recorded response · HTTP 200
{ "runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hubspot_rate_limited" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "failed", "error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS", "errorCode": "hubspot:RATE_LIMITS", "durationMs": 4377 }, { "name": "billing-records", "status": "ok", "summary": "cus_UR8ORYFF8AA7OCDL: 0 live subscription(s), 0 open invoice(s)", "durationMs": 253 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user fd3565ac-450d-4edc-b602-6848652a0234", "durationMs": 271 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=unknown, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-hubspot-rate-limited", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "0a63e58f-e5e6-4f07-bc8a-1a0c1880fdac", "appliedAt": "2026-10-19T14:53:24.289Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hubspot-rate-limited", "customer": "cus_UR8ORYFF8AA7OCDL", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hubspot-rate-limited", "user": "fd3565ac-450d-4edc-b602-6848652a0234", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-hubspot-rate-limited" }, "attempts": 1, "ref": "17Z0KHHGX2.02MJZF", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:24.386Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:24.388Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "58a4dffc24aa", "decisions": { "hubspot": "unknown", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:19.717Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:24.095Z", "msg": "agents: crm-records=failed, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:24.098Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:24.289Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:24.386Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:24.388Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:19.717Z", "updatedAt": "2026-10-19T14:53:24.388Z", "duplicate": false } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 44b1daa432f2 · processing 16.47ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 16.47ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_UR8ORYFF8AA7OCDL", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 96, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request c0a360df51ab · processing 1.49ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.49ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "fd3565ac-450d-4edc-b602-6848652a0234", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/7e2093b3", "email_verified": true, "external_id": "ext_50a3dafaa7074ca0a2d3c77e10", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · POST hubspot request · hubspot rate limited · /crm/v3/objects/contacts/search · HTTP 429 · processing 0.32ms
View sanitized request and response
Curl-style request view
curl --request POST '<HUBSPOT_TWIN_BASE_URL>/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL was not recorded. Provider processing: 0.32ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "241", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "2" }Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 429
{ "errors": [ { "status": "429", "code": "RATE_LIMITS", "detail": "You have reached your secondly limit." } ] } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 429 · request a48828bfb10e · processing 0.32ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.32ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "241", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "2" }Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 429
{ "errors": [ { "status": "429", "code": "RATE_LIMITS", "detail": "You have reached your secondly limit." } ] } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 59e0ea17e489 · processing 7.24ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 7.24ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request 57f1be29aedd · processing 5.65ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 5.65ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request 368131f193e8 · processing 0.47ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.47ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · POST hubspot request · hubspot rate limited · /crm/v3/objects/contacts/search · HTTP 429 · processing 0.31ms
View sanitized request and response
Curl-style request view
curl --request POST '<HUBSPOT_TWIN_BASE_URL>/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL was not recorded. Provider processing: 0.31ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "241", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "2" }Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 429
{ "errors": [ { "status": "429", "code": "RATE_LIMITS", "detail": "You have reached your secondly limit." } ] } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 429 · request 9b2de794fc82 · processing 0.31ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.31ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "241", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "2" }Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 429
{ "errors": [ { "status": "429", "code": "RATE_LIMITS", "detail": "You have reached your secondly limit." } ] } - · POST hubspot request · hubspot rate limited · /crm/v3/objects/contacts/search · HTTP 429 · processing 0.3ms
View sanitized request and response
Curl-style request view
curl --request POST '<HUBSPOT_TWIN_BASE_URL>/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL was not recorded. Provider processing: 0.3ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "241", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "2" }Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 429
{ "errors": [ { "status": "429", "code": "RATE_LIMITS", "detail": "You have reached your secondly limit." } ] } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 429 · request c208787de0df · processing 0.3ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.3ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "241", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "2" }Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 429
{ "errors": [ { "status": "429", "code": "RATE_LIMITS", "detail": "You have reached your secondly limit." } ] } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 4cfe4429b6c5 · processing 13.29ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-hubspot-rate-limited: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-hubspot-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 58a4dffc24aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): unknown (CRM could not be searched)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.29ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "572", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-hubspot-rate-limited: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-hubspot-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 58a4dffc24aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): unknown (CRM could not be searched)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-hubspot-rate-limited: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-hubspot-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 58a4dffc24aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): unknown (CRM could not be searched)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "0a63e58f-e5e6-4f07-bc8a-1a0c1880fdac" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request fbcd8f9c9784 · processing 13.3ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-hubspot-rate-limited (GDPR, due 2026-11-14, 25d left) subject 58a4dffc24aa: hubspot unknown, stripe anonymize, workos erase; discovery incomplete.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.3ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "234", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-hubspot-rate-limited (GDPR, due 2026-11-14, 25d left) subject 58a4dffc24aa: hubspot unknown, stripe anonymize, workos erase; discovery incomplete.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_cc1353c689cf4b70ba2562ddb9", "client_msg_id": "cli_0b7cbeb4f47549109c246a43b4", "name": "item-f9d669", "old_name": "Sample Old", "parent_user_id": "par_c9350206579d4602885037e65c", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17Z0KHHGX2.02MJZF" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs · hubspot rate limited · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:24.867770+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hubspot_rate_limited" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "failed", "error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS", "errorCode": "hubspot:RATE_LIMITS", "durationMs": 4377 }, { "name": "billing-records", "status": "ok", "summary": "cus_UR8ORYFF8AA7OCDL: 0 live subscription(s), 0 open invoice(s)", "durationMs": 253 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user fd3565ac-450d-4edc-b602-6848652a0234", "durationMs": 271 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=unknown, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-hubspot-rate-limited", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "0a63e58f-e5e6-4f07-bc8a-1a0c1880fdac", "appliedAt": "2026-10-19T14:53:24.289Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hubspot-rate-limited", "customer": "cus_UR8ORYFF8AA7OCDL", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hubspot-rate-limited", "user": "fd3565ac-450d-4edc-b602-6848652a0234", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-hubspot-rate-limited" }, "attempts": 1, "ref": "17Z0KHHGX2.02MJZF", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:24.386Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:24.388Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "58a4dffc24aa", "decisions": { "hubspot": "unknown", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:19.717Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:24.095Z", "msg": "agents: crm-records=failed, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:24.098Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:24.289Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:24.386Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:24.388Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:19.717Z", "updatedAt": "2026-10-19T14:53:24.388Z" } ] } - · POST app request /invocations · hubspot rate limited · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-hubspot-rate-limited", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hubspot_rate_limited" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:25.053699+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "527", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-hubspot-rate-limited", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hubspot_rate_limited" } }Recorded response · HTTP 200
{ "runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hubspot_rate_limited" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "failed", "error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS", "errorCode": "hubspot:RATE_LIMITS", "durationMs": 4377 }, { "name": "billing-records", "status": "ok", "summary": "cus_UR8ORYFF8AA7OCDL: 0 live subscription(s), 0 open invoice(s)", "durationMs": 253 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user fd3565ac-450d-4edc-b602-6848652a0234", "durationMs": 271 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=unknown, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-hubspot-rate-limited", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "0a63e58f-e5e6-4f07-bc8a-1a0c1880fdac", "appliedAt": "2026-10-19T14:53:24.289Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hubspot-rate-limited", "customer": "cus_UR8ORYFF8AA7OCDL", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hubspot-rate-limited", "user": "fd3565ac-450d-4edc-b602-6848652a0234", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-hubspot-rate-limited" }, "attempts": 1, "ref": "17Z0KHHGX2.02MJZF", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:24.386Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:24.388Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "58a4dffc24aa", "decisions": { "hubspot": "unknown", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:19.717Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:24.095Z", "msg": "agents: crm-records=failed, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:24.098Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:24.289Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:24.386Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:24.388Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:24.939Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:19.717Z", "updatedAt": "2026-10-19T14:53:24.939Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs · hubspot rate limited · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hubspot_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:25.376145+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "hubspot-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hubspot_rate_limited" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "failed", "error": "hubspot 429 RATE_LIMITS: POST /crm/v3/objects/contacts/search → 429 RATE_LIMITS", "errorCode": "hubspot:RATE_LIMITS", "durationMs": 4377 }, { "name": "billing-records", "status": "ok", "summary": "cus_UR8ORYFF8AA7OCDL: 0 live subscription(s), 0 open invoice(s)", "durationMs": 253 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user fd3565ac-450d-4edc-b602-6848652a0234", "durationMs": 271 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=unknown, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-hubspot-rate-limited", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "0a63e58f-e5e6-4f07-bc8a-1a0c1880fdac", "appliedAt": "2026-10-19T14:53:24.289Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hubspot-rate-limited", "customer": "cus_UR8ORYFF8AA7OCDL", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hubspot-rate-limited", "user": "fd3565ac-450d-4edc-b602-6848652a0234", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-hubspot-rate-limited" }, "attempts": 1, "ref": "17Z0KHHGX2.02MJZF", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:24.386Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:24.388Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "58a4dffc24aa", "decisions": { "hubspot": "unknown", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:19.717Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:24.095Z", "msg": "agents: crm-records=failed, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:24.098Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:24.289Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:24.386Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:24.388Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:24.939Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:19.717Z", "updatedAt": "2026-10-19T14:53:24.939Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs · stripe auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:25.544820+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · stripe auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-stripe-auth-failure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "stripe_auth_failure" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:26.451874+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "523", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-stripe-auth-failure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "stripe_auth_failure" } }Recorded response · HTTP 200
{ "runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "stripe_auth_failure" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 036634258788", "durationMs": 288 }, { "name": "billing-records", "status": "failed", "error": "stripe 401 authentication_required: GET /v1/customers → 401 authentication_required", "errorCode": "stripe:authentication_required", "durationMs": 284 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 91c6e8ae-ddea-495b-8a9b-461582be7166", "durationMs": 395 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=unknown, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-stripe-auth-failure", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "49746d6f-4319-47b8-b92f-ed95cefed5b1", "appliedAt": "2026-10-19T14:53:26.152Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-stripe-auth-failure", "contact": "036634258788", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-stripe-auth-failure", "user": "91c6e8ae-ddea-495b-8a9b-461582be7166", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-stripe-auth-failure" }, "attempts": 1, "ref": "17YZOIG6UB.XSK03O", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:26.355Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:26.356Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9a911ce161aa", "decisions": { "hubspot": "erase", "stripe": "unknown", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:25.618Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:26.015Z", "msg": "agents: crm-records=ok, billing-records=failed, identity-records=ok" }, { "at": "2026-10-19T14:53:26.018Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:26.152Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:26.355Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:26.356Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:25.618Z", "updatedAt": "2026-10-19T14:53:26.356Z", "duplicate": false } - · GET stripe request · stripe auth failure · /v1/customers · HTTP 401 · processing 1.02ms
View sanitized request and response
Curl-style request view
curl --request GET '<STRIPE_TWIN_BASE_URL>/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL was not recorded. Provider processing: 1.02ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 401
{ "error": { "type": "invalid_request_error", "code": "authentication_required", "doc_url": "https://stripe.com/docs/error-codes/authentication-required", "message": "Invalid API key provided. You did not provide a valid API key. Ensure your Authorization header contains a valid Bearer token." } } - · GET stripe request · provider traffic · /v1/customers · HTTP 401 · request 9227021f3434 · processing 1.02ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.02ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 401
{ "error": { "type": "invalid_request_error", "code": "authentication_required", "doc_url": "https://stripe.com/docs/error-codes/authentication-required", "message": "Invalid API key provided. You did not provide a valid API key. Ensure your Authorization header contains a valid Bearer token." } } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 7b70ed06cbd3 · processing 2.07ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.07ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "240", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "036634258788", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request ec2ce8358259 · processing 2.59ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.59ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "91c6e8ae-ddea-495b-8a9b-461582be7166", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/19b17bda", "email_verified": true, "external_id": "ext_0b2f096432014433b09403d821", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request d9a5c8dd0951 · processing 0.53ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.53ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 354248d6b0a5 · processing 13.2ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-stripe-auth-failure: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-stripe-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9a911ce161aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): unknown (billing could not be searched)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.2ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "558", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-stripe-auth-failure: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-stripe-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9a911ce161aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): unknown (billing could not be searched)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-stripe-auth-failure: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-stripe-auth-failure, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9a911ce161aa. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): unknown (billing could not be searched)\n- login account: erase (login account)\nDiscovery incomplete: the request stays open until every system is checked.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "49746d6f-4319-47b8-b92f-ed95cefed5b1" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request ef58fb2ccd6e · processing 13.93ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-stripe-auth-failure (GDPR, due 2026-11-14, 25d left) subject 9a911ce161aa: hubspot erase, stripe unknown, workos erase; discovery incomplete.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.93ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "229", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-stripe-auth-failure (GDPR, due 2026-11-14, 25d left) subject 9a911ce161aa: hubspot erase, stripe unknown, workos erase; discovery incomplete.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_f49a2fcda933416a82764b3621", "client_msg_id": "cli_98659429113a4ba99a8fceb8f0", "name": "item-d70a77", "old_name": "Sample Old", "parent_user_id": "par_1799e1dca2fa488e87f12977b5", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17YZOIG6UB.XSK03O" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs · stripe auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:26.739380+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "stripe_auth_failure" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 036634258788", "durationMs": 288 }, { "name": "billing-records", "status": "failed", "error": "stripe 401 authentication_required: GET /v1/customers → 401 authentication_required", "errorCode": "stripe:authentication_required", "durationMs": 284 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 91c6e8ae-ddea-495b-8a9b-461582be7166", "durationMs": 395 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=unknown, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-stripe-auth-failure", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "49746d6f-4319-47b8-b92f-ed95cefed5b1", "appliedAt": "2026-10-19T14:53:26.152Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-stripe-auth-failure", "contact": "036634258788", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-stripe-auth-failure", "user": "91c6e8ae-ddea-495b-8a9b-461582be7166", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-stripe-auth-failure" }, "attempts": 1, "ref": "17YZOIG6UB.XSK03O", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:26.355Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:26.356Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9a911ce161aa", "decisions": { "hubspot": "erase", "stripe": "unknown", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:25.618Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:26.015Z", "msg": "agents: crm-records=ok, billing-records=failed, identity-records=ok" }, { "at": "2026-10-19T14:53:26.018Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:26.152Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:26.355Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:26.356Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:25.618Z", "updatedAt": "2026-10-19T14:53:26.356Z" } ] } - · POST app request /invocations · stripe auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-stripe-auth-failure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "stripe_auth_failure" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:26.932601+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "523", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-stripe-auth-failure", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "stripe_auth_failure" } }Recorded response · HTTP 200
{ "runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "stripe_auth_failure" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 036634258788", "durationMs": 288 }, { "name": "billing-records", "status": "failed", "error": "stripe 401 authentication_required: GET /v1/customers → 401 authentication_required", "errorCode": "stripe:authentication_required", "durationMs": 284 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 91c6e8ae-ddea-495b-8a9b-461582be7166", "durationMs": 395 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=unknown, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-stripe-auth-failure", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "49746d6f-4319-47b8-b92f-ed95cefed5b1", "appliedAt": "2026-10-19T14:53:26.152Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-stripe-auth-failure", "contact": "036634258788", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-stripe-auth-failure", "user": "91c6e8ae-ddea-495b-8a9b-461582be7166", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-stripe-auth-failure" }, "attempts": 1, "ref": "17YZOIG6UB.XSK03O", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:26.355Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:26.356Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9a911ce161aa", "decisions": { "hubspot": "erase", "stripe": "unknown", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:25.618Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:26.015Z", "msg": "agents: crm-records=ok, billing-records=failed, identity-records=ok" }, { "at": "2026-10-19T14:53:26.018Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:26.152Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:26.355Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:26.356Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:26.815Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:25.618Z", "updatedAt": "2026-10-19T14:53:26.815Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs · stripe auth failure · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/stripe_auth_failure/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:27.237574+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "stripe-auth-failure-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "stripe_auth_failure" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 036634258788", "durationMs": 288 }, { "name": "billing-records", "status": "failed", "error": "stripe 401 authentication_required: GET /v1/customers → 401 authentication_required", "errorCode": "stripe:authentication_required", "durationMs": 284 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 91c6e8ae-ddea-495b-8a9b-461582be7166", "durationMs": 395 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=unknown, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-stripe-auth-failure", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "49746d6f-4319-47b8-b92f-ed95cefed5b1", "appliedAt": "2026-10-19T14:53:26.152Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-stripe-auth-failure", "contact": "036634258788", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-stripe-auth-failure", "user": "91c6e8ae-ddea-495b-8a9b-461582be7166", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-stripe-auth-failure" }, "attempts": 1, "ref": "17YZOIG6UB.XSK03O", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:26.355Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 2, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:26.356Z" }, "output": { "verified": true, "complete": false, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9a911ce161aa", "decisions": { "hubspot": "erase", "stripe": "unknown", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:25.618Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:26.015Z", "msg": "agents: crm-records=ok, billing-records=failed, identity-records=ok" }, { "at": "2026-10-19T14:53:26.018Z", "msg": "planned 4 action(s): 2 need approval" }, { "at": "2026-10-19T14:53:26.152Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:26.355Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:26.356Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:26.815Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:25.618Z", "updatedAt": "2026-10-19T14:53:26.815Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs · slack rate limited · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:27.422329+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · slack rate limited · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-slack-rate-limited", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "slack_rate_limited" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:37.400229+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "519", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-slack-rate-limited", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "slack_rate_limited" } }Recorded response · HTTP 200
{ "runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "slack_rate_limited" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 152653482639", "durationMs": 111 }, { "name": "billing-records", "status": "ok", "summary": "cus_4VWGLRUH188BHLBN: 0 live subscription(s), 0 open invoice(s)", "durationMs": 292 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 1ba6d5ec-6599-4899-acb2-af85471dfd38", "durationMs": 207 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-slack-rate-limited", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "15a77af8-07a9-4375-87d5-85eebed716e6", "appliedAt": "2026-10-19T14:53:27.954Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "contact": "152653482639", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "customer": "cus_4VWGLRUH188BHLBN", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "user": "1ba6d5ec-6599-4899-acb2-af85471dfd38", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "failed", "summary": { "channel": "C0BILLING01", "requestId": "DSR-slack-rate-limited" }, "attempts": 1, "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited", "errorCode": "slack:ratelimited", "reconciled": null } ], "counts": { "applied": 1, "failed": 1, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:37.211Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9d772a8addf0", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:27.509Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:27.803Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:27.806Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:27.954Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:37.209Z", "msg": "slack.post_dsr: failed (slack:ratelimited)" }, { "at": "2026-10-19T14:53:37.211Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:27.509Z", "updatedAt": "2026-10-19T14:53:37.211Z", "duplicate": false } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request a4eeea9232df · processing 1.6ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.6ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "1ba6d5ec-6599-4899-acb2-af85471dfd38", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/e1fc6aa5", "email_verified": true, "external_id": "ext_9ab31f2cc3e7418d86f43f2cf3", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 905e4402161d · processing 2.5ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.5ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "239", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "152653482639", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 541cebc435ff · processing 18.07ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 18.07ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_4VWGLRUH188BHLBN", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 41, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request f91b2f805156 · processing 0.61ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.61ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 75384dffbce3 · processing 9.54ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 9.54ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request 596b36919357 · processing 6.61ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.61ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 9e92c1fd02f7 · processing 13.64ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-slack-rate-limited: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-slack-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9d772a8addf0. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.64ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "538", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-slack-rate-limited: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-slack-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9d772a8addf0. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-slack-rate-limited: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-slack-rate-limited, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9d772a8addf0. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "15a77af8-07a9-4375-87d5-85eebed716e6" } - · POST slack request · slack rate limited · /api/chat.postMessage · HTTP 429 · processing 0.87ms
View sanitized request and response
Curl-style request view
curl --request POST '<SLACK_TWIN_BASE_URL>/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL was not recorded. Provider processing: 0.87ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "208", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 429
{ "ok": false, "error": "ratelimited" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 429 · request ecfe2521df48 · processing 0.87ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.87ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "208", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 429
{ "ok": false, "error": "ratelimited" } - · POST slack request · slack rate limited · /api/chat.postMessage · HTTP 429 · processing 1ms
View sanitized request and response
Curl-style request view
curl --request POST '<SLACK_TWIN_BASE_URL>/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL was not recorded. Provider processing: 1ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "208", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 429
{ "ok": false, "error": "ratelimited" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 429 · request 53685f3acca9 · processing 1ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "208", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 429
{ "ok": false, "error": "ratelimited" } - · POST slack request · slack rate limited · /api/chat.postMessage · HTTP 429 · processing 0.8ms
View sanitized request and response
Curl-style request view
curl --request POST '<SLACK_TWIN_BASE_URL>/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL was not recorded. Provider processing: 0.8ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "208", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 429
{ "ok": false, "error": "ratelimited" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 429 · request 1cb466844f9c · processing 0.8ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.8ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "208", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
{ "retry-after": "30" }Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-slack-rate-limited (GDPR, due 2026-11-14, 25d left) subject 9d772a8addf0: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 429
{ "ok": false, "error": "ratelimited" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs · slack rate limited · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:37.683239+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "slack_rate_limited" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 152653482639", "durationMs": 111 }, { "name": "billing-records", "status": "ok", "summary": "cus_4VWGLRUH188BHLBN: 0 live subscription(s), 0 open invoice(s)", "durationMs": 292 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 1ba6d5ec-6599-4899-acb2-af85471dfd38", "durationMs": 207 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-slack-rate-limited", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "15a77af8-07a9-4375-87d5-85eebed716e6", "appliedAt": "2026-10-19T14:53:27.954Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "contact": "152653482639", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "customer": "cus_4VWGLRUH188BHLBN", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "user": "1ba6d5ec-6599-4899-acb2-af85471dfd38", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "failed", "summary": { "channel": "C0BILLING01", "requestId": "DSR-slack-rate-limited" }, "attempts": 1, "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited", "errorCode": "slack:ratelimited", "reconciled": null } ], "counts": { "applied": 1, "failed": 1, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:37.211Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9d772a8addf0", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:27.509Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:27.803Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:27.806Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:27.954Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:37.209Z", "msg": "slack.post_dsr: failed (slack:ratelimited)" }, { "at": "2026-10-19T14:53:37.211Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:27.509Z", "updatedAt": "2026-10-19T14:53:37.211Z" } ] } - · POST app request /invocations · slack rate limited · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-slack-rate-limited", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "slack_rate_limited" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:37.878144+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "519", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-slack-rate-limited", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "slack_rate_limited" } }Recorded response · HTTP 200
{ "runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "slack_rate_limited" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 152653482639", "durationMs": 111 }, { "name": "billing-records", "status": "ok", "summary": "cus_4VWGLRUH188BHLBN: 0 live subscription(s), 0 open invoice(s)", "durationMs": 292 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 1ba6d5ec-6599-4899-acb2-af85471dfd38", "durationMs": 207 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-slack-rate-limited", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "15a77af8-07a9-4375-87d5-85eebed716e6", "appliedAt": "2026-10-19T14:53:27.954Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "contact": "152653482639", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "customer": "cus_4VWGLRUH188BHLBN", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "user": "1ba6d5ec-6599-4899-acb2-af85471dfd38", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "failed", "summary": { "channel": "C0BILLING01", "requestId": "DSR-slack-rate-limited" }, "attempts": 1, "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited", "errorCode": "slack:ratelimited", "reconciled": null } ], "counts": { "applied": 1, "failed": 1, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:37.211Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9d772a8addf0", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:27.509Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:27.803Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:27.806Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:27.954Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:37.209Z", "msg": "slack.post_dsr: failed (slack:ratelimited)" }, { "at": "2026-10-19T14:53:37.211Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:37.771Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:27.509Z", "updatedAt": "2026-10-19T14:53:37.771Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs · slack rate limited · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/slack_rate_limited/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:38.156907+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "slack-rate-limited-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "slack_rate_limited" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 152653482639", "durationMs": 111 }, { "name": "billing-records", "status": "ok", "summary": "cus_4VWGLRUH188BHLBN: 0 live subscription(s), 0 open invoice(s)", "durationMs": 292 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 1ba6d5ec-6599-4899-acb2-af85471dfd38", "durationMs": 207 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-slack-rate-limited", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "15a77af8-07a9-4375-87d5-85eebed716e6", "appliedAt": "2026-10-19T14:53:27.954Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "contact": "152653482639", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "customer": "cus_4VWGLRUH188BHLBN", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "user": "1ba6d5ec-6599-4899-acb2-af85471dfd38", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-slack-rate-limited", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "failed", "summary": { "channel": "C0BILLING01", "requestId": "DSR-slack-rate-limited" }, "attempts": 1, "error": "slack 429 ratelimited: POST /api/chat.postMessage → 429 ratelimited", "errorCode": "slack:ratelimited", "reconciled": null } ], "counts": { "applied": 1, "failed": 1, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:37.211Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9d772a8addf0", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:27.509Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:27.803Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:27.806Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:27.954Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:37.209Z", "msg": "slack.post_dsr: failed (slack:ratelimited)" }, { "at": "2026-10-19T14:53:37.211Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:37.771Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:27.509Z", "updatedAt": "2026-10-19T14:53:37.771Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:38.328929+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-restart-while-parked", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "restart_while_parked" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:39.219197+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "527", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-restart-while-parked", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "restart_while_parked" } }Recorded response · HTTP 200
{ "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "restart_while_parked" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 748298322904", "durationMs": 114 }, { "name": "billing-records", "status": "ok", "summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)", "durationMs": 315 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "durationMs": 331 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "03785e86-950f-435d-96b0-5369bac527ef", "appliedAt": "2026-10-19T14:53:38.904Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-restart-while-parked", "contact": "748298322904", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-restart-while-parked", "customer": "cus_KVLTM2G0BDC1W58U", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-restart-while-parked", "user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-restart-while-parked", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-restart-while-parked" }, "attempts": 1, "ref": "17QG80NU8W.VV1L39", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:39.027Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:39.029Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "40d5510b2417", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:38.400Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:38.737Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:38.746Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:38.905Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:39.027Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:39.029Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:53:38.400Z", "updatedAt": "2026-10-19T14:53:39.029Z", "duplicate": false } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 4ca577cdb93e · processing 1.53ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.53ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "241", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "748298322904", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request e93c46623de5 · processing 15.92ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 15.92ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_KVLTM2G0BDC1W58U", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 31, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request b3055ff13237 · processing 1.62ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.62ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/42fdb09d", "email_verified": true, "external_id": "ext_e3338d8d09f74cc1ae14bcbc18", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request b4938c6ce6b6 · processing 5.59ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 5.59ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 82a0cc45c820 · processing 6.35ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.35ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request ec5f9949a1fd · processing 0.51ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.51ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 4c3ab9f81090 · processing 12.57ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-restart-while-parked: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-restart-while-parked, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 40d5510b2417. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.57ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "542", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-restart-while-parked: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-restart-while-parked, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 40d5510b2417. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-restart-while-parked: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-restart-while-parked, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 40d5510b2417. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "03785e86-950f-435d-96b0-5369bac527ef" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 73c577fa3b33 · processing 10.93ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-restart-while-parked (GDPR, due 2026-11-14, 25d left) subject 40d5510b2417: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 10.93ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "210", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-restart-while-parked (GDPR, due 2026-11-14, 25d left) subject 40d5510b2417: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_846f7c57f9594f94b2d94dcecd", "client_msg_id": "cli_8704190ed66f4fe2bbc7476623", "name": "item-78db83", "old_name": "Sample Old", "parent_user_id": "par_5ef43d4783794f98894e33d4aa", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17QG80NU8W.VV1L39" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:39.401253+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:39.591626+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:40.043954+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:40.472976+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:40.907449+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:41.343510+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:41.769435+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:42.199864+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:42.655017+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:43.114941+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:44.679537+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:45.126840+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:45.569727+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:45.986245+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:46.431169+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:46.854154+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:47.290812+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:47.715666+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:48.138301+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:48.534407+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:48.964799+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:49.382328+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:50.102010+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:50.508062+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:50.930181+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:51.364624+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:51.785815+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:52.184062+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:52.593452+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:53.014927+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:53.428556+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:53.860117+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:54.265326+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:54.666369+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:55.117338+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:55.544202+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:55.945907+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:56.376453+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:56.811108+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:57.244785+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:57.674906+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:58.111621+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:58.539096+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:58.998353+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "eebdbf28-9efb-4585-bce3-17f68f358f72", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:52:36.594Z" } - · GET app request /verify/runtime · restart while parked · HTTP 502
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:59.406336+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "text/html; charset=UTF-8", "content-length": "6418", "retry-after": "60" }Request body
This request had no body.
Recorded response · HTTP 502
No response body was saved.
- · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:53:59.832271+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · POST app request /invocations · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:00.932806+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "124", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }Recorded response · HTTP 200
{ "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "restart_while_parked" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 748298322904", "durationMs": 114 }, { "name": "billing-records", "status": "ok", "summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)", "durationMs": 315 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "durationMs": 331 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "03785e86-950f-435d-96b0-5369bac527ef", "appliedAt": "2026-10-19T14:53:38.904Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "contact": "748298322904", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "748298322904", "appliedAt": "2026-10-19T14:54:00.174Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "customer": "cus_KVLTM2G0BDC1W58U", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KVLTM2G0BDC1W58U", "appliedAt": "2026-10-19T14:54:00.583Z", "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "privilegedRoles": [] }, "attempts": 1, "ref": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "appliedAt": "2026-10-19T14:54:00.698Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r5130954621264472", "appliedAt": "2026-10-19T14:54:00.821Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-restart-while-parked" }, "attempts": 1, "ref": "17QG80NU8W.VV1L39", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:39.027Z", "reconciled": null } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:39.029Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:53:59.919Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "40d5510b2417", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:38.400Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:38.737Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:38.746Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:38.905Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:39.027Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:39.029Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:59.919Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:00.175Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:00.583Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:00.699Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:00.822Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:00.823Z", "msg": "done (ok)" } ], "createdAt": "2026-10-19T14:53:38.400Z", "updatedAt": "2026-10-19T14:54:00.823Z", "result": "recorded" } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/gdpr-delete · HTTP 204 · request 897a5e6d74ed · processing 3.09ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "objectId": "748298322904" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 3.09ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "27", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "objectId": "748298322904" }Recorded response · HTTP 204
No response body was saved.
- · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request da7f45f26998 · processing 17.82ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 17.82ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · POST stripe request · provider traffic · /v1/customers/cus_KVLTM2G0BDC1W58U · HTTP 200 · request 84add940f819 · processing 29.86ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KVLTM2G0BDC1W58U' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/x-www-form-urlencoded' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "email": "[email protected]", "name": "Erased customer", "phone": "", "description": "", "metadata": { "acme_erased": "DSR-restart-while-parked" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 29.86ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "142", "user-agent": "node", "content-type": "application/x-www-form-urlencoded", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "email": "[email protected]", "name": "Erased customer", "phone": "", "description": "", "metadata": { "acme_erased": "DSR-restart-while-parked" } }Recorded response · HTTP 200
{ "email": "[email protected]", "name": "Erased customer", "phone": "", "id": "cus_KVLTM2G0BDC1W58U", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 31, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": "", "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "metadata": { "acme_erased": "DSR-restart-while-parked" } } - · DELETE workos request · provider traffic · /user_management/users/7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed · HTTP 204 · request 9b915f6a5ca5 · processing 1.41ms
- · POST gmail request · provider traffic · /gmail/v1/users/me/drafts · HTTP 200 · request b5fed1ec2893 · processing 14.75ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItcmVzdGFydC13aGlsZS1wYXJrZWRAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItcmVzdGFydC13aGlsZS1wYXJrZWQgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw5YmViMjg4MjE0MDE5N2U1LmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLXJlc3RhcnQtd2hpbGUtcGFya2VkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 14.75ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "780", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItcmVzdGFydC13aGlsZS1wYXJrZWRAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItcmVzdGFydC13aGlsZS1wYXJrZWQgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw5YmViMjg4MjE0MDE5N2U1LmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLXJlc3RhcnQtd2hpbGUtcGFya2VkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }Recorded response · HTTP 200
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItcmVzdGFydC13aGlsZS1wYXJrZWRAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItcmVzdGFydC13aGlsZS1wYXJrZWQgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw5YmViMjg4MjE0MDE5N2U1LmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLXJlc3RhcnQtd2hpbGUtcGFya2VkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ", "payload": { "mimeType": "text/plain", "headers": [ { "name": "From", "value": "me" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Your data deletion request DSR-restart-while-parked is complete" }, { "name": "Message-ID", "value": "<[email protected]>" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/plain; charset=\"UTF-8\"" }, { "name": "Content-Transfer-Encoding", "value": "8bit" } ], "body": { "size": 286, "data": "SGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLXJlc3RhcnQtd2hpbGUtcGFya2VkIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }, "sizeEstimate": 568, "labelIds": [ "DRAFT" ], "id": "5d9a6b3566f74f58" }, "user_id": "me", "id": "r5130954621264472" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:01.598365+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "restart_while_parked" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 748298322904", "durationMs": 114 }, { "name": "billing-records", "status": "ok", "summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)", "durationMs": 315 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "durationMs": 331 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "03785e86-950f-435d-96b0-5369bac527ef", "appliedAt": "2026-10-19T14:53:38.904Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "contact": "748298322904", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "748298322904", "appliedAt": "2026-10-19T14:54:00.174Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "customer": "cus_KVLTM2G0BDC1W58U", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KVLTM2G0BDC1W58U", "appliedAt": "2026-10-19T14:54:00.583Z", "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "privilegedRoles": [] }, "attempts": 1, "ref": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "appliedAt": "2026-10-19T14:54:00.698Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r5130954621264472", "appliedAt": "2026-10-19T14:54:00.821Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-restart-while-parked" }, "attempts": 1, "ref": "17QG80NU8W.VV1L39", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:39.027Z", "reconciled": null } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:39.029Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:53:59.919Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "40d5510b2417", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:38.400Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:38.737Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:38.746Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:38.905Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:39.027Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:39.029Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:59.919Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:00.175Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:00.583Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:00.699Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:00.822Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:00.823Z", "msg": "done (ok)" } ], "createdAt": "2026-10-19T14:53:38.400Z", "updatedAt": "2026-10-19T14:54:00.823Z" } ] } - · POST app request /invocations · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-restart-while-parked", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "restart_while_parked" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:02.039025+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "527", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-restart-while-parked", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "restart_while_parked" } }Recorded response · HTTP 200
{ "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "restart_while_parked" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 748298322904", "durationMs": 114 }, { "name": "billing-records", "status": "ok", "summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)", "durationMs": 315 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "durationMs": 331 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "03785e86-950f-435d-96b0-5369bac527ef", "appliedAt": "2026-10-19T14:53:38.904Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "contact": "748298322904", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "748298322904", "appliedAt": "2026-10-19T14:54:00.174Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "customer": "cus_KVLTM2G0BDC1W58U", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KVLTM2G0BDC1W58U", "appliedAt": "2026-10-19T14:54:00.583Z", "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "privilegedRoles": [] }, "attempts": 1, "ref": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "appliedAt": "2026-10-19T14:54:00.698Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r5130954621264472", "appliedAt": "2026-10-19T14:54:00.821Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-restart-while-parked" }, "attempts": 1, "ref": "17QG80NU8W.VV1L39", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:39.027Z", "reconciled": null } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:39.029Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:53:59.919Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "40d5510b2417", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:38.400Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:38.737Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:38.746Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:38.905Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:39.027Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:39.029Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:59.919Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:00.175Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:00.583Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:00.699Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:00.822Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:00.823Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:54:01.850Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:38.400Z", "updatedAt": "2026-10-19T14:54:01.850Z", "duplicate": true } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:02.415988+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:02.879796+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:03.721782+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:04.311964+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:04.831911+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:05.271799+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:05.686417+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:06.105781+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:06.519404+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:06.962077+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:07.377756+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:07.817879+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:08.242994+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:08.657940+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:09.104822+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:09.533536+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:09.955984+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:10.381215+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:10.824540+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:11.255113+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:11.687202+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "cd5f871a-7175-41ac-9efa-3387ee48a235", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:53:59.659Z" } - · GET app request /verify/runtime · restart while parked · HTTP 502
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:12.138492+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "text/html; charset=UTF-8", "content-length": "6418", "retry-after": "60" }Request body
This request had no body.
Recorded response · HTTP 502
No response body was saved.
- · GET app request /verify/runtime · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runtime' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:12.572635+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "instance_id": "7826c8cc-1e96-4d31-ab27-a91ec1dab03b", "workflow": "privacy-erasure", "startedAt": "2026-10-19T14:54:12.314Z" } - · POST app request /invocations · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:12.788754+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "124", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }Recorded response · HTTP 200
{ "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "restart_while_parked" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 748298322904", "durationMs": 114 }, { "name": "billing-records", "status": "ok", "summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)", "durationMs": 315 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "durationMs": 331 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "03785e86-950f-435d-96b0-5369bac527ef", "appliedAt": "2026-10-19T14:53:38.904Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "contact": "748298322904", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "748298322904", "appliedAt": "2026-10-19T14:54:00.174Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "customer": "cus_KVLTM2G0BDC1W58U", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KVLTM2G0BDC1W58U", "appliedAt": "2026-10-19T14:54:00.583Z", "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "privilegedRoles": [] }, "attempts": 1, "ref": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "appliedAt": "2026-10-19T14:54:00.698Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r5130954621264472", "appliedAt": "2026-10-19T14:54:00.821Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-restart-while-parked" }, "attempts": 1, "ref": "17QG80NU8W.VV1L39", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:39.027Z", "reconciled": null } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:39.029Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:53:59.919Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "40d5510b2417", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:38.400Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:38.737Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:38.746Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:38.905Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:39.027Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:39.029Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:59.919Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:00.175Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:00.583Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:00.699Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:00.822Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:00.823Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:54:01.850Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:38.400Z", "updatedAt": "2026-10-19T14:54:12.653Z", "result": "already_decided" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs · restart while parked · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/restart_while_parked/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:13.110338+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "restart-while-parked-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "restart_while_parked" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 748298322904", "durationMs": 114 }, { "name": "billing-records", "status": "ok", "summary": "cus_KVLTM2G0BDC1W58U: 0 live subscription(s), 0 open invoice(s)", "durationMs": 315 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "durationMs": 331 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "03785e86-950f-435d-96b0-5369bac527ef", "appliedAt": "2026-10-19T14:53:38.904Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "contact": "748298322904", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "748298322904", "appliedAt": "2026-10-19T14:54:00.174Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "customer": "cus_KVLTM2G0BDC1W58U", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KVLTM2G0BDC1W58U", "appliedAt": "2026-10-19T14:54:00.583Z", "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "user": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "privilegedRoles": [] }, "attempts": 1, "ref": "7ce32e3b-328d-468e-a8bd-a3cce3c0d2ed", "appliedAt": "2026-10-19T14:54:00.698Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-restart-while-parked", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r5130954621264472", "appliedAt": "2026-10-19T14:54:00.821Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-restart-while-parked" }, "attempts": 1, "ref": "17QG80NU8W.VV1L39", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:53:39.027Z", "reconciled": null } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:53:39.029Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:53:59.919Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "40d5510b2417", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:53:38.400Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:53:38.737Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:53:38.746Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:53:38.905Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:53:39.027Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:53:39.029Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:53:59.919Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:00.175Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:00.583Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:00.699Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:00.822Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:00.823Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:54:01.850Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:53:38.400Z", "updatedAt": "2026-10-19T14:54:12.653Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs · crm erasure readback · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:13.321100+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · crm erasure readback · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-crm-erasure-readback", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:14.338586+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "527", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-crm-erasure-readback", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" } }Recorded response · HTTP 200
{ "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 751827790049", "durationMs": 308 }, { "name": "billing-records", "status": "ok", "summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)", "durationMs": 454 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b", "durationMs": 341 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3", "appliedAt": "2026-10-19T14:54:14.049Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-erasure-readback", "contact": "751827790049", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-erasure-readback", "customer": "cus_KUFEVHELIBI1YPMX", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-erasure-readback", "user": "c740de74-659d-45c8-bcf0-0318488f155b", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-crm-erasure-readback", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-erasure-readback" }, "attempts": 1, "ref": "17CHMZS3RS.C61AOC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:14.198Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:14.200Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "e108ca3293a4", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:13.423Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:13.885Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:13.890Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:14.049Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:14.199Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:14.200Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:54:13.423Z", "updatedAt": "2026-10-19T14:54:14.200Z", "duplicate": false } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request 2ba92d75e8eb · processing 4.39ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 4.39ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "c740de74-659d-45c8-bcf0-0318488f155b", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/b65c488c", "email_verified": true, "external_id": "ext_de35aaaecf864f7fafbcb85470", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 92657870634e · processing 2.81ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.81ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "241", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "751827790049", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request 22f37dbc0448 · processing 19.26ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 19.26ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_KUFEVHELIBI1YPMX", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 70, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request 2408de86c70d · processing 0.51ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.51ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request e64a1bb60b31 · processing 6.02ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.02ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 88f39075d8e5 · processing 6.88ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.88ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 1b555f2341d5 · processing 13.68ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-crm-erasure-readback: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-crm-erasure-readback, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref e108ca3293a4. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.68ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "542", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-crm-erasure-readback: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-crm-erasure-readback, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref e108ca3293a4. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-crm-erasure-readback: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-crm-erasure-readback, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref e108ca3293a4. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "2cd31539-4edb-442a-b5dd-07a72ab094a3" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 8069ab08854c · processing 12.15ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-crm-erasure-readback (GDPR, due 2026-11-14, 25d left) subject e108ca3293a4: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.15ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "210", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-crm-erasure-readback (GDPR, due 2026-11-14, 25d left) subject e108ca3293a4: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_f211966d408042019578ad4b36", "client_msg_id": "cli_44f281a936c641d891bc3cdf58", "name": "item-601fbb", "old_name": "Sample Old", "parent_user_id": "par_fa2c56e39bb14f4a9174176f4c", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17CHMZS3RS.C61AOC" } - · POST app request /invocations · crm erasure readback · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:15.227416+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "124", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }Recorded response · HTTP 200
{ "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 751827790049", "durationMs": 308 }, { "name": "billing-records", "status": "ok", "summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)", "durationMs": 454 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b", "durationMs": 341 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3", "appliedAt": "2026-10-19T14:54:14.049Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "contact": "751827790049", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "751827790049", "appliedAt": "2026-10-19T14:54:14.539Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "customer": "cus_KUFEVHELIBI1YPMX", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KUFEVHELIBI1YPMX", "appliedAt": "2026-10-19T14:54:14.821Z", "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "user": "c740de74-659d-45c8-bcf0-0318488f155b", "privilegedRoles": [] }, "attempts": 1, "ref": "c740de74-659d-45c8-bcf0-0318488f155b", "appliedAt": "2026-10-19T14:54:14.959Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r8833327176329381", "appliedAt": "2026-10-19T14:54:15.122Z", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-erasure-readback" }, "attempts": 1, "ref": "17CHMZS3RS.C61AOC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:14.198Z", "reconciled": null } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:14.200Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:54:14.411Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "e108ca3293a4", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:13.423Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:13.885Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:13.890Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:14.049Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:14.199Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:14.200Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:14.411Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:14.539Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:14.821Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:14.960Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:15.122Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:15.124Z", "msg": "done (ok)" } ], "createdAt": "2026-10-19T14:54:13.423Z", "updatedAt": "2026-10-19T14:54:15.124Z", "result": "recorded" } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/gdpr-delete · HTTP 204 · request a154c89713e1 · processing 0.69ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "objectId": "751827790049" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.69ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "27", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "objectId": "751827790049" }Recorded response · HTTP 204
No response body was saved.
- · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request 70f42919af35 · processing 6.33ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.33ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · POST stripe request · provider traffic · /v1/customers/cus_KUFEVHELIBI1YPMX · HTTP 200 · request 0e23ea80caf8 · processing 17.86ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KUFEVHELIBI1YPMX' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/x-www-form-urlencoded' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "email": "[email protected]", "name": "Erased customer", "phone": "", "description": "", "metadata": { "acme_erased": "DSR-crm-erasure-readback" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 17.86ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "142", "user-agent": "node", "content-type": "application/x-www-form-urlencoded", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "email": "[email protected]", "name": "Erased customer", "phone": "", "description": "", "metadata": { "acme_erased": "DSR-crm-erasure-readback" } }Recorded response · HTTP 200
{ "email": "[email protected]", "name": "Erased customer", "phone": "", "id": "cus_KUFEVHELIBI1YPMX", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 70, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": "", "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "metadata": { "acme_erased": "DSR-crm-erasure-readback" } } - · DELETE workos request · provider traffic · /user_management/users/c740de74-659d-45c8-bcf0-0318488f155b · HTTP 204 · request 83efbf6f1614 · processing 1.33ms
- · POST gmail request · provider traffic · /gmail/v1/users/me/drafts · HTTP 200 · request eb9f14437ca7 · processing 13.41ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/1f2482d006/gmail/v1/users/me/drafts' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItY3JtLWVyYXN1cmUtcmVhZGJhY2tAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItY3JtLWVyYXN1cmUtcmVhZGJhY2sgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw3NGNjYjQyNDVmMzgyZmRiLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWNybS1lcmFzdXJlLXJlYWRiYWNrIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 13.41ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "780", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItY3JtLWVyYXN1cmUtcmVhZGJhY2tAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItY3JtLWVyYXN1cmUtcmVhZGJhY2sgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw3NGNjYjQyNDVmMzgyZmRiLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWNybS1lcmFzdXJlLXJlYWRiYWNrIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }Recorded response · HTTP 200
{ "message": { "raw": "RnJvbTogbWUNClRvOiBkc3ItY3JtLWVyYXN1cmUtcmVhZGJhY2tAcHJpdmFjeS50ZXN0DQpTdWJqZWN0OiBZb3VyIGRhdGEgZGVsZXRpb24gcmVxdWVzdCBEU1ItY3JtLWVyYXN1cmUtcmVhZGJhY2sgaXMgY29tcGxldGUNCk1lc3NhZ2UtSUQ6IDw3NGNjYjQyNDVmMzgyZmRiLmRzci1kb25lQG9wcy5hY21lLmV4YW1wbGU-DQpNSU1FLVZlcnNpb246IDEuMA0KQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PSJVVEYtOCINCkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCg0KSGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWNybS1lcmFzdXJlLXJlYWRiYWNrIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ", "payload": { "mimeType": "text/plain", "headers": [ { "name": "From", "value": "me" }, { "name": "To", "value": "[email protected]" }, { "name": "Subject", "value": "Your data deletion request DSR-crm-erasure-readback is complete" }, { "name": "Message-ID", "value": "<[email protected]>" }, { "name": "MIME-Version", "value": "1.0" }, { "name": "Content-Type", "value": "text/plain; charset=\"UTF-8\"" }, { "name": "Content-Transfer-Encoding", "value": "8bit" } ], "body": { "size": 286, "data": "SGVsbG8sCgpXZSBoYXZlIGNvbXBsZXRlZCB5b3VyIHJlcXVlc3QgRFNSLWNybS1lcmFzdXJlLXJlYWRiYWNrIHRvIGRlbGV0ZSB5b3VyIHBlcnNvbmFsIGRhdGE6Ci0gQ1JNIChIdWJTcG90KTogZGVsZXRlZAotIGJpbGxpbmcgKFN0cmlwZSk6IGFub255bWl6ZWQgKGludm9pY2VzIGtlcHQgZm9yIHRheCByZXRlbnRpb247IHBlcnNvbmFsIGRldGFpbHMgcmVtb3ZlZCkKLSBsb2dpbiBhY2NvdW50OiBkZWxldGVkCgpOb3RoaW5nIGVsc2UgaXMgaGVsZCBhYm91dCB5b3UuCgpBQ01FIFByaXZhY3kgVGVhbQ" } }, "sizeEstimate": 568, "labelIds": [ "DRAFT" ], "id": "15404f22e28041a8" }, "user_id": "me", "id": "r8833327176329381" } - · POST app request /invocations · crm erasure readback · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "reconcile", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:15.626863+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "89", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "reconcile", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response · HTTP 200
{ "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 751827790049", "durationMs": 308 }, { "name": "billing-records", "status": "ok", "summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)", "durationMs": 454 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b", "durationMs": 341 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3", "appliedAt": "2026-10-19T14:54:14.049Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:15.438Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "contact": "751827790049", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "751827790049", "appliedAt": "2026-10-19T14:54:14.539Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:54:15.414Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "customer": "cus_KUFEVHELIBI1YPMX", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KUFEVHELIBI1YPMX", "appliedAt": "2026-10-19T14:54:14.821Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:15.493Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "user": "c740de74-659d-45c8-bcf0-0318488f155b", "privilegedRoles": [] }, "attempts": 1, "ref": "c740de74-659d-45c8-bcf0-0318488f155b", "appliedAt": "2026-10-19T14:54:14.959Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:54:15.514Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r8833327176329381", "appliedAt": "2026-10-19T14:54:15.122Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:15.317Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-erasure-readback" }, "attempts": 1, "ref": "17CHMZS3RS.C61AOC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:14.198Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:15.317Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:14.200Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:54:14.411Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "e108ca3293a4", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:13.423Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:13.885Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:13.890Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:14.049Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:14.199Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:14.200Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:14.411Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:14.539Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:14.821Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:14.960Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:15.122Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:15.124Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:54:15.515Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" } ], "createdAt": "2026-10-19T14:54:13.423Z", "updatedAt": "2026-10-19T14:54:15.515Z" } - · GET hubspot request · provider traffic · /crm/v3/objects/contacts/751827790049 · HTTP 404 · request 4eec04dc054f · processing 1.29ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/751827790049' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.29ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 404
{ "errors": [ { "status": "404", "code": "EGeneral:Not found", "detail": "Resource 751827790049 not found" } ] } - · GET asana request · provider traffic · /tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3 · HTTP 200 · request a247ccc6c4a4 · processing 8.34ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 8.34ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": { "name": "DSR-crm-erasure-readback: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-crm-erasure-readback, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref e108ca3293a4. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14", "created_by": { "gid": "1111", "resource_type": "default" }, "gid": "12345", "resource_subtype": "default_task", "resource_type": "task", "approval_status": "pending", "assigned_by": { "gid": "12345", "name": "item-094649", "resource_type": "default" }, "assignee_status": "upcoming", "completed": false, "completed_by": { "gid": "12345", "name": "item-bd1076", "resource_type": "default" }, "created_at": "2012-02-22T02:06:58.147Z", "dependencies": [ { "gid": "12345", "resource_type": "default" } ], "dependents": [ { "gid": "12345", "resource_type": "default" } ], "external": { "data": "A blob of information", "gid": "my_gid" }, "hearted": true, "hearts": [ { "gid": "12345", "user": { "gid": "12345", "name": "item-892aec", "resource_type": "default" } } ], "html_notes": "<body>Mittens <em>really</em> likes the stuff from Humboldt.</body>", "is_rendered_as_separator": false, "liked": true, "likes": [ { "gid": "12345", "user": { "gid": "12345", "name": "item-f3c9fc", "resource_type": "default" } } ], "memberships": [ { "project": { "gid": "12345", "name": "item-a82d97", "resource_type": "default" }, "section": { "gid": "12345", "name": "item-c6af6c", "resource_type": "default" } } ], "modified_at": "2012-02-22T02:06:58.147Z", "num_hearts": 5, "num_likes": 5, "num_subtasks": 3, "assignee": { "gid": "12345", "name": "item-04a0f8", "resource_type": "default" }, "assignee_section": { "gid": "12345", "name": "item-9a3829", "resource_type": "default" }, "custom_fields": [ { "date_value": { "date": "2024-08-23", "date_time": "2024-08-23T22:00:00.000Z" }, "display_value": "blue", "enabled": true, "enum_options": [ { "color": "#c447fd", "enabled": true, "gid": "12345", "name": "item-16d7ef", "resource_type": "default" } ], "enum_value": { "color": "#e3da01", "enabled": true, "gid": "12345", "name": "item-5ef85f", "resource_type": "default" }, "gid": "12345", "id_prefix": "ID", "input_restrictions": "task", "is_formula_field": false, "multi_enum_values": [ { "color": "#f300f5", "enabled": true, "gid": "12345", "name": "item-7ad937", "resource_type": "default" } ], "name": "item-83111f", "number_value": 5.2, "representation_type": "number", "resource_type": "default", "text_value": "Some Value", "type": "text", "asana_created_field": "priority", "currency_code": "DEFAULT", "custom_label": "gold pieces", "custom_label_position": "suffix", "description": null, "format": "custom", "has_notifications_enabled": true, "is_global_to_workspace": true, "precision": 2, "created_by": { "gid": "12345", "name": "item-fc28c5", "resource_type": "default" }, "default_access_level": "user", "is_value_read_only": false, "people_value": [ { "gid": "12345", "name": "item-c1200c", "resource_type": "default" } ], "privacy_setting": "public_with_guests", "reference_value": [ { "gid": "12345", "name": "item-c0b3e5", "resource_type": "default" } ], "resource_subtype": "text" } ], "custom_type": { "gid": "12345", "name": "item-ead33c", "resource_type": "default" }, "custom_type_status_option": { "gid": "12345", "name": "item-204e68", "resource_type": "default" }, "followers": [ { "gid": "12345", "name": "item-c0f050", "resource_type": "default" } ], "parent": { "created_by": { "gid": "1111", "resource_type": "default" }, "gid": "12345", "name": "item-5ad717", "resource_subtype": "default_task", "resource_type": "default" }, "permalink_url": "https://app.asana.com/1/12345/task/123456789", "projects": [ { "gid": "12345", "name": "item-5fc18b", "resource_type": "default" } ], "tags": [ { "gid": "59746", "name": "Grade A", "resource_type": "tag" } ] } } - · GET stripe request · provider traffic · /v1/customers/cus_KUFEVHELIBI1YPMX · HTTP 200 · request f960cd7704ee · processing 18.62ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KUFEVHELIBI1YPMX' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 18.62ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 70, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_KUFEVHELIBI1YPMX", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Erased customer", "object": "customer", "phone": null, "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "metadata": { "acme_erased": "DSR-crm-erasure-readback" } } - · GET workos request · provider traffic · /user_management/users/c740de74-659d-45c8-bcf0-0318488f155b · HTTP 404 · request 79a2ef06734b · processing 1.39ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/c740de74-659d-45c8-bcf0-0318488f155b' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.39ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 404
{ "errors": [ { "status": "404", "code": "EGeneral:Not found", "detail": "Resource c740de74-659d-45c8-bcf0-0318488f155b not found" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs · crm erasure readback · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:15.936499+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 751827790049", "durationMs": 308 }, { "name": "billing-records", "status": "ok", "summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)", "durationMs": 454 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b", "durationMs": 341 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3", "appliedAt": "2026-10-19T14:54:14.049Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:15.438Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "contact": "751827790049", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "751827790049", "appliedAt": "2026-10-19T14:54:14.539Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:54:15.414Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "customer": "cus_KUFEVHELIBI1YPMX", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KUFEVHELIBI1YPMX", "appliedAt": "2026-10-19T14:54:14.821Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:15.493Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "user": "c740de74-659d-45c8-bcf0-0318488f155b", "privilegedRoles": [] }, "attempts": 1, "ref": "c740de74-659d-45c8-bcf0-0318488f155b", "appliedAt": "2026-10-19T14:54:14.959Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:54:15.514Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r8833327176329381", "appliedAt": "2026-10-19T14:54:15.122Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:15.317Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-erasure-readback" }, "attempts": 1, "ref": "17CHMZS3RS.C61AOC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:14.198Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:15.317Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:14.200Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:54:14.411Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "e108ca3293a4", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:13.423Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:13.885Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:13.890Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:14.049Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:14.199Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:14.200Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:14.411Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:14.539Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:14.821Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:14.960Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:15.122Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:15.124Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:54:15.515Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" } ], "createdAt": "2026-10-19T14:54:13.423Z", "updatedAt": "2026-10-19T14:54:15.515Z" } ] } - · POST app request /invocations · crm erasure readback · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-crm-erasure-readback", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:16.129820+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "527", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-crm-erasure-readback", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" } }Recorded response · HTTP 200
{ "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 751827790049", "durationMs": 308 }, { "name": "billing-records", "status": "ok", "summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)", "durationMs": 454 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b", "durationMs": 341 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3", "appliedAt": "2026-10-19T14:54:14.049Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:15.438Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "contact": "751827790049", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "751827790049", "appliedAt": "2026-10-19T14:54:14.539Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:54:15.414Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "customer": "cus_KUFEVHELIBI1YPMX", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KUFEVHELIBI1YPMX", "appliedAt": "2026-10-19T14:54:14.821Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:15.493Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "user": "c740de74-659d-45c8-bcf0-0318488f155b", "privilegedRoles": [] }, "attempts": 1, "ref": "c740de74-659d-45c8-bcf0-0318488f155b", "appliedAt": "2026-10-19T14:54:14.959Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:54:15.514Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r8833327176329381", "appliedAt": "2026-10-19T14:54:15.122Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:15.317Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-erasure-readback" }, "attempts": 1, "ref": "17CHMZS3RS.C61AOC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:14.198Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:15.317Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:14.200Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:54:14.411Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "e108ca3293a4", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:13.423Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:13.885Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:13.890Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:14.049Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:14.199Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:14.200Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:14.411Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:14.539Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:14.821Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:14.960Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:15.122Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:15.124Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:54:15.515Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" }, { "at": "2026-10-19T14:54:16.014Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:54:13.423Z", "updatedAt": "2026-10-19T14:54:16.014Z", "duplicate": true } - · POST app request /invocations · crm erasure readback · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:16.337566+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "124", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }Recorded response · HTTP 200
{ "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 751827790049", "durationMs": 308 }, { "name": "billing-records", "status": "ok", "summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)", "durationMs": 454 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b", "durationMs": 341 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3", "appliedAt": "2026-10-19T14:54:14.049Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:15.438Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "contact": "751827790049", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "751827790049", "appliedAt": "2026-10-19T14:54:14.539Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:54:15.414Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "customer": "cus_KUFEVHELIBI1YPMX", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KUFEVHELIBI1YPMX", "appliedAt": "2026-10-19T14:54:14.821Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:15.493Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "user": "c740de74-659d-45c8-bcf0-0318488f155b", "privilegedRoles": [] }, "attempts": 1, "ref": "c740de74-659d-45c8-bcf0-0318488f155b", "appliedAt": "2026-10-19T14:54:14.959Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:54:15.514Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r8833327176329381", "appliedAt": "2026-10-19T14:54:15.122Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:15.317Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-erasure-readback" }, "attempts": 1, "ref": "17CHMZS3RS.C61AOC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:14.198Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:15.317Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:14.200Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:54:14.411Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "e108ca3293a4", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:13.423Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:13.885Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:13.890Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:14.049Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:14.199Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:14.200Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:14.411Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:14.539Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:14.821Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:14.960Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:15.122Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:15.124Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:54:15.515Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" }, { "at": "2026-10-19T14:54:16.014Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:54:13.423Z", "updatedAt": "2026-10-19T14:54:16.215Z", "result": "already_decided" } - · POST app request /invocations · crm erasure readback · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "reconcile", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:16.746893+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "89", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "reconcile", "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response · HTTP 200
{ "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 751827790049", "durationMs": 308 }, { "name": "billing-records", "status": "ok", "summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)", "durationMs": 454 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b", "durationMs": 341 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3", "appliedAt": "2026-10-19T14:54:14.049Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:16.602Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "contact": "751827790049", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "751827790049", "appliedAt": "2026-10-19T14:54:14.539Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:54:16.601Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "customer": "cus_KUFEVHELIBI1YPMX", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KUFEVHELIBI1YPMX", "appliedAt": "2026-10-19T14:54:14.821Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:16.552Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "user": "c740de74-659d-45c8-bcf0-0318488f155b", "privilegedRoles": [] }, "attempts": 1, "ref": "c740de74-659d-45c8-bcf0-0318488f155b", "appliedAt": "2026-10-19T14:54:14.959Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:54:16.601Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r8833327176329381", "appliedAt": "2026-10-19T14:54:15.122Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:16.413Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-erasure-readback" }, "attempts": 1, "ref": "17CHMZS3RS.C61AOC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:14.198Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:16.413Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:14.200Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:54:14.411Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "e108ca3293a4", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:13.423Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:13.885Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:13.890Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:14.049Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:14.199Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:14.200Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:14.411Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:14.539Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:14.821Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:14.960Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:15.122Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:15.124Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:54:15.515Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" }, { "at": "2026-10-19T14:54:16.014Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:54:16.602Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" } ], "createdAt": "2026-10-19T14:54:13.423Z", "updatedAt": "2026-10-19T14:54:16.602Z" } - · GET stripe request · provider traffic · /v1/customers/cus_KUFEVHELIBI1YPMX · HTTP 200 · request 121e9337fe5e · processing 17.26ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers/cus_KUFEVHELIBI1YPMX' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 17.26ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 70, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "email": "[email protected]", "id": "cus_KUFEVHELIBI1YPMX", "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "name": "Erased customer", "object": "customer", "phone": null, "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null, "metadata": { "acme_erased": "DSR-crm-erasure-readback" } } - · GET workos request · provider traffic · /user_management/users/c740de74-659d-45c8-bcf0-0318488f155b · HTTP 404 · request d020098f2229 · processing 1.93ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users/c740de74-659d-45c8-bcf0-0318488f155b' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.93ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 404
{ "errors": [ { "status": "404", "code": "EGeneral:Not found", "detail": "Resource c740de74-659d-45c8-bcf0-0318488f155b not found" } ] } - · GET asana request · provider traffic · /tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3 · HTTP 200 · request 747e47989e1b · processing 12.28ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks/2cd31539-4edb-442a-b5dd-07a72ab094a3' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.28ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": { "name": "DSR-crm-erasure-readback: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-crm-erasure-readback, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref e108ca3293a4. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14", "created_by": { "gid": "1111", "resource_type": "default" }, "gid": "12345", "resource_subtype": "default_task", "resource_type": "task", "approval_status": "pending", "assigned_by": { "gid": "12345", "name": "item-ffd384", "resource_type": "default" }, "assignee_status": "upcoming", "completed": false, "completed_by": { "gid": "12345", "name": "item-1b6ce5", "resource_type": "default" }, "created_at": "2012-02-22T02:06:58.147Z", "dependencies": [ { "gid": "12345", "resource_type": "default" } ], "dependents": [ { "gid": "12345", "resource_type": "default" } ], "external": { "data": "A blob of information", "gid": "my_gid" }, "hearted": true, "hearts": [ { "gid": "12345", "user": { "gid": "12345", "name": "item-dc31d6", "resource_type": "default" } } ], "html_notes": "<body>Mittens <em>really</em> likes the stuff from Humboldt.</body>", "is_rendered_as_separator": false, "liked": true, "likes": [ { "gid": "12345", "user": { "gid": "12345", "name": "item-69672b", "resource_type": "default" } } ], "memberships": [ { "project": { "gid": "12345", "name": "item-9aa24d", "resource_type": "default" }, "section": { "gid": "12345", "name": "item-1976db", "resource_type": "default" } } ], "modified_at": "2012-02-22T02:06:58.147Z", "num_hearts": 5, "num_likes": 5, "num_subtasks": 3, "assignee": { "gid": "12345", "name": "item-67cf10", "resource_type": "default" }, "assignee_section": { "gid": "12345", "name": "item-aacddf", "resource_type": "default" }, "custom_fields": [ { "date_value": { "date": "2024-08-23", "date_time": "2024-08-23T22:00:00.000Z" }, "display_value": "blue", "enabled": true, "enum_options": [ { "color": "#c148fe", "enabled": true, "gid": "12345", "name": "item-c8c3d2", "resource_type": "default" } ], "enum_value": { "color": "#699b8c", "enabled": true, "gid": "12345", "name": "item-2f6005", "resource_type": "default" }, "gid": "12345", "id_prefix": "ID", "input_restrictions": "task", "is_formula_field": false, "multi_enum_values": [ { "color": "#885285", "enabled": true, "gid": "12345", "name": "item-c5a3f2", "resource_type": "default" } ], "name": "item-4eafee", "number_value": 5.2, "representation_type": "number", "resource_type": "default", "text_value": "Some Value", "type": "text", "asana_created_field": "priority", "currency_code": "DEFAULT", "custom_label": "gold pieces", "custom_label_position": "suffix", "description": null, "format": "custom", "has_notifications_enabled": true, "is_global_to_workspace": true, "precision": 2, "created_by": { "gid": "12345", "name": "item-2a51c6", "resource_type": "default" }, "default_access_level": "user", "is_value_read_only": false, "people_value": [ { "gid": "12345", "name": "item-f045c8", "resource_type": "default" } ], "privacy_setting": "public_with_guests", "reference_value": [ { "gid": "12345", "name": "item-74e923", "resource_type": "default" } ], "resource_subtype": "text" } ], "custom_type": { "gid": "12345", "name": "item-cc5777", "resource_type": "default" }, "custom_type_status_option": { "gid": "12345", "name": "item-b4e718", "resource_type": "default" }, "followers": [ { "gid": "12345", "name": "item-6b34e6", "resource_type": "default" } ], "parent": { "created_by": { "gid": "1111", "resource_type": "default" }, "gid": "12345", "name": "item-5edd5d", "resource_subtype": "default_task", "resource_type": "default" }, "permalink_url": "https://app.asana.com/1/12345/task/123456789", "projects": [ { "gid": "12345", "name": "item-7f6f3d", "resource_type": "default" } ], "tags": [ { "gid": "59746", "name": "Grade A", "resource_type": "tag" } ] } } - · GET hubspot request · provider traffic · /crm/v3/objects/contacts/751827790049 · HTTP 404 · request bfdf1cb3cb6e · processing 1.49ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/751827790049' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.49ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 404
{ "errors": [ { "status": "404", "code": "EGeneral:Not found", "detail": "Resource 751827790049 not found" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs · crm erasure readback · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/crm_erasure_readback/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:17.037230+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "crm-erasure-readback-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "crm_erasure_readback" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 751827790049", "durationMs": 308 }, { "name": "billing-records", "status": "ok", "summary": "cus_KUFEVHELIBI1YPMX: 0 live subscription(s), 0 open invoice(s)", "durationMs": 454 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user c740de74-659d-45c8-bcf0-0318488f155b", "durationMs": 341 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 1 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "2cd31539-4edb-442a-b5dd-07a72ab094a3", "appliedAt": "2026-10-19T14:54:14.049Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:16.602Z" }, "reconciled": "match" }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "contact": "751827790049", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "751827790049", "appliedAt": "2026-10-19T14:54:14.539Z", "reconcile": { "status": "match", "detail": "contact no longer exists", "checkedAt": "2026-10-19T14:54:16.601Z" }, "reconciled": "match" }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "customer": "cus_KUFEVHELIBI1YPMX", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "ref": "cus_KUFEVHELIBI1YPMX", "appliedAt": "2026-10-19T14:54:14.821Z", "reconcile": { "status": "match", "checkedAt": "2026-10-19T14:54:16.552Z" }, "reconciled": "match" }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "user": "c740de74-659d-45c8-bcf0-0318488f155b", "privilegedRoles": [] }, "attempts": 1, "ref": "c740de74-659d-45c8-bcf0-0318488f155b", "appliedAt": "2026-10-19T14:54:14.959Z", "reconcile": { "status": "match", "detail": "account no longer exists", "checkedAt": "2026-10-19T14:54:16.601Z" }, "reconciled": "match" }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-crm-erasure-readback", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "ref": "r8833327176329381", "appliedAt": "2026-10-19T14:54:15.122Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:16.413Z" }, "reconciled": "unverifiable" }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-crm-erasure-readback" }, "attempts": 1, "ref": "17CHMZS3RS.C61AOC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:14.198Z", "reconcile": { "status": "unverifiable", "detail": "no read-back for this action", "checkedAt": "2026-10-19T14:54:16.413Z" }, "reconciled": "unverifiable" } ], "counts": { "applied": 6, "failed": 0, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:14.200Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:54:14.411Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "e108ca3293a4", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:13.423Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:13.885Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:13.890Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:14.049Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:14.199Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:14.200Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:14.411Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:14.539Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:14.821Z", "msg": "stripe.anonymize_customer: applied" }, { "at": "2026-10-19T14:54:14.960Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:15.122Z", "msg": "gmail.draft_completion: applied" }, { "at": "2026-10-19T14:54:15.124Z", "msg": "done (ok)" }, { "at": "2026-10-19T14:54:15.515Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" }, { "at": "2026-10-19T14:54:16.014Z", "msg": "duplicate start ignored" }, { "at": "2026-10-19T14:54:16.602Z", "msg": "reconciled: {\"match\":4,\"unverifiable\":2}" } ], "createdAt": "2026-10-19T14:54:13.423Z", "updatedAt": "2026-10-19T14:54:16.602Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs · privileged account flagged · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:17.211293+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · privileged account flagged · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-privileged-account-flagged", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "privileged_account_flagged" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:18.401861+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "551", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-privileged-account-flagged", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "privileged_account_flagged" } }Recorded response · HTTP 200
{ "runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "privileged_account_flagged" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 894007378965", "durationMs": 166 }, { "name": "billing-records", "status": "ok", "summary": "cus_SVCNLI1O4XXM5SFH: 0 live subscription(s), 0 open invoice(s)", "durationMs": 378 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 205683f1-3ec2-4b0f-9629-2eb6663d0bdb (admin)", "durationMs": 396 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-privileged-account-flagged", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "76b322dc-768b-491c-9974-d1193748fed9", "appliedAt": "2026-10-19T14:54:18.141Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "contact": "894007378965", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "customer": "cus_SVCNLI1O4XXM5SFH", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "user": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb", "privilegedRoles": [ "admin" ] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-privileged-account-flagged" }, "attempts": 1, "ref": "1776WJYKBN.10K1QC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:18.269Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:18.271Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "468a07dea834", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:17.299Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:17.698Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:17.703Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:18.141Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:18.270Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:18.271Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:54:17.299Z", "updatedAt": "2026-10-19T14:54:18.271Z", "duplicate": false } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request b3aa499e94f2 · processing 1.58ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.58ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "247", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "894007378965", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request ecc31096a282 · processing 2.87ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 2.87ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/dbd91b23", "email_verified": true, "external_id": "ext_492658dac4ea422d9be9aceb48", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request c502776a1eed · processing 22.97ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 22.97ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_SVCNLI1O4XXM5SFH", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 13, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request 8bafdd7e03de · processing 6.8ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.8ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request 5312b1a436f5 · processing 6.82ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.82ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request b9256a85c65c · processing 0.64ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.64ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [ { "object": "organization_membership", "user_id": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb", "organization_id": "150af516-d536-4952-9015-a0c7b0667503", "status": "active", "role": { "slug": "admin" }, "roles": [ { "slug": "admin" } ], "id": "om_V9H7K5LDXYS9FA4HZ9JK1XAZI6" } ], "list_metadata": { "before": "om_V9H7K5LDXYS9FA4HZ9JK1XAZI6", "after": null } } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 94bb83c18982 · processing 312.09ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-privileged-account-flagged: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-privileged-account-flagged, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 468a07dea834. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (account holds admin: security must confirm)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 312.09ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "583", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-privileged-account-flagged: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-privileged-account-flagged, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 468a07dea834. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (account holds admin: security must confirm)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-privileged-account-flagged: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-privileged-account-flagged, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 468a07dea834. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (account holds admin: security must confirm)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "76b322dc-768b-491c-9974-d1193748fed9" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request e1853d88d527 · processing 11.52ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-privileged-account-flagged (GDPR, due 2026-11-14, 25d left) subject 468a07dea834: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 11.52ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "216", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-privileged-account-flagged (GDPR, due 2026-11-14, 25d left) subject 468a07dea834: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_f4560229bd3f467ca2beb6c94f", "client_msg_id": "cli_995cb733708a46b99f91688233", "name": "item-2bbb4f", "old_name": "Sample Old", "parent_user_id": "par_c11204e1f8a347ffb509b7f894", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "1776WJYKBN.10K1QC" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs · privileged account flagged · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:18.697937+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "privileged_account_flagged" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 894007378965", "durationMs": 166 }, { "name": "billing-records", "status": "ok", "summary": "cus_SVCNLI1O4XXM5SFH: 0 live subscription(s), 0 open invoice(s)", "durationMs": 378 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 205683f1-3ec2-4b0f-9629-2eb6663d0bdb (admin)", "durationMs": 396 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-privileged-account-flagged", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "76b322dc-768b-491c-9974-d1193748fed9", "appliedAt": "2026-10-19T14:54:18.141Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "contact": "894007378965", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "customer": "cus_SVCNLI1O4XXM5SFH", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "user": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb", "privilegedRoles": [ "admin" ] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-privileged-account-flagged" }, "attempts": 1, "ref": "1776WJYKBN.10K1QC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:18.269Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:18.271Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "468a07dea834", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:17.299Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:17.698Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:17.703Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:18.141Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:18.270Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:18.271Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:54:17.299Z", "updatedAt": "2026-10-19T14:54:18.271Z" } ] } - · POST app request /invocations · privileged account flagged · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-privileged-account-flagged", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "privileged_account_flagged" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:18.888214+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "551", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-privileged-account-flagged", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "privileged_account_flagged" } }Recorded response · HTTP 200
{ "runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "privileged_account_flagged" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 894007378965", "durationMs": 166 }, { "name": "billing-records", "status": "ok", "summary": "cus_SVCNLI1O4XXM5SFH: 0 live subscription(s), 0 open invoice(s)", "durationMs": 378 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 205683f1-3ec2-4b0f-9629-2eb6663d0bdb (admin)", "durationMs": 396 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-privileged-account-flagged", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "76b322dc-768b-491c-9974-d1193748fed9", "appliedAt": "2026-10-19T14:54:18.141Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "contact": "894007378965", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "customer": "cus_SVCNLI1O4XXM5SFH", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "user": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb", "privilegedRoles": [ "admin" ] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-privileged-account-flagged" }, "attempts": 1, "ref": "1776WJYKBN.10K1QC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:18.269Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:18.271Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "468a07dea834", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:17.299Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:17.698Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:17.703Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:18.141Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:18.270Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:18.271Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:18.763Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:54:17.299Z", "updatedAt": "2026-10-19T14:54:18.763Z", "duplicate": true } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs · privileged account flagged · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/privileged_account_flagged/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:19.189943+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "privileged-account-flagged-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "privileged_account_flagged" }, "duplicateStarts": 1, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 894007378965", "durationMs": 166 }, { "name": "billing-records", "status": "ok", "summary": "cus_SVCNLI1O4XXM5SFH: 0 live subscription(s), 0 open invoice(s)", "durationMs": 378 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 205683f1-3ec2-4b0f-9629-2eb6663d0bdb (admin)", "durationMs": 396 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-privileged-account-flagged", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "76b322dc-768b-491c-9974-d1193748fed9", "appliedAt": "2026-10-19T14:54:18.141Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "contact": "894007378965", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "customer": "cus_SVCNLI1O4XXM5SFH", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "user": "205683f1-3ec2-4b0f-9629-2eb6663d0bdb", "privilegedRoles": [ "admin" ] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-privileged-account-flagged", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-privileged-account-flagged" }, "attempts": 1, "ref": "1776WJYKBN.10K1QC", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:18.269Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:18.271Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "468a07dea834", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:17.299Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:17.698Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:17.703Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:18.141Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:18.270Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:18.271Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:18.763Z", "msg": "duplicate start ignored" } ], "createdAt": "2026-10-19T14:54:17.299Z", "updatedAt": "2026-10-19T14:54:18.763Z" } ] } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs · hold rechecked at write · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:19.382868+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json", "content-length": "11" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [] } - · POST app request /invocations · hold rechecked at write · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "start", "runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-hold-rechecked-at-write", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hold_rechecked_at_write" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:21.175489+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "539", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "start", "runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed", "input": { "requestId": "DSR-hold-rechecked-at-write", "subject": { "email": "[email protected]", "name": "Erin Example" }, "regulation": "gdpr", "receivedAt": "2026-10-15T09:00:00Z", "verification": { "method": "email_link", "verifiedBy": "privacy-portal" }, "privacyChannel": "C0BILLING01", "approvers": [ "U_DPO" ] }, "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hold_rechecked_at_write" } }Recorded response · HTTP 200
{ "runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "AWAITING_APPROVAL", "closed": false, "outcome": "ok", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hold_rechecked_at_write" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 571462475593", "durationMs": 167 }, { "name": "billing-records", "status": "ok", "summary": "cus_455D72PONKQRDNY9: 0 live subscription(s), 0 open invoice(s)", "durationMs": 282 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "durationMs": 335 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-hold-rechecked-at-write", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "41e0b96f-2c5b-4da3-8698-d92a3525d1cb", "appliedAt": "2026-10-19T14:54:20.847Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hold-rechecked-at-write", "contact": "571462475593", "method": "gdpr-delete (permanent)" }, "attempts": 0, "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hold-rechecked-at-write", "customer": "cus_455D72PONKQRDNY9", "keeps": "invoices and payments (tax retention)" }, "attempts": 0, "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hold-rechecked-at-write", "user": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "privilegedRoles": [] }, "attempts": 0, "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "pending_approval", "summary": { "requestId": "DSR-hold-rechecked-at-write", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 0, "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-hold-rechecked-at-write" }, "attempts": 1, "ref": "17M37KF43D.3WSJZW", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:20.999Z", "reconciled": null } ], "counts": { "applied": 2, "failed": 0, "pendingApproval": 4, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:20.999Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9601000a5c88", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:19.488Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:19.827Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:19.831Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:20.847Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:20.999Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:20.999Z", "msg": "awaiting approval" } ], "createdAt": "2026-10-19T14:54:19.488Z", "updatedAt": "2026-10-19T14:54:20.999Z", "duplicate": false } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/search · HTTP 200 · request 1d5c7e0be562 · processing 1.94ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/search' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.94ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "244", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "filterGroups": [ { "filters": [ { "propertyName": "email", "operator": "EQ", "value": "[email protected]" } ] } ], "properties": [ "email", "firstname", "lastname", "company", "lifecyclestage", "hs_lead_status", "hubspot_owner_id" ], "limit": 10 }Recorded response · HTTP 200
{ "total": 1, "results": [ { "properties": { "email": "[email protected]", "firstname": "Erin" }, "id": "571462475593", "archived": false, "createdAt": "2019-10-30T03:30:17.883Z", "updatedAt": "2019-12-07T16:50:06.678Z" } ] } - · GET stripe request · provider traffic · /v1/customers · HTTP 200 · request e26f37ee9c72 · processing 18.01ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/customers' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 18.01ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "name": "Erin Example", "phone": "+15550100", "id": "cus_455D72PONKQRDNY9", "address": null, "balance": 0, "business_name": "Sample Business", "cash_balance": null, "created": 54, "currency": "USD", "customer_account": null, "default_source": null, "delinquent": false, "description": null, "discount": null, "individual_name": "Sample Individual", "invoice_prefix": null, "livemode": false, "object": "customer", "preferred_locales": null, "shipping": null, "tax_exempt": "exempt", "test_clock": null } ], "has_more": false, "object": "list", "url": "/v1/customers" } - · GET workos request · provider traffic · /user_management/users · HTTP 200 · request ee6825eb5300 · processing 1.84ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/users' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 1.84ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "email": "[email protected]", "first_name": "Erin", "id": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "object": "user", "last_name": "Sample Last", "profile_picture_url": "https://example.com/04bd947a", "email_verified": true, "external_id": "ext_cea2a55089f945eb91247f3d57", "last_sign_in_at": "2025-06-25T19:07:33.155Z", "locale": "en", "created_at": "2026-01-15T12:00:00.000Z", "updated_at": "2026-01-15T12:00:00.000Z" } ], "object": "list", "list_metadata": { "before": "user_01HXYZ123456789ABCDEFGHIJ", "after": "user_01HXYZ987654321KJIHGFEDCBA" } } - · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request f3a03554f854 · processing 6.3ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.3ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · GET stripe request · provider traffic · /v1/invoices · HTTP 200 · request ce8f1d7f953c · processing 6.89ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/invoices' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 6.89ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [], "has_more": false, "object": "list", "url": "/v1/invoices" } - · GET workos request · provider traffic · /user_management/organization_memberships · HTTP 200 · request 29450925813f · processing 0.83ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/4768a56ae4/user_management/organization_memberships' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.83ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "object": "list", "data": [], "list_metadata": { "before": null, "after": null } } - · POST asana request · provider traffic · /tasks · HTTP 201 · request 35778f8e4513 · processing 12.74ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/f7899cfff6/tasks' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "data": { "name": "DSR-hold-rechecked-at-write: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-hold-rechecked-at-write, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9601000a5c88. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 12.74ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "548", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "data": { "name": "DSR-hold-rechecked-at-write: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-hold-rechecked-at-write, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9601000a5c88. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" } }Recorded response · HTTP 201
{ "data": { "name": "DSR-hold-rechecked-at-write: GDPR erasure, due 2026-11-14", "notes": "GDPR erasure request DSR-hold-rechecked-at-write, received 2026-10-15, due 2026-11-14 (25 day(s) left).\nData subject ref 9601000a5c88. Verification: email_link by privacy-portal.\n- CRM (HubSpot): erase (marketing and sales record: no retention duty)\n- billing (Stripe): anonymize (invoices kept for tax retention; personal details removed)\n- login account: erase (login account)\nErasures wait for approval.", "workspace": "acme-privacy", "due_on": "2026-11-14" }, "id": "41e0b96f-2c5b-4da3-8698-d92a3525d1cb" } - · POST slack request · provider traffic · /api/chat.postMessage · HTTP 200 · request 3e5773dbf27a · processing 11.98ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/543fa9410c/api/chat.postMessage' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "channel": "C0BILLING01", "text": ":lock: DSR-hold-rechecked-at-write (GDPR, due 2026-11-14, 25d left) subject 9601000a5c88: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 11.98ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "213", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "channel": "C0BILLING01", "text": ":lock: DSR-hold-rechecked-at-write (GDPR, due 2026-11-14, 25d left) subject 9601000a5c88: hubspot erase, stripe anonymize, workos erase.", "unfurl_links": false, "unfurl_media": false }Recorded response · HTTP 200
{ "channel": "C0BILLING01", "message": { "bot_id": "bot_96119a32bd9940159999c9cd03", "client_msg_id": "cli_4a0cf45fa52f495ab0fb93c8f9", "name": "item-14c420", "old_name": "Sample Old", "parent_user_id": "par_d620830fb6a8494083f0bd2798", "permalink": "my-resource", "reply_count": 0, "reply_users_count": 0, "text": "Sample text content", "ts": "sample-value", "type": "default", "unread_count": 0, "username": "acme-corp" }, "ok": true, "ts": "17M37KF43D.3WSJZW" } - · POST stripe request · hold rechecked at write · /v1/subscriptions · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST '<STRIPE_TWIN_BASE_URL>/v1/subscriptions' \ --data-raw '{ "customer": "cus_455D72PONKQRDNY9", "items": [ { "price": "price_1Pro_Monthly_USD" } ], "trial_period_days": 30 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL was not recorded. Response finished: 2026-10-19T14:54:21.253579+00:00.
Recorded request headers
Request headers were not saved in this run.
Recorded response headers
Response headers were not saved in this run.
Request body
{ "customer": "cus_455D72PONKQRDNY9", "items": [ { "price": "price_1Pro_Monthly_USD" } ], "trial_period_days": 30 }Recorded response · HTTP 200
{ "application": null, "application_fee_percent": null, "automatic_tax": { "disabled_reason": "requires_location_inputs", "enabled": true, "liability": null }, "billing_cycle_anchor": 21, "billing_cycle_anchor_config": null, "billing_mode": { "flexible": null, "type": "classic" }, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "cancellation_details": null, "collection_method": "charge_automatically", "created": 18, "currency": "usd", "customer": "cus_455D72PONKQRDNY9", "customer_account": null, "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": null, "description": null, "discounts": [ "sample-value" ], "ended_at": null, "id": "sub_CFGIXRSTQ8OMHD87CT7CEMNY", "invoice_settings": { "account_tax_ids": null, "issuer": { "type": "account" } }, "items": { "object": "list", "data": [ { "object": "subscription_item", "price": { "id": "price_1Pro_Monthly_USD", "object": "price", "active": true, "currency": "usd", "unit_amount": 4900, "unit_amount_decimal": "4900", "product": "prod_SaaS_ProPlan", "type": "recurring", "recurring": { "interval": "month", "interval_count": 1, "usage_type": "licensed", "aggregate_usage": null }, "billing_scheme": "per_unit", "livemode": false, "created": "2024-06-01T08:00:00Z", "metadata": {} }, "quantity": 1, "subscription": "sub_CFGIXRSTQ8OMHD87CT7CEMNY" } ], "has_more": false, "url": "/v1/subscription_items?subscription=sub_CFGIXRSTQ8OMHD87CT7CEMNY" }, "latest_invoice": "in_JDH7H2701KC5A9VQ116DYE8S", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "object": "subscription", "on_behalf_of": null, "pause_collection": null, "payment_settings": null, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "schedule": null, "start_date": 77, "status": "trialing", "test_clock": null, "transfer_data": null, "trial_end": 1795013661, "trial_settings": null, "trial_start": 1792421661 } - · POST stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request 23f54598a788 · processing 58.08ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'content-type: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'api-key: [redacted]' \ --data-raw '{ "customer": "cus_455D72PONKQRDNY9", "items": [ { "price": "price_1Pro_Monthly_USD" } ], "trial_period_days": 30 }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 58.08ms.
Recorded request headers
{ "content-type": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "api-key": "[redacted]" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "customer": "cus_455D72PONKQRDNY9", "items": [ { "price": "price_1Pro_Monthly_USD" } ], "trial_period_days": 30 }Recorded response · HTTP 200
{ "application": null, "application_fee_percent": null, "automatic_tax": { "disabled_reason": "requires_location_inputs", "enabled": true, "liability": null }, "billing_cycle_anchor": 21, "billing_cycle_anchor_config": null, "billing_mode": { "flexible": null, "type": "classic" }, "billing_thresholds": null, "cancel_at": null, "cancel_at_period_end": false, "canceled_at": null, "cancellation_details": null, "collection_method": "charge_automatically", "created": 18, "currency": "usd", "customer": "cus_455D72PONKQRDNY9", "customer_account": null, "days_until_due": null, "default_payment_method": null, "default_source": null, "default_tax_rates": null, "description": null, "discounts": [ "sample-value" ], "ended_at": null, "id": "sub_CFGIXRSTQ8OMHD87CT7CEMNY", "invoice_settings": { "account_tax_ids": null, "issuer": { "type": "account" } }, "items": { "object": "list", "data": [ { "object": "subscription_item", "price": { "id": "price_1Pro_Monthly_USD", "object": "price", "active": true, "currency": "usd", "unit_amount": 4900, "unit_amount_decimal": "4900", "product": "prod_SaaS_ProPlan", "type": "recurring", "recurring": { "interval": "month", "interval_count": 1, "usage_type": "licensed", "aggregate_usage": null }, "billing_scheme": "per_unit", "livemode": false, "created": "2024-06-01T08:00:00Z", "metadata": {} }, "quantity": 1, "subscription": "sub_CFGIXRSTQ8OMHD87CT7CEMNY" } ], "has_more": false, "url": "/v1/subscription_items?subscription=sub_CFGIXRSTQ8OMHD87CT7CEMNY" }, "latest_invoice": "in_JDH7H2701KC5A9VQ116DYE8S", "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "object": "subscription", "on_behalf_of": null, "pause_collection": null, "payment_settings": null, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "schedule": null, "start_date": 77, "status": "trialing", "test_clock": null, "transfer_data": null, "trial_end": 1795013661, "trial_settings": null, "trial_start": 1792421661 } - · POST app request /invocations · hold rechecked at write · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:21.878678+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "127", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }Recorded response · HTTP 200
{ "runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hold_rechecked_at_write" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 571462475593", "durationMs": 167 }, { "name": "billing-records", "status": "ok", "summary": "cus_455D72PONKQRDNY9: 0 live subscription(s), 0 open invoice(s)", "durationMs": 282 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "durationMs": 335 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-hold-rechecked-at-write", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "41e0b96f-2c5b-4da3-8698-d92a3525d1cb", "appliedAt": "2026-10-19T14:54:20.847Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-hold-rechecked-at-write", "contact": "571462475593", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "571462475593", "appliedAt": "2026-10-19T14:54:21.445Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "failed", "summary": { "requestId": "DSR-hold-rechecked-at-write", "customer": "cus_455D72PONKQRDNY9", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "error": "FatalError: cus_455D72PONKQRDNY9 has an active subscription again (sub_CFGIXRSTQ8OMHD87CT7CEMNY); erasure held", "errorCode": "fatal", "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-hold-rechecked-at-write", "user": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "privilegedRoles": [] }, "attempts": 1, "ref": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "appliedAt": "2026-10-19T14:54:21.769Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "failed", "summary": { "requestId": "DSR-hold-rechecked-at-write", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "error": "FatalError: erasure not done yet: stripe.anonymize_customer", "errorCode": "fatal", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-hold-rechecked-at-write" }, "attempts": 1, "ref": "17M37KF43D.3WSJZW", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:20.999Z", "reconciled": null } ], "counts": { "applied": 4, "failed": 2, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:20.999Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:54:21.329Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9601000a5c88", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:19.488Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:19.827Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:19.831Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:20.847Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:20.999Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:20.999Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:21.329Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:21.445Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:21.655Z", "msg": "stripe.anonymize_customer: failed (fatal)" }, { "at": "2026-10-19T14:54:21.769Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:21.770Z", "msg": "gmail.draft_completion: failed (fatal)" }, { "at": "2026-10-19T14:54:21.770Z", "msg": "done (partial)" } ], "createdAt": "2026-10-19T14:54:19.488Z", "updatedAt": "2026-10-19T14:54:21.770Z", "result": "recorded" } - · POST hubspot request · provider traffic · /crm/v3/objects/contacts/gdpr-delete · HTTP 204 · request b8415c3dee88 · processing 0.79ms
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/sandbox/93969092e3/crm/v3/objects/contacts/gdpr-delete' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'content-type: application/json; charset=utf-8' \ --header 'accept: application/json' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --data-raw '{ "objectId": "571462475593" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 0.79ms.
Recorded request headers
{ "host": "fetchsandbox.com", "content-length": "27", "user-agent": "node", "content-type": "application/json; charset=utf-8", "accept": "application/json", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed" }Recorded response headers
Response headers were not saved in this run.
Request body
{ "objectId": "571462475593" }Recorded response · HTTP 204
No response body was saved.
- · GET stripe request · provider traffic · /v1/subscriptions · HTTP 200 · request 9a02c70c62bf · processing 75.33ms
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/sandbox/64e40af00f/v1/subscriptions' \ --header 'host: fetchsandbox.com' \ --header 'user-agent: node' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'accept: application/json'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL resolved from the saved run route. Provider processing: 75.33ms.
Recorded request headers
{ "host": "fetchsandbox.com", "user-agent": "node", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "accept": "application/json" }Recorded response headers
Response headers were not saved in this run.
Request body
No body shown for this read.
Recorded response · HTTP 200
{ "data": [ { "customer": "cus_455D72PONKQRDNY9", "items": { "object": "list", "data": [ { "object": "subscription_item", "price": { "id": "price_1Pro_Monthly_USD", "object": "price", "active": true, "currency": "usd", "unit_amount": 4900, "unit_amount_decimal": "4900", "product": "prod_SaaS_ProPlan", "type": "recurring", "recurring": { "interval": "month", "interval_count": 1, "usage_type": "licensed", "aggregate_usage": null }, "billing_scheme": "per_unit", "livemode": false, "created": "2024-06-01T08:00:00Z", "metadata": {} }, "quantity": 1, "subscription": "sub_CFGIXRSTQ8OMHD87CT7CEMNY", "created": 16, "current_period_end": 57, "current_period_start": 71, "discounts": [ "sample-value" ], "id": "sample-value", "metadata": {} } ], "has_more": false, "url": "/v1/subscription_items?subscription=sub_CFGIXRSTQ8OMHD87CT7CEMNY" }, "status": "trialing", "object": "subscription", "currency": "usd", "trial_start": 1792421661, "trial_end": 1795013661, "canceled_at": null, "ended_at": null, "cancel_at_period_end": false, "collection_method": "charge_automatically", "latest_invoice": "in_JDH7H2701KC5A9VQ116DYE8S", "default_payment_method": null, "id": "sub_CFGIXRSTQ8OMHD87CT7CEMNY", "application": null, "application_fee_percent": null, "automatic_tax": { "disabled_reason": "requires_location_inputs", "enabled": true, "liability": null }, "billing_cycle_anchor": 21, "billing_cycle_anchor_config": null, "billing_mode": { "flexible": null, "type": "classic" }, "billing_thresholds": null, "cancel_at": null, "cancellation_details": null, "created": 18, "customer_account": null, "days_until_due": null, "default_source": null, "default_tax_rates": null, "description": null, "discounts": [ "sample-value" ], "invoice_settings": { "account_tax_ids": null, "issuer": { "type": "account" } }, "livemode": false, "metadata": {}, "next_pending_invoice_item_invoice": null, "on_behalf_of": null, "pause_collection": null, "payment_settings": null, "pending_invoice_item_interval": null, "pending_setup_intent": null, "pending_update": null, "schedule": null, "start_date": 77, "test_clock": null, "transfer_data": null, "trial_settings": null } ], "has_more": false, "object": "list", "url": "/v1/subscriptions" } - · DELETE workos request · provider traffic · /user_management/users/9eab4cb9-976d-4394-88ae-c7c1ecb24fb8 · HTTP 204 · request ad8738804447 · processing 1.07ms
- · POST app request /invocations · hold rechecked at write · HTTP 200
View sanitized request and response
Curl-style request view
curl --request POST 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/invocations' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]' \ --header 'content-type: application/json' \ --data-raw '{ "action": "decide", "runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }'This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:22.068715+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]", "content-length": "127", "content-type": "application/json" }Recorded response headers
{ "content-type": "application/json" }Request body
{ "action": "decide", "runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed", "decision": "approve", "userId": "U_DPO" }Recorded response · HTTP 200
{ "runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hold_rechecked_at_write" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 571462475593", "durationMs": 167 }, { "name": "billing-records", "status": "ok", "summary": "cus_455D72PONKQRDNY9: 0 live subscription(s), 0 open invoice(s)", "durationMs": 282 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "durationMs": 335 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-hold-rechecked-at-write", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "41e0b96f-2c5b-4da3-8698-d92a3525d1cb", "appliedAt": "2026-10-19T14:54:20.847Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-hold-rechecked-at-write", "contact": "571462475593", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "571462475593", "appliedAt": "2026-10-19T14:54:21.445Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "failed", "summary": { "requestId": "DSR-hold-rechecked-at-write", "customer": "cus_455D72PONKQRDNY9", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "error": "FatalError: cus_455D72PONKQRDNY9 has an active subscription again (sub_CFGIXRSTQ8OMHD87CT7CEMNY); erasure held", "errorCode": "fatal", "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-hold-rechecked-at-write", "user": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "privilegedRoles": [] }, "attempts": 1, "ref": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "appliedAt": "2026-10-19T14:54:21.769Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "failed", "summary": { "requestId": "DSR-hold-rechecked-at-write", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "error": "FatalError: erasure not done yet: stripe.anonymize_customer", "errorCode": "fatal", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-hold-rechecked-at-write" }, "attempts": 1, "ref": "17M37KF43D.3WSJZW", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:20.999Z", "reconciled": null } ], "counts": { "applied": 4, "failed": 2, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:20.999Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:54:21.329Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9601000a5c88", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:19.488Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:19.827Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:19.831Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:20.847Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:20.999Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:20.999Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:21.329Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:21.445Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:21.655Z", "msg": "stripe.anonymize_customer: failed (fatal)" }, { "at": "2026-10-19T14:54:21.769Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:21.770Z", "msg": "gmail.draft_completion: failed (fatal)" }, { "at": "2026-10-19T14:54:21.770Z", "msg": "done (partial)" } ], "createdAt": "2026-10-19T14:54:19.488Z", "updatedAt": "2026-10-19T14:54:21.960Z", "result": "already_decided" } - · GET app request /verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs · hold rechecked at write · HTTP 200
View sanitized request and response
Curl-style request view
curl --request GET 'https://fetchsandbox.com/api/relay/33310fdff7779589f2d091a793e6192c488693467392bc3b/verify/runs/vr_1fae88cbe29d455aa062b167be9977ed/cases/hold_rechecked_at_write/runs' \ --header 'accept: */*' \ --header 'user-agent: python-httpx/0.28.1' \ --header 'host: fetchsandbox.com' \ --header 'x-flow-run-id: vr_1fae88cbe29d455aa062b167be9977ed' \ --header 'x-fetchsandbox-relay: [redacted]' \ --header 'authorization: [redacted]'
This view is reconstructed from the saved method, URL, and sanitized headers and body. Secrets are removed and the result is not exact wire bytes, so it cannot be used as a runnable authenticated replay.
Target URL recorded at execution. Response finished: 2026-10-19T14:54:22.380896+00:00.
Recorded request headers
{ "accept": "*/*", "user-agent": "python-httpx/0.28.1", "host": "fetchsandbox.com", "x-flow-run-id": "vr_1fae88cbe29d455aa062b167be9977ed", "x-fetchsandbox-relay": "[redacted]", "authorization": "[redacted]" }Recorded response headers
{ "content-type": "application/json" }Request body
This request had no body.
Recorded response · HTTP 200
{ "runs": [ { "runId": "hold-rechecked-at-write-vr_1fae88cbe29d455aa062b167be9977ed", "workflow": "privacy-erasure", "org": "Legal", "team": "privacy-ops", "phase": "DONE", "closed": true, "outcome": "partial", "requestedBy": { "userId": "U_FETCHSANDBOX" }, "labels": { "fs_run": "vr_1fae88cbe29d455aa062b167be9977ed", "fs_case": "hold_rechecked_at_write" }, "duplicateStarts": 0, "agents": [ { "name": "crm-records", "status": "ok", "summary": "HubSpot contact 571462475593", "durationMs": 167 }, { "name": "billing-records", "status": "ok", "summary": "cus_455D72PONKQRDNY9: 0 live subscription(s), 0 open invoice(s)", "durationMs": 282 }, { "name": "identity-records", "status": "ok", "summary": "WorkOS user 9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "durationMs": 335 }, { "name": "erasure-plan", "status": "ok", "summary": "verified; hubspot=erase, stripe=anonymize, workos=erase; due 2026-11-14", "durationMs": 0 } ], "actions": [ { "id": "asana.dsar_record", "kind": "asana.dsar_record", "provider": "asana", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "requestId": "DSR-hold-rechecked-at-write", "deadline": "2026-11-14", "verified": true }, "attempts": 1, "ref": "41e0b96f-2c5b-4da3-8698-d92a3525d1cb", "appliedAt": "2026-10-19T14:54:20.847Z", "reconciled": null }, { "id": "hubspot.erase_contact", "kind": "hubspot.erase_contact", "provider": "hubspot", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-hold-rechecked-at-write", "contact": "571462475593", "method": "gdpr-delete (permanent)" }, "attempts": 1, "ref": "571462475593", "appliedAt": "2026-10-19T14:54:21.445Z", "reconciled": null }, { "id": "stripe.anonymize_customer", "kind": "stripe.anonymize_customer", "provider": "stripe", "agent": "erasure-plan", "gate": "approval", "status": "failed", "summary": { "requestId": "DSR-hold-rechecked-at-write", "customer": "cus_455D72PONKQRDNY9", "keeps": "invoices and payments (tax retention)" }, "attempts": 1, "error": "FatalError: cus_455D72PONKQRDNY9 has an active subscription again (sub_CFGIXRSTQ8OMHD87CT7CEMNY); erasure held", "errorCode": "fatal", "reconciled": null }, { "id": "workos.delete_user", "kind": "workos.delete_user", "provider": "workos", "agent": "erasure-plan", "gate": "approval", "status": "applied", "summary": { "requestId": "DSR-hold-rechecked-at-write", "user": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "privilegedRoles": [] }, "attempts": 1, "ref": "9eab4cb9-976d-4394-88ae-c7c1ecb24fb8", "appliedAt": "2026-10-19T14:54:21.769Z", "reconciled": null }, { "id": "gmail.draft_completion", "kind": "gmail.draft_completion", "provider": "gmail", "agent": "erasure-plan", "gate": "approval", "status": "failed", "summary": { "requestId": "DSR-hold-rechecked-at-write", "sent": false, "after": [ "hubspot.erase_contact", "stripe.anonymize_customer", "workos.delete_user" ] }, "attempts": 1, "error": "FatalError: erasure not done yet: stripe.anonymize_customer", "errorCode": "fatal", "reconciled": null }, { "id": "slack.post_dsr", "kind": "slack.post_dsr", "provider": "slack", "agent": "erasure-plan", "gate": "auto", "status": "applied", "summary": { "channel": "C0BILLING01", "requestId": "DSR-hold-rechecked-at-write" }, "attempts": 1, "ref": "17M37KF43D.3WSJZW", "detail": { "channel": "C0BILLING01" }, "appliedAt": "2026-10-19T14:54:20.999Z", "reconciled": null } ], "counts": { "applied": 4, "failed": 2, "pendingApproval": 0, "skipped": 0, "rejected": 0 }, "approval": { "approvers": [ "U_DPO" ], "expiresAt": "2026-10-20T14:54:20.999Z", "decision": "approve", "decidedBy": "U_DPO", "decidedAt": "2026-10-19T14:54:21.329Z" }, "output": { "verified": true, "complete": true, "deadline": "2026-11-14T09:00:00.000Z", "daysLeft": 25, "subjectRef": "9601000a5c88", "decisions": { "hubspot": "erase", "stripe": "anonymize", "workos": "erase" } }, "events": [ { "at": "2026-10-19T14:54:19.488Z", "msg": "started by U_FETCHSANDBOX" }, { "at": "2026-10-19T14:54:19.827Z", "msg": "agents: crm-records=ok, billing-records=ok, identity-records=ok" }, { "at": "2026-10-19T14:54:19.831Z", "msg": "planned 6 action(s): 4 need approval" }, { "at": "2026-10-19T14:54:20.847Z", "msg": "asana.dsar_record: applied" }, { "at": "2026-10-19T14:54:20.999Z", "msg": "slack.post_dsr: applied" }, { "at": "2026-10-19T14:54:20.999Z", "msg": "awaiting approval" }, { "at": "2026-10-19T14:54:21.329Z", "msg": "approved by U_DPO" }, { "at": "2026-10-19T14:54:21.445Z", "msg": "hubspot.erase_contact: applied" }, { "at": "2026-10-19T14:54:21.655Z", "msg": "stripe.anonymize_customer: failed (fatal)" }, { "at": "2026-10-19T14:54:21.769Z", "msg": "workos.delete_user: applied" }, { "at": "2026-10-19T14:54:21.770Z", "msg": "gmail.draft_completion: failed (fatal)" }, { "at": "2026-10-19T14:54:21.770Z", "msg": "done (partial)" } ], "createdAt": "2026-10-19T14:54:19.488Z", "updatedAt": "2026-10-19T14:54:21.960Z" } ] }
Expand a request to inspect its sanitized payload. Credentials and personal data stay hidden.
Timestamps reflect when the sandbox recorded each request, not the order your app triggered them.
- Verification covers the declared HTTP actions and state reads in this run.
- The app version shown was supplied by the app itself, not independently checked.
- Passing all checks in this run does not certify the whole app as production-ready.
- The verifier session does not survive a restart. This says nothing about the durability of the app under test.
- App state shown here is what the app's own endpoint reported. It is not independently checked against the database.
Sanitized summary. Expand a timeline event to inspect the safe request and response fields; sensitive provider and application data stays hidden.