# roles

id: a1b64b0c-dd48-49be-a6ad-7b1e55983358
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
slug: admin
name: Admin
created_at: 2026-06-08 15:22:57.859609
updated_at: 2026-06-08 15:22:57.859610
permissions:
  ["campaign:read", "campaign:write", "campaign:validate", "campaign:build", "campaign:queue", "campaign:send_test", "campaign:send", "attachments:read", "attachments:write", "reports:read", "reports:send", "audit:read", "admin:users", "admin:settings"]


id: 2ebadf7a-8e13-42de-a49b-a961164cf903
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
slug: sender
name: Sender
created_at: 2026-06-08 15:22:57.859619
updated_at: 2026-06-08 15:22:57.859619
permissions:
  ["campaign:read", "campaign:queue", "campaign:send_test", "campaign:send", "reports:read", "reports:send"]


# audit_log

id: f07f9f1a-c930-470e-9d7f-05038b01f407
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.created_minimal
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-08 15:31:42.398044
updated_at: 2026-06-08 15:31:42.398052
details:
  {"version_id": "57992c81-c0f3-450f-9719-f412ee6630c2", "external_id": "new-campaign-20260608153141"}


id: c8ea2518-8fdb-4264-89ab-a7eb999a0242
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.created_minimal
object_type: campaign
object_id: c15c8135-ce33-4e4b-a446-2176c1f95b49
created_at: 2026-06-08 17:58:05.152463
updated_at: 2026-06-08 17:58:05.152471
details:
  {"version_id": "85aa1028-0783-4cfc-b27c-f9c0d95d707f", "external_id": "new-campaign-20260608175803"}


id: 1d594c07-0a74-4382-9131-c05dcc9cd0ac
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.created_minimal
object_type: campaign
object_id: ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5
created_at: 2026-06-08 18:26:05.682811
updated_at: 2026-06-08 18:26:05.682819
details:
  {"version_id": "f67a7003-0b6b-4290-a919-1e712f27c243", "external_id": "new-campaign-20260608175803-copy-20260608182605"}


id: b152a5f6-7db8-44b6-8784-c0c9a2d4275e
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_updated
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-08 18:26:06.169202
updated_at: 2026-06-08 18:26:06.169210
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "manual", "current_step": "copied"}


id: 5407f3e9-16af-411e-9621-7f1691923295
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-08 18:26:21.997888
updated_at: 2026-06-08 18:26:21.997895
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "manual", "current_step": "campaign-data"}


id: bb3b1a73-f6a9-48c1-94be-54942f0ed8ad
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-08 18:28:01.359883
updated_at: 2026-06-08 18:28:01.359891
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "manual", "current_step": "template"}


id: b1c57ed7-5b9a-453f-9e9e-507fca5da015
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-08 18:34:51.806606
updated_at: 2026-06-08 18:34:51.806615
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "create", "current_step": "sender"}


id: f7cf7865-4f27-4162-bea2-aee1d67ff46f
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-08 21:16:38.567735
updated_at: 2026-06-08 21:16:38.567743
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "manual", "current_step": "recipient-data"}


id: a885878a-b826-4a43-8065-57226e493df8
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-08 21:42:13.631177
updated_at: 2026-06-08 21:42:13.631185
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "manual", "current_step": "campaign-fields"}


id: d4460a21-3943-4b6d-a247-a256b29a0af9
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-08 23:36:56.055922
updated_at: 2026-06-08 23:36:56.055928
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "manual", "current_step": "files"}


id: 9645178d-3c71-42bb-bb77-569ba19b3b14
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-08 23:51:36.153383
updated_at: 2026-06-08 23:51:36.153391
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "manual", "current_step": "mail-settings"}


id: 199cc5aa-acf1-4c9d-9142-6e057740b4d0
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-09 10:58:13.636191
updated_at: 2026-06-09 10:58:13.636194
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "create", "current_step": "basics"}


id: 06b2dbde-0158-406a-a224-71611400ef9d
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-09 13:17:51.309111
updated_at: 2026-06-09 13:17:51.309119
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "manual", "current_step": "campaign-settings"}


id: c89c8b4a-93ac-41d1-bf0e-af4a3b323ded
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.created_minimal
object_type: campaign
object_id: 7b78c4b2-57f0-40cc-96e7-8ebb52c0593f
created_at: 2026-06-10 11:13:46.238245
updated_at: 2026-06-10 11:13:46.238255
details:
  {"version_id": "dfc5e46d-a9fb-46ea-82e6-42d71aab0afb", "external_id": "new-campaign-20260610111345"}


id: f553c832-a7e8-4167-aa95-81b2c4fa2814
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: f67a7003-0b6b-4290-a919-1e712f27c243
created_at: 2026-06-10 12:45:05.026512
updated_at: 2026-06-10 12:45:05.026521
details:
  {"campaign_id": "ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5", "current_flow": "manual", "current_step": "recipients"}


id: ebae0e1e-1b6d-45e4-8e9c-e3ea7399ecdb
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: 57992c81-c0f3-450f-9719-f412ee6630c2
created_at: 2026-06-10 15:22:42.995326
updated_at: 2026-06-10 15:22:42.995333
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "current_flow": "manual", "current_step": "campaign-settings"}


id: 1b2eb7ec-83fa-4122-ab91-eb4580cf37ba
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: 57992c81-c0f3-450f-9719-f412ee6630c2
created_at: 2026-06-10 15:23:58.535018
updated_at: 2026-06-10 15:23:58.535020
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "current_flow": "manual", "current_step": "recipients"}


id: 452daf4a-3b58-4770-ba6d-30dc05774593
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: 57992c81-c0f3-450f-9719-f412ee6630c2
created_at: 2026-06-10 15:24:29.696792
updated_at: 2026-06-10 15:24:29.696801
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "current_flow": "manual", "current_step": "campaign-fields"}


id: c8a9481c-7a12-49f2-a9f4-608360ecf6a7
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: 57992c81-c0f3-450f-9719-f412ee6630c2
created_at: 2026-06-10 15:24:42.507694
updated_at: 2026-06-10 15:24:42.507700
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "current_flow": "manual", "current_step": "recipient-data"}


id: 7ad748f5-3169-4b0e-b6d8-e1543a4c04e1
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: 57992c81-c0f3-450f-9719-f412ee6630c2
created_at: 2026-06-10 15:24:54.678175
updated_at: 2026-06-10 15:24:54.678182
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "current_flow": "manual", "current_step": "template"}


id: f6b17624-74e1-4eba-ae94-da99dcf64f28
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: 57992c81-c0f3-450f-9719-f412ee6630c2
created_at: 2026-06-10 15:25:18.067713
updated_at: 2026-06-10 15:25:18.067720
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "current_flow": "manual", "current_step": "mail-settings"}


id: 6c349535-b165-445f-905f-68d6833e28e4
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.send_now_dry_run
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-10 20:42:32.586302
updated_at: 2026-06-10 20:42:32.586312
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "57992c81-c0f3-450f-9719-f412ee6630c2", "attempted_count": 0, "sent_count": 0, "failed_count": 0, "skipped_count": 0, "dry_run": true, "results": [{"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "57992c81-c0f3-450f-9719-f412ee6630c2", "queued_count": 1, "skipped_count": 0, "blocked_count": 0, "enqueued_count": 0, "dry_run": true}], "validation": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "issues": [], "entries_mode": "inline", "entries_count": 1, "attachments_base_path": ".", "rate_limit": "5/min, concurrency 1", "imap_append_enabled": false, "ok": true, "error_count": 0, "warning_count": 0}, "build": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "campaign_file": "/mnt/DATA/git/multi-seal-mail/server/runtime/campaign_snapshots/57992c81-c0f3-450f-9719-f412ee6630c2.json", "entries_count": 1, "messages": [{"entry_index": 1, "entry_id": "recipient-1", "active": true, "build_status": "built", "validation_status": "ready", "send_status": "draft", "imap_status": "not_requested", "subject": "It works!", "from": {"email": "albrecht@degering.name", "name": "Albrecht Degering"}, "to": [{"email": "albrecht@degering.name", "name": "Albrecht Degering"}], "cc": [], "bcc": [], "reply_to": [], "bounce_to": [], "disposition_notification_to": [], "attachment_count": 0, "attachments": [], "issues": [], "eml_path": "/mnt/DATA/git/multi-seal-mail/server/runtime/generated_eml/483c817c-475d-4793-9227-b5182006e17f/57992c81-c0f3-450f-9719-f412ee6630c2/recipient-1.eml", "eml_size_bytes": 332}], "built_count": 1, "build_failed_count": 0, "ready_count": 1, "warning_count": 0, "needs_review_count": 0, "blocked_count": 0, "excluded_count": 0, "inactive_count": 0, "queueable_count": 1}}


id: 8320e3be-6644-4e43-93b1-f476db06faf7
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.sent_now
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-10 20:43:33.764517
updated_at: 2026-06-10 20:43:33.764525
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "57992c81-c0f3-450f-9719-f412ee6630c2", "attempted_count": 1, "sent_count": 1, "failed_count": 0, "skipped_count": 0, "dry_run": false, "results": [{"job_id": "b38ae230-8d53-49e4-ba0f-801c5f285218", "status": "sent", "attempt_number": 1, "dry_run": false, "message": null}], "validation": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "issues": [], "entries_mode": "inline", "entries_count": 1, "attachments_base_path": ".", "rate_limit": "5/min, concurrency 1", "imap_append_enabled": false, "ok": true, "error_count": 0, "warning_count": 0}, "build": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "campaign_file": "/mnt/DATA/git/multi-seal-mail/server/runtime/campaign_snapshots/57992c81-c0f3-450f-9719-f412ee6630c2.json", "entries_count": 1, "messages": [{"entry_index": 1, "entry_id": "recipient-1", "active": true, "build_status": "built", "validation_status": "ready", "send_status": "draft", "imap_status": "not_requested", "subject": "It works!", "from": {"email": "albrecht@degering.name", "name": "Albrecht Degering"}, "to": [{"email": "albrecht@degering.name", "name": "Albrecht Degering"}], "cc": [], "bcc": [], "reply_to": [], "bounce_to": [], "disposition_notification_to": [], "attachment_count": 0, "attachments": [], "issues": [], "eml_path": "/mnt/DATA/git/multi-seal-mail/server/runtime/generated_eml/483c817c-475d-4793-9227-b5182006e17f/57992c81-c0f3-450f-9719-f412ee6630c2/recipient-1.eml", "eml_size_bytes": 333}], "built_count": 1, "build_failed_count": 0, "ready_count": 1, "warning_count": 0, "needs_review_count": 0, "blocked_count": 0, "excluded_count": 0, "inactive_count": 0, "queueable_count": 1}}


id: 422bdb29-5c39-47a8-81fa-6fc01ff585a2
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_forked_for_edit
object_type: campaign_version
object_id: 84154c72-7168-4ff5-996d-79f799e28723
created_at: 2026-06-10 22:20:42.410086
updated_at: 2026-06-10 22:20:42.410094
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "source_version_id": "57992c81-c0f3-450f-9719-f412ee6630c2", "version_number": 2}


id: a1bbed37-4498-4fa3-af3e-de0fa60f88a5
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.send_now_dry_run
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-10 22:21:51.817874
updated_at: 2026-06-10 22:21:51.817883
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "84154c72-7168-4ff5-996d-79f799e28723", "attempted_count": 0, "sent_count": 0, "failed_count": 0, "skipped_count": 0, "dry_run": true, "results": [{"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "84154c72-7168-4ff5-996d-79f799e28723", "queued_count": 1, "skipped_count": 0, "blocked_count": 0, "enqueued_count": 0, "dry_run": true}], "validation": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "issues": [], "entries_mode": "inline", "entries_count": 1, "attachments_base_path": ".", "rate_limit": "5/min, concurrency 1", "imap_append_enabled": false, "ok": true, "error_count": 0, "warning_count": 0}, "build": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "campaign_file": "/mnt/DATA/git/multi-seal-mail/server/runtime/campaign_snapshots/84154c72-7168-4ff5-996d-79f799e28723.json", "entries_count": 1, "messages": [{"entry_index": 1, "entry_id": "recipient-1", "active": true, "build_status": "built", "validation_status": "ready", "send_status": "draft", "imap_status": "not_requested", "subject": "It works!", "from": {"email": "albrecht@degering.name", "name": "Albrecht Degering"}, "to": [{"email": "albrecht@degering.name", "name": "Albrecht Degering"}], "cc": [], "bcc": [], "reply_to": [], "bounce_to": [], "disposition_notification_to": [], "attachment_count": 0, "attachments": [], "issues": [], "eml_path": "/mnt/DATA/git/multi-seal-mail/server/runtime/generated_eml/483c817c-475d-4793-9227-b5182006e17f/84154c72-7168-4ff5-996d-79f799e28723/recipient-1.eml", "eml_size_bytes": 349}], "built_count": 1, "build_failed_count": 0, "ready_count": 1, "warning_count": 0, "needs_review_count": 0, "blocked_count": 0, "excluded_count": 0, "inactive_count": 0, "queueable_count": 1}}


id: e667a394-af94-4660-b0fc-b1b97bc462f4
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.sent_now
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-10 22:22:05.485931
updated_at: 2026-06-10 22:22:05.485940
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "84154c72-7168-4ff5-996d-79f799e28723", "attempted_count": 1, "sent_count": 1, "failed_count": 0, "skipped_count": 0, "dry_run": false, "results": [{"job_id": "f40e79c0-cefd-4bd3-9d40-56dc386794fa", "status": "sent", "attempt_number": 1, "dry_run": false, "message": null}], "validation": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "issues": [], "entries_mode": "inline", "entries_count": 1, "attachments_base_path": ".", "rate_limit": "5/min, concurrency 1", "imap_append_enabled": false, "ok": true, "error_count": 0, "warning_count": 0}, "build": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "campaign_file": "/mnt/DATA/git/multi-seal-mail/server/runtime/campaign_snapshots/84154c72-7168-4ff5-996d-79f799e28723.json", "entries_count": 1, "messages": [{"entry_index": 1, "entry_id": "recipient-1", "active": true, "build_status": "built", "validation_status": "ready", "send_status": "draft", "imap_status": "not_requested", "subject": "It works!", "from": {"email": "albrecht@degering.name", "name": "Albrecht Degering"}, "to": [{"email": "albrecht@degering.name", "name": "Albrecht Degering"}], "cc": [], "bcc": [], "reply_to": [], "bounce_to": [], "disposition_notification_to": [], "attachment_count": 0, "attachments": [], "issues": [], "eml_path": "/mnt/DATA/git/multi-seal-mail/server/runtime/generated_eml/483c817c-475d-4793-9227-b5182006e17f/84154c72-7168-4ff5-996d-79f799e28723/recipient-1.eml", "eml_size_bytes": 349}], "built_count": 1, "build_failed_count": 0, "ready_count": 1, "warning_count": 0, "needs_review_count": 0, "blocked_count": 0, "excluded_count": 0, "inactive_count": 0, "queueable_count": 1}}


id: 787142be-01e8-4b82-9510-d849f7657871
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.send_now_dry_run
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-10 22:30:30.364999
updated_at: 2026-06-10 22:30:30.365002
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "84154c72-7168-4ff5-996d-79f799e28723", "attempted_count": 0, "sent_count": 0, "failed_count": 0, "skipped_count": 0, "dry_run": true, "results": [{"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "84154c72-7168-4ff5-996d-79f799e28723", "queued_count": 1, "skipped_count": 0, "blocked_count": 0, "enqueued_count": 0, "dry_run": true}], "validation": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "issues": [], "entries_mode": "inline", "entries_count": 1, "attachments_base_path": ".", "rate_limit": "5/min, concurrency 1", "imap_append_enabled": false, "ok": true, "error_count": 0, "warning_count": 0}, "build": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "campaign_file": "/mnt/DATA/git/multi-seal-mail/server/runtime/campaign_snapshots/84154c72-7168-4ff5-996d-79f799e28723.json", "entries_count": 1, "messages": [{"entry_index": 1, "entry_id": "recipient-1", "active": true, "build_status": "built", "validation_status": "ready", "send_status": "draft", "imap_status": "not_requested", "subject": "It works!", "from": {"email": "albrecht@degering.name", "name": "Albrecht Degering"}, "to": [{"email": "albrecht@degering.name", "name": "Albrecht Degering"}], "cc": [], "bcc": [], "reply_to": [], "bounce_to": [], "disposition_notification_to": [], "attachment_count": 0, "attachments": [], "issues": [], "eml_path": "/mnt/DATA/git/multi-seal-mail/server/runtime/generated_eml/483c817c-475d-4793-9227-b5182006e17f/84154c72-7168-4ff5-996d-79f799e28723/recipient-1.eml", "eml_size_bytes": 348}], "built_count": 1, "build_failed_count": 0, "ready_count": 1, "warning_count": 0, "needs_review_count": 0, "blocked_count": 0, "excluded_count": 0, "inactive_count": 0, "queueable_count": 1}}


id: 784b61d1-5789-408a-94ef-cc26ae6c1b30
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.send_now_dry_run
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-10 23:42:35.488242
updated_at: 2026-06-10 23:42:35.488247
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "84154c72-7168-4ff5-996d-79f799e28723", "attempted_count": 0, "sent_count": 0, "failed_count": 0, "skipped_count": 0, "dry_run": true, "results": [{"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "84154c72-7168-4ff5-996d-79f799e28723", "queued_count": 1, "skipped_count": 0, "blocked_count": 0, "enqueued_count": 0, "dry_run": true}], "validation": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "issues": [], "entries_mode": "inline", "entries_count": 1, "attachments_base_path": ".", "rate_limit": "5/min, concurrency 1", "imap_append_enabled": false, "ok": true, "error_count": 0, "warning_count": 0}, "build": null}


id: 31c8cb1e-9d63-4355-83a5-205c83d0e91f
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_forked_for_edit
object_type: campaign_version
object_id: 9c483d2f-1af6-49e9-8e61-cd4edfd697b4
created_at: 2026-06-10 23:46:00.696243
updated_at: 2026-06-10 23:46:00.696250
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "source_version_id": "84154c72-7168-4ff5-996d-79f799e28723", "version_number": 3}


id: ef0b8b64-f55e-4dee-93d5-28455bf24c7d
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: 9c483d2f-1af6-49e9-8e61-cd4edfd697b4
created_at: 2026-06-11 00:03:21.380948
updated_at: 2026-06-11 00:03:21.380956
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "current_flow": "manual", "current_step": "global-settings"}


id: 256b72e0-963c-4a9c-bfeb-95f474bc2f74
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.version_autosaved
object_type: campaign_version
object_id: 9c483d2f-1af6-49e9-8e61-cd4edfd697b4
created_at: 2026-06-11 00:58:55.648261
updated_at: 2026-06-11 00:58:55.648269
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "current_flow": "manual", "current_step": "files"}


id: 4f12d5da-70b4-45a0-9309-8b3b3fa0713d
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.send_now_dry_run
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-11 08:14:39.980713
updated_at: 2026-06-11 08:14:39.980720
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "9c483d2f-1af6-49e9-8e61-cd4edfd697b4", "attempted_count": 0, "sent_count": 0, "failed_count": 0, "skipped_count": 2, "dry_run": true, "results": [{"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "9c483d2f-1af6-49e9-8e61-cd4edfd697b4", "queued_count": 0, "skipped_count": 0, "blocked_count": 2, "enqueued_count": 0, "dry_run": true}], "validation": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments 2", "issues": [], "entries_mode": "inline", "entries_count": 2, "attachments_base_path": "Campaign files: .", "rate_limit": "5/min, concurrency 1", "imap_append_enabled": true, "ok": true, "error_count": 0, "warning_count": 0}, "build": null}


id: c192e074-706d-4013-be8c-665f923a58c7
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.sent_now
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-11 08:14:45.924347
updated_at: 2026-06-11 08:14:45.924355
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "9c483d2f-1af6-49e9-8e61-cd4edfd697b4", "attempted_count": 0, "sent_count": 0, "failed_count": 0, "skipped_count": 2, "dry_run": false, "results": [], "validation": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments 2", "issues": [], "entries_mode": "inline", "entries_count": 2, "attachments_base_path": "Campaign files: .", "rate_limit": "5/min, concurrency 1", "imap_append_enabled": true, "ok": true, "error_count": 0, "warning_count": 0}, "build": null}


id: 0f91a7c9-9d79-409b-b0a9-16969e69fded
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.mock_send_review
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-11 08:51:50.926409
updated_at: 2026-06-11 08:51:50.926412
details:
  {"version_id": "9c483d2f-1af6-49e9-8e61-cd4edfd697b4", "send_requested": false, "sent_count": 0, "failed_count": 0}


id: b21f8806-0d34-4fb0-959a-e75986b99ee6
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.mock_send
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-11 09:07:04.335981
updated_at: 2026-06-11 09:07:04.335983
details:
  {"version_id": "9c483d2f-1af6-49e9-8e61-cd4edfd697b4", "send_requested": true, "sent_count": 2, "failed_count": 0}


id: 60a55c7f-cdaa-4a25-aa4c-ae1bbe2de73c
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.mock_send
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-11 09:51:06.694716
updated_at: 2026-06-11 09:51:06.694720
details:
  {"version_id": "9c483d2f-1af6-49e9-8e61-cd4edfd697b4", "send_requested": true, "sent_count": 0, "failed_count": 0}


id: 145b9844-6be1-4318-a27c-3a8ed95b6573
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
action: campaign.send_now_dry_run
object_type: campaign
object_id: 483c817c-475d-4793-9227-b5182006e17f
created_at: 2026-06-11 09:51:32.813914
updated_at: 2026-06-11 09:51:32.813922
details:
  {"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "9c483d2f-1af6-49e9-8e61-cd4edfd697b4", "attempted_count": 0, "sent_count": 0, "failed_count": 0, "skipped_count": 2, "dry_run": true, "results": [{"campaign_id": "483c817c-475d-4793-9227-b5182006e17f", "version_id": "9c483d2f-1af6-49e9-8e61-cd4edfd697b4", "queued_count": 0, "skipped_count": 0, "blocked_count": 2, "enqueued_count": 0, "dry_run": true}], "validation": {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments 2", "issues": [], "entries_mode": "inline", "entries_count": 2, "attachments_base_path": "Campaign files: .", "rate_limit": "5/min, concurrency 1", "imap_append_enabled": false, "ok": true, "error_count": 0, "warning_count": 0}, "build": null}


# campaign_jobs

id: b38ae230-8d53-49e4-ba0f-801c5f285218
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
campaign_id: 483c817c-475d-4793-9227-b5182006e17f
campaign_version_id: 57992c81-c0f3-450f-9719-f412ee6630c2
entry_id: recipient-1
recipient_email: albrecht@degering.name
subject: It works!
build_status: built
validation_status: ready
queue_status: draft
send_status: sent
imap_status: not_requested
queued_at: 2026-06-10 20:43:31.859680
sent_at: 2026-06-10 20:43:33.584557
resolved_attachments: []
issues_snapshot: []
created_at: 2026-06-10 20:43:31.695804
updated_at: 2026-06-10 20:43:33.587983
eml_local_path:
  /mnt/DATA/git/multi-seal-mail/server/runtime/generated_eml/483c817c-475d-4793-9227-b5182006e17f/57992c81-c0f3-450f-9719-f412ee6630c2/recipient-1.eml

resolved_recipients:
  {"from": {"email": "albrecht@degering.name", "name": "Albrecht Degering"}, "to": [{"email": "albrecht@degering.name", "name": "Albrecht Degering"}], "cc": [], "bcc": [], "reply_to": [], "bounce_to": [], "disposition_notification_to": []}


# send_attempts

id: 2411b1f0-d7a6-4527-9b20-9c71f1f2d41e
job_id: b38ae230-8d53-49e4-ba0f-801c5f285218
started_at: 2026-06-10 20:43:32.052237
finished_at: 2026-06-10 20:43:33.584224
created_at: 2026-06-10 20:43:32.060230
updated_at: 2026-06-10 20:43:33.593931
smtp_response:
  {"host": "mail.degering.name", "port": 587, "security": "starttls", "envelope_from": "albrecht@degering.name", "envelope_recipients": ["albrecht@degering.name"], "refused_recipients": {}}


# campaign_versions

id: 57992c81-c0f3-450f-9719-f412ee6630c2
campaign_id: 483c817c-475d-4793-9227-b5182006e17f
schema_version: 1.0
created_at: 2026-06-08 15:31:42.222601
updated_at: 2026-06-10 20:43:33.626578
workflow_state: completed
current_flow: manual
current_step: mail-settings
editor_state: {"created_from": "minimal_campaign"}
autosaved_at: 2026-06-10 15:25:17.953079
locked_at: 2026-06-10 20:42:16.548838
locked_by_user_id: 1dd92976-7cfe-4fae-9270-ea02a18499c4
raw_json:
  {"version": "1.0", "campaign": {"id": "test-campaign-wo-attachment", "name": "Test Campaign w/o attachments", "description": "Test campaign to get this show on the road.", "mode": "draft"}, "fields": [{"name": "test", "type": "string", "label": "Test Field", "required": false, "can_override": true}], "global_values": {"test": "It works!"}, "server": {"smtp": {"host": "mail.degering.name", "port": 587, "username": "albrecht@degering.name", "password": "H4cK7h3P14n37!", "security": "starttls"}, "imap": {"enabled": false, "host": "", "port": 993, "username": "", "password": "", "security": "tls", "sent_folder": "auto"}}, "recipients": {"from": {"name": "Albrecht Degering", "email": "albrecht@degering.name"}, "allow_individual_from": false, "to": [], "allow_individual_to": true, "cc": [], "allow_individual_cc": false, "bcc": [], "allow_individual_bcc": false, "reply_to": [], "allow_individual_reply_to": false, "bounce_to": [], "allow_individual_bounce_to": false, "disposition_notification_to": [], "allow_individual_disposition_notification_to": false}, "template": {"subject": "{{global:test}}", "text": "{{local:test}}", "html": null}, "attachments": {"base_path": ".", "allow_individual": true, "send_without_attachments": false, "global": [], "missing_behavior": "ask", "ambiguous_behavior": "ask"}, "entries": {"inline": [{"id": "recipient-1", "active": true, "to": [{"name": "Albrecht Degering", "email": "albrecht@degering.name"}], "cc": [], "bcc": [], "name": "Albrecht Degering", "email": "albrecht@degering.name", "from": {}, "reply_to": [], "fields": {"test": "It really does!"}}], "defaults": {"active": true, "combine_to": false, "combine_cc": true, "combine_bcc": true, "combine_reply_to": true, "combine_bounce_to": true, "combine_disposition_notification_to": true, "combine_attachments": true, "attachments": []}}, "validation_policy": {"missing_required_attachment": "ask", "missing_optional_attachment": "warn", "ambiguous_attachment_match": "ask", "missing_email": "block", "template_error": "block"}, "delivery": {"rate_limit": {"messages_per_minute": 5, "concurrency": 1}, "imap_append_sent": {"enabled": false, "folder": "auto"}, "retry": {"max_attempts": 3, "backoff_seconds": [60, 300, 900]}}, "status_tracking": {"enabled": true}}

validation_summary:
  {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "issues": [], "entries_mode": "inline", "entries_count": 1, "attachments_base_path": ".", "rate_limit": "5/min, concurrency 1", "imap_append_enabled": false, "ok": true, "error_count": 0, "warning_count": 0}

build_summary:
  {"campaign_id": "test-campaign-wo-attachment", "campaign_name": "Test Campaign w/o attachments", "campaign_file": "/mnt/DATA/git/multi-seal-mail/server/runtime/campaign_snapshots/57992c81-c0f3-450f-9719-f412ee6630c2.json", "entries_count": 1, "messages": [{"entry_index": 1, "entry_id": "recipient-1", "active": true, "build_status": "built", "validation_status": "ready", "send_status": "draft", "imap_status": "not_requested", "subject": "It works!", "from": {"email": "albrecht@degering.name", "name": "Albrecht Degering"}, "to": [{"email": "albrecht@degering.name", "name": "Albrecht Degering"}], "cc": [], "bcc": [], "reply_to": [], "bounce_to": [], "disposition_notification_to": [], "attachment_count": 0, "attachments": [], "issues": [], "eml_path": "/mnt/DATA/git/multi-seal-mail/server/runtime/generated_eml/483c817c-475d-4793-9227-b5182006e17f/57992c81-c0f3-450f-9719-f412ee6630c2/recipient-1.eml", "eml_size_bytes": 333}], "built_count": 1, "build_failed_count": 0, "ready_count": 1, "warning_count": 0, "needs_review_count": 0, "blocked_count": 0, "excluded_count": 0, "inactive_count": 0, "queueable_count": 1}


id: 85aa1028-0783-4cfc-b27c-f9c0d95d707f
campaign_id: c15c8135-ce33-4e4b-a446-2176c1f95b49
schema_version: 1.0
created_at: 2026-06-08 17:58:04.996495
updated_at: 2026-06-08 17:58:04.996500
workflow_state: editing
current_flow: create
current_step: basics
editor_state: {"created_from": "minimal_campaign"}
autosaved_at: 2026-06-08 17:58:04.993362
raw_json:
  {"version": "1.0", "campaign": {"id": "new-campaign-20260608175803", "name": "New Campaign", "description": "", "mode": "draft"}, "fields": [], "global_values": {}, "server": {"smtp": {"host": "", "port": 587, "username": "", "password": "", "security": "starttls"}, "imap": {"enabled": false, "host": "", "port": 993, "username": "", "password": "", "security": "tls", "sent_folder": "auto"}}, "recipients": {"from": {"name": "", "email": ""}, "allow_individual_from": false, "to": [], "allow_individual_to": true, "cc": [], "allow_individual_cc": false, "bcc": [], "allow_individual_bcc": false, "reply_to": [], "allow_individual_reply_to": false, "bounce_to": [], "allow_individual_bounce_to": false, "disposition_notification_to": [], "allow_individual_disposition_notification_to": false}, "template": {"subject": "", "text": "", "html": null}, "attachments": {"base_path": ".", "allow_individual": true, "send_without_attachments": false, "global": [], "missing_behavior": "ask", "ambiguous_behavior": "ask"}, "entries": {"inline": [], "defaults": {"active": true, "combine_to": false, "combine_cc": true, "combine_bcc": true, "combine_reply_to": true, "combine_bounce_to": true, "combine_disposition_notification_to": true, "combine_attachments": true, "attachments": []}}, "validation_policy": {"missing_required_attachment": "ask", "missing_optional_attachment": "warn", "ambiguous_attachment_match": "ask", "missing_email": "block", "template_error": "block"}, "delivery": {"rate_limit": {"messages_per_minute": 5, "concurrency": 1}, "imap_append_sent": {"enabled": false, "folder": "auto"}, "retry": {"max_attempts": 3, "backoff_seconds": [60, 300, 900]}}, "status_tracking": {"enabled": true}}


id: f67a7003-0b6b-4290-a919-1e712f27c243
campaign_id: ee82d8d3-50b6-4aed-b8cb-c8bec2d9c5e5
schema_version: 1.0
created_at: 2026-06-08 18:26:05.543196
updated_at: 2026-06-11 07:41:15.121501
workflow_state: editing
current_flow: manual
current_step: mail-settings
autosaved_at: 2026-06-11 07:41:15.116424
raw_json:
  {"version": "1.0", "campaign": {"id": "new-campaign-20260608182605", "name": "Rechnungslegung-Test", "description": "", "mode": "draft"}, "fields": [{"name": "monthyear", "type": "string", "label": "Monat/Jahr", "required": true, "can_override": false}, {"name": "anrede", "type": "string", "label": "Anrede", "required": true, "can_override": true}, {"name": "number", "type": "string", "label": "Dienststelle / Bucket", "required": true, "can_override": true}, {"name": "password", "type": "password", "label": "Passwort", "required": true, "can_override": true}], "global_values": {"monthyear": "06 / 2026", "password": "", "anrede": "Sehr geehrte Damen und Herren"}, "server": {"smtp": {"host": "mock.smtp.local", "port": 2525, "username": "", "password": "", "security": "plain"}, "imap": {"enabled": true, "host": "mock.imap.local", "port": 1143, "username": "", "password": "", "security": "plain", "sent_folder": "Sent"}}, "recipients": {"from": {"name": "Albrecht Degering", "email": "test@example.com"}, "allow_individual_from": false, "to": [], "allow_individual_to": true, "cc": [], "allow_individual_cc": false, "bcc": [], "allow_individual_bcc": false, "reply_to": [], "allow_individual_reply_to": false, "bounce_to": [], "allow_individual_bounce_to": false, "disposition_notification_to": [], "allow_individual_disposition_notification_to": false}, "template": {"subject": "Rechnungslegungslisten f\u00fcr {{global:monthyear}} und Dienststelle {{local:number}}", "text": "{{local:anrede}},\n\nin der Anlage erhalten Sie die Rechnungslegungslisten f\u00fcr die Dienststelle {{local:number}} f\u00fcr den Abrechnungsmonat ${global::monthyear} im Excel-Format. Bitte verwenden Sie zum \u00d6ffnen das dauerhafte Passwort, das Ihnen bereits in der Vergangenheit zugeschickt wurde.\nDie Rechnungslegungslisten liefern den Nachweis (inkl. Brutto-/Netto-Darstellung) der auf Ihren dezentral bewirtschafteten Fonds gebuchten Personalkosten. Sie dienen der \u00dcberwachung und Kontrolle und ggf. als Nachweis gegen\u00fcber Drittmittelgebern.\nDie Listen erhalten vertrauliche personenbezogene Daten, daher sind diese nur berechtigten Personen zug\u00e4nglich zu machen und nur f\u00fcr einen unbedingt notwendigen Zeitraum aufzubewahren.\nFalls Sie Rechnungslegungslisten erhalten haben sollten, die nicht zu Ihrer Einrichtung geh\u00f6ren, bitten wir Sie um entsprechende R\u00fcckmeldung.\n\nMit freundlichen Gr\u00fc\u00dfen\n\nRechnungslegungsteam Dezernat 5", "html": ""}, "attachments": {"base_path": ".", "allow_individual": true, "send_without_attachments": false, "global": [{"id": "attachment-1781079367608", "type": "", "label": "", "base_dir": "", "file_filter": "welcome.pdf", "include_subdirs": false, "required": true, "missing_behavior": "ask", "ambiguous_behavior": "ask"}, {"id": "attachment-1781079369032", "type": "", "label": "", "base_dir": "", "file_filter": "attachments/{{local:email}}/*.pdf", "include_subdirs": false, "required": true, "missing_behavior": "ask", "ambiguous_behavior": "ask"}], "missing_behavior": "ask", "ambiguous_behavior": "ask"}, "entries": {"inline": [{"id": "recipient-1", "active": true, "to": [{"name": "Albrecht Degering", "email": "test@example.com"}, {"name": "Test", "email": "abc@def.de"}], "name": "Albrecht Degering", "email": "test@example.com", "fields": {"field_2": "test2", "field_1": "5", "anrede": "Sehr geehrter Herr Degering", "number": "999999", "password": "asdasd"}, "attachments": [{"id": "attachment-1781091788233", "label": "", "base_dir": ".", "file_filter": "terms-and-conditions.pdf", "required": true, "include_subdirs": false}, {"id": "attachment-1781091790034", "label": "", "base_dir": ".", "file_filter": "{{local:recipient_id}}/certificate.pdf", "required": true, "include_subdirs": false}]}, {"id": "recipient-2", "active": true, "to": [{"name": "Test", "email": "abc@def.de"}], "name": "Test", "email": "abc@def.de", "fields": {"field_1": "7", "anrede": "", "number": "010000", "password": "2asdasd"}, "attachments": [{"id": "attachment-1781091800983", "type": "", "label": "", "base_dir": ".", "file_filter": "welcome.pdf", "include_subdirs": true, "required": true, "missing_behavior": "ask", "ambiguous_behavior": "ask"}]}], "defaults": {"active": true, "combine_to": false, "combine_cc": true, "combine_bcc": true, "combine_reply_to": true, "combine_bounce_to": true, "combine_disposition_notification_to": true, "combine_attachments": true, "attachments": []}}, "validation_policy": {"unsent_attachment_files": "warn", "missing_required_attachment": "ask", "missing_optional_attachment": "warn", "ambiguous_attachment_match": "ask", "missing_email": "block", "template_error": "block"}, "delivery": {"rate_limit": {"messages_per_minute": 5, "concurrency": 1}, "imap_append_sent": {"enabled": true, "folder": "Sent"}, "retry": {"max_attempts": 3, "backoff_seconds": [60, 300, 900]}}, "status_tracking": {"enabled": true}}

editor_state:
  {"copied_from_campaign_id": "c15c8135-ce33-4e4b-a446-2176c1f95b49", "copied_from_version_id": "85aa1028-0783-4cfc-b27c-f9c0d95d707f", "field_overrides": {"field_2": true}}


id: dfc5e46d-a9fb-46ea-82e6-42d71aab0afb
campaign_id: 7b78c4b2-57f0-40cc-96e7-8ebb52c0593f
schema_version: 1.0
created_at: 2026-06-10 11:13:46.122288
updated_at: 2026-06-10 11:13:46.122290
workflow_state: editing
current_flow: create
current_step: basics
editor_state: {"created_from": "minimal_campaign"}
autosaved_at: 2026-06-10 11:13:46.120892
raw_json:
  {"version": "1.0", "campaign": {"id": "new-campaign-20260610111345", "name": "New Campaign", "description": "", "mode": "draft"}, "fields": [], "global_values": {}, "server": {"smtp": {"host": "", "port": 587, "username": "", "password": "", "security": "starttls"}, "imap": {"enabled": false, "host": "", "port": 993, "username": "", "password": "", "security": "tls", "sent_folder": "auto"}}, "recipients": {"from": {"name": "", "email": ""}, "allow_individual_from": false, "to": [], "allow_individual_to": true, "cc": [], "allow_individual_cc": false, "bcc": [], "allow_individual_bcc": false, "reply_to": [], "allow_individual_reply_to": false, "bounce_to": [], "allow_individual_bounce_to": false, "disposition_notification_to": [], "allow_individual_disposition_notification_to": false}, "template": {"subject": "", "text": "", "html": null}, "attachments": {"base_path": ".", "allow_individual": true, "send_without_attachments": false, "global": [], "missing_behavior": "ask", "ambiguous_behavior": "ask"}, "entries": {"inline": [], "defaults": {"active": true, "combine_to": false, "combine_cc": true, "combine_bcc": true, "combine_reply_to": true, "combine_bounce_to": true, "combine_disposition_notification_to": true, "combine_attachments": true, "attachments": []}}, "validation_policy": {"missing_required_attachment": "ask", "missing_optional_attachment": "warn", "ambiguous_attachment_match": "ask", "missing_email": "block", "template_error": "block"}, "delivery": {"rate_limit": {"messages_per_minute": 5, "concurrency": 1}, "imap_append_sent": {"enabled": false, "folder": "auto"}, "retry": {"max_attempts": 3, "backoff_seconds": [60, 300, 900]}}, "status_tracking": {"enabled": true}}


id: 84154c72-7168-4ff5-996d-79f799e28723
campaign_id: 483c817c-475d-4793-9227-b5182006e17f
schema_version: 1.0
validation_summary: null
build_summary: null
created_at: 2026-06-10 22:20:42.281714
updated_at: 2026-06-10 23:43:53.204645
workflow_state: editing
current_flow: manual
current_step: template
editor_state: {"created_from": "minimal_campaign"}
autosaved_at: 2026-06-10 22:21:06.135568
published_at: 2026-06-10 23:35:26.953475
raw_json:
  {"version": "1.0", "campaign": {"id": "test-campaign-wo-attachment", "name": "Test Campaign w/o attachments", "description": "Test campaign to get this show on the road.", "mode": "draft"}, "fields": [{"name": "test", "type": "string", "label": "Test Field", "required": false, "can_override": true}], "global_values": {"test": "It works!"}, "server": {"smtp": {"host": "mail.degering.name", "port": 587, "username": "albrecht@degering.name", "password": "H4cK7h3P14n37!", "security": "starttls"}, "imap": {"enabled": false, "host": "", "port": 993, "username": "", "password": "", "security": "tls", "sent_folder": "auto"}}, "recipients": {"from": {"name": "Albrecht Degering", "email": "albrecht@degering.name"}, "allow_individual_from": false, "to": [], "allow_individual_to": true, "cc": [], "allow_individual_cc": false, "bcc": [], "allow_individual_bcc": false, "reply_to": [], "allow_individual_reply_to": false, "bounce_to": [], "allow_individual_bounce_to": false, "disposition_notification_to": [], "allow_individual_disposition_notification_to": false}, "template": {"subject": "{{global:test}}", "text": "{{local:test}} It really does!", "html": null}, "attachments": {"base_path": ".", "allow_individual": true, "send_without_attachments": false, "global": [], "missing_behavior": "ask", "ambiguous_behavior": "ask"}, "entries": {"inline": [{"id": "recipient-1", "active": true, "to": [{"name": "Albrecht Degering", "email": "albrecht@degering.name"}], "cc": [], "bcc": [], "name": "Albrecht Degering", "email": "albrecht@degering.name", "from": {}, "reply_to": [], "fields": {"test": "It really does!"}}], "defaults": {"active": true, "combine_to": false, "combine_cc": true, "combine_bcc": true, "combine_reply_to": true, "combine_bounce_to": true, "combine_disposition_notification_to": true, "combine_attachments": true, "attachments": []}}, "validation_policy": {"missing_required_attachment": "ask", "missing_optional_attachment": "warn", "ambiguous_attachment_match": "ask", "missing_email": "block", "template_error": "block"}, "delivery": {"rate_limit": {"messages_per_minute": 5, "concurrency": 1}, "imap_append_sent": {"enabled": false, "folder": "auto"}, "retry": {"max_attempts": 3, "backoff_seconds": [60, 300, 900]}}, "status_tracking": {"enabled": true}}


id: 9c483d2f-1af6-49e9-8e61-cd4edfd697b4
campaign_id: 483c817c-475d-4793-9227-b5182006e17f
schema_version: 1.0
validation_summary: null
build_summary: null
created_at: 2026-06-10 23:46:00.584104
updated_at: 2026-06-11 15:59:23.466455
workflow_state: editing
current_flow: manual
current_step: recipients
editor_state: {"created_from": "minimal_campaign"}
autosaved_at: 2026-06-11 12:16:33.591014
raw_json:
  {"version": "1.0", "campaign": {"id": "test-campaign-wo-attachment", "name": "Test Campaign w/o attachments", "description": "Test campaign to get this show on the road.", "mode": "send"}, "fields": [{"name": "invoice_number", "type": "string", "label": "Test Field 1", "required": false, "can_override": true}, {"name": "test12", "type": "integer", "label": "Test123", "required": false, "can_override": true}], "global_values": {"invoice_number": "It works!", "test12": 11}, "server": {"smtp": {"host": "mail.degering.name", "port": 587, "username": "albrecht@degering.name", "password": "H4cK7h3P14n37!", "security": "starttls"}, "imap": {"enabled": true, "host": "mail.degering.name", "port": 993, "username": "albrecht@degering.name", "password": "H4cK7h3P14n37!", "security": "tls", "sent_folder": "Sent"}}, "recipients": {"from": {"name": "Albrecht Degering", "email": "albrecht@degering.name"}, "allow_individual_from": false, "to": [], "allow_individual_to": true, "cc": [], "allow_individual_cc": false, "bcc": [], "allow_individual_bcc": false, "reply_to": [], "allow_individual_reply_to": false, "bounce_to": [], "allow_individual_bounce_to": false, "disposition_notification_to": [], "allow_individual_disposition_notification_to": false}, "template": {"subject": "{{global:invoice_number}}", "text": "{{local:invoice_number}} It really does!", "html": ""}, "attachments": {"base_path": ".", "allow_individual": true, "send_without_attachments": true, "global": [{"id": "attachment-1781170099616-p9por9bg37", "label": "", "base_dir": ".", "file_filter": "welcome.pdf", "include_subdirs": false, "required": true, "missing_behavior": "ask", "ambiguous_behavior": "ask"}], "missing_behavior": "continue", "ambiguous_behavior": "ask", "base_paths": [{"id": "base-path-campaign", "name": "Campaign files", "source": "", "path": ".", "allow_individual": true, "unsent_warning": false}]}, "entries": {"inline": [{"id": "recipient-1", "active": true, "to": [{"name": "Albrecht Degering", "email": "albrecht@degering.name"}], "cc": [], "bcc": [], "name": "Albrecht Degering", "email": "albrecht@degering.name", "from": {}, "reply_to": [], "fields": {"test": "It really does!", "invoice_number": "1"}, "attachments": []}, {"id": "recipient-2", "active": true, "to": [{"name": "test er", "email": "test@exmaple.com"}], "cc": [], "bcc": [], "name": "test er", "email": "test@exmaple.com", "from": {}, "reply_to": [], "attachments": [], "fields": {"invoice_number": "2", "test12": 5}}], "defaults": {"active": true, "combine_to": false, "combine_cc": true, "combine_bcc": true, "combine_reply_to": true, "combine_bounce_to": true, "combine_disposition_notification_to": true, "combine_attachments": true, "attachments": []}}, "validation_policy": {"unsent_attachment_files": "warn", "missing_required_attachment": "ask", "missing_optional_attachment": "warn", "ambiguous_attachment_match": "ask", "missing_email": "block", "template_error": "block"}, "delivery": {"rate_limit": {"messages_per_minute": 5, "concurrency": 1}, "imap_append_sent": {"enabled": false, "folder": "Sent"}, "retry": {"max_attempts": 3, "backoff_seconds": [60, 300, 900]}}, "status_tracking": {"enabled": true}}


# file_blobs

id: 1e19b7b1-cdbb-42db-a779-be92603b500c
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: 12e368bf12f62569f97550f572bba79981ec6a190d15dec27c7dba75bf8fea7b
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-11 23:59:30.437968
updated_at: 2026-06-12 00:04:41.014156
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/12/a305c496fe044a01a4eeb3e7dd80bff4-202605-010001-90100010-9601741.XLSX


id: d2b6725f-b07b-4f48-88f7-279857963579
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: c7365774ea713e85da834dd67bcd4ce0576c3bd0abff67fb933631525c200859
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-11 23:59:30.453144
updated_at: 2026-06-12 00:04:41.015631
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/c7/f70a680ba09c4f3b961fdeb4264e7be6-202605-010001-90100010-9604662.XLSX


id: 46bd94ea-b517-4800-9d22-fdd8d19b13d5
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: e5cba80ab5da7eaffb70ac5fa1e40a6c992e8e68e518fb5b941040b17c9b7bcb
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-11 23:59:30.457556
updated_at: 2026-06-12 00:04:41.010767
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/e5/a289acea8c97458894695a8b83482faf-202605-010001-90100010-_.XLSX


id: 9f10dff3-f80c-49b2-9ccb-58f722fdb266
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: b2b191e5585f27a9ca2adfdfc3bf10ae55659a80ab65fd3022dbb382c7ca8e6c
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.924915
updated_at: 2026-06-12 00:04:41.017058
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/b2/43065e6e40f84ecbb8467aa3502355eb-202605-010210-90102100-_.XLSX


id: 1f477b3a-017a-46a4-8d78-f1a436af7e41
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: ba6a8a17829bcc199eb3659677a056ef594727c858022a3be29077ab27425365
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.931285
updated_at: 2026-06-12 00:04:41.018839
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/ba/b51a01f74f2e423d9de286f9ad32a87b-202605-010210-90102100-9507003.XLSX


id: 319a76c2-2669-43f1-b53a-622ca8fc36e9
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: ffc35e0bccf1f1510d9dca3874263bb8e7aae38edf0597c58ad633b7a12f3bb8
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.937638
updated_at: 2026-06-12 00:04:41.020264
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/ff/72c02a6956ff4b76a9f778fba4811c75-202605-010210-90102100-9509935.XLSX


id: 12a67753-22fd-4244-b7c7-081996f96e93
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: 77a4f87a8d0ac17b554fb9746782c6a5467aed5fdf650a9f7d8e5945dd490105
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.943198
updated_at: 2026-06-12 00:04:41.021894
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/77/746e1704bd9145049cd7811f4c32b7bd-202605-010210-90102100-9512109.XLSX


id: ceae8eaf-fdaf-4ba7-8a9c-d8b45f62528c
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: 526f358a098ce85d2c1ce52725f2c266e9b1a06e9dc7ddf65d027a9382dca6cb
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.947501
updated_at: 2026-06-12 00:04:41.023308
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/52/be971e13500b4c9bb56fa7eb72335ecb-202605-010210-90102100-9512152.XLSX


id: 6ecf4770-e563-4fc3-a10d-3bfacaaed70a
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: 0d55e42edd5d6a4642dacf0b4c5495c963c246557cc3137d95ca47d90980cba5
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.951441
updated_at: 2026-06-12 00:04:41.024713
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/0d/680640dc964447b69a0bcd9d506f035c-202605-010210-90102100-9515757.XLSX


id: 82888f61-19c0-49ab-838e-60e080e1f622
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: ae168e36fc1223a3ec8c880c4f3f2bf1931ab2ba99d8f47ca5e692aaaba59865
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.955122
updated_at: 2026-06-12 00:04:41.026202
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/ae/7c7125e5d39b43eba2c34594b668177c-202605-010210-90102100-9517068.XLSX


id: 308f6316-4d07-412d-b33a-09d2be104ecd
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: ecf7a5b348879102d6abed03df32582672a27987e3ccd1e4aff99ed0a5ec3e86
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.958190
updated_at: 2026-06-12 00:04:41.028152
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/ec/99bf139891bb4667b634543089928173-202605-010210-90102100-9605484.XLSX


id: 32df701c-589c-430c-9f42-0d93861071de
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: 02e121e90505b6b4c72d4a3199272f7b7c824566afb9b00dad601434762453be
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.960867
updated_at: 2026-06-12 00:04:41.029806
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/02/28a58a8b9b694de2a1a98fe00b246c60-202605-010210-90102100-9605875.XLSX


id: af9ec5d4-0b66-4095-b9ae-a77cd6c371e9
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: c7acec774db66e680af51b4fbdc40eb912e7ae578bd92c473247b1bb8dea9af0
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.963456
updated_at: 2026-06-12 00:04:41.031562
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/c7/9c897bf786704806ac810a2a5801ab73-202605-010210-90102100-9606960.XLSX


id: 479db1e3-b7ba-4479-84a5-d93795bd3423
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: ba4ffc39181e969495c883dc38fb8b3436e864652fcad0817a080df67faddccf
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.965995
updated_at: 2026-06-12 00:04:41.033028
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/ba/cfd705f1f232453a8f791636fd5ba361-202605-010221-90102210-_.XLSX


id: 356a884f-4104-41e4-9df8-9d7ce821ef23
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: 31c194ab62b4373a61b7b0d3318b360e08a48c46e28f2e989b1d1d5d4e2916ee
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.968567
updated_at: 2026-06-12 00:04:41.034446
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/31/abfd71021a3b48358b77a6e6eab7983b-202605-010222-90102220-_.XLSX


id: f9f9c53a-10f6-48c3-b430-bb461ca8764e
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: b077b6c7af2498a00c425a40769f40f12b8d71a44f5bd4c9d2638d09c72b53f3
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.971721
updated_at: 2026-06-12 00:04:41.035746
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/b0/b4f419c68a6a4ac3b8dacc929dc4e0f1-202605-010231-90102310-_.XLSX


id: a62c8547-9d86-4917-aec0-b597e1dc54f5
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: bfd8424b3947e384beee91bdd689309905c13a68123b95672dbd43eb7c8d4cc0
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.973811
updated_at: 2026-06-12 00:04:41.037004
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/bf/f70827fde1b34e5db61001e3e05dfcb5-202605-010232-90102320-_.XLSX


id: c9315363-363c-4146-8760-b328854b1007
tenant_id: 88dea056-c084-48b8-b1b7-20d2d0f9b466
storage_backend: local
storage_bucket: files
checksum_sha256: a5fbaa8751c3d407d7cc6b2f2abc41f6ff5d9a4ef46608cf41ca9983e82561d1
content_type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
created_at: 2026-06-12 00:03:07.975745
updated_at: 2026-06-12 00:04:41.038259
storage_key:
  tenants/88dea056-c084-48b8-b1b7-20d2d0f9b466/files/a5/d9a3c76202324a71b9c26fc8ec568f1f-202605-010241-90102410-_.XLSX


