Phase E: Archival & Publishing
Archive completed events and manage publication workflows
Last Updated: 2026-06-13 β Verified the 9-state EVENT workflow (Epic 5, unchanged); speaker publish-readiness now uses the derived
is_publishableflag (ADR-009 / Epic 11) rather than aconfirmedstate.
Status: Implemented
Event State Transitions: AGENDA_PUBLISHED β AGENDA_FINALIZED β EVENT_LIVE β EVENT_COMPLETED β ARCHIVED
Auto-Publishing: Implemented (30-day speaker publish, 14-day agenda publish)
Auto-Transitions: Implemented (EVENT_LIVE on event day, EVENT_COMPLETED after event ends)
Overview
Phase E manages the event lifecycle from agenda finalization through execution to archival. The system includes automated publishing (speakers @ 30 days, agenda @ 14 days) and automated state transitions (EVENT_LIVE on event day, EVENT_COMPLETED after event ends).
Key Deliverable: Executed event with complete historical archive and automated lifecycle management
Event Archival (Implemented)
Implemented
Purpose
Archive completed events to preserve historical data and free up the active event list for current planning.
When to Archive
Archive events after:
- Event has concluded
- Post-event follow-up completed
- Attendee feedback collected
- All financial transactions settled
How to Archive an Event
Navigate to Event Overview
From the event dashboard, open the event you want to archive and navigate to the Overview tab.

Click the edit button to open the event configuration modal.

Change Status to ARCHIVED
In the edit modal, locate the status dropdown and select ARCHIVED.


The system will initially show a validation error if the event hasnβt completed all workflow steps.

Override Workflow Validation
To archive an event that hasnβt completed all workflow steps, check the Override Workflow Validation checkbox.

This allows archival regardless of workflow state, useful for cancelled events or special circumstances.
Save and Verify
Save the changes and verify the event now shows the ARCHIVED badge.


Archived events are:
- Moved to archived events section
- Preserved for historical reference
- Excluded from active event workflows
- Available for reporting and analytics
Event state: Any workflow state β ARCHIVED
Note: Events can be archived from any state using the override validation checkbox (useful for cancelled events).
Automated Publishing (Implemented)
Implemented
Auto-Publishing Schedule
BATbern automatically publishes event content on a fixed schedule to reduce manual work and ensure timely publication:
Speaker Profiles (30 days before event):
- Cron job runs daily at 00:00 UTC
- Checks all events where
currentPublishedPhasehas not yet reached βspeakersβ (i.e. speakers not yet published), regardless of event workflow state - For events exactly 30 days away (or past this date if not yet published):
- Publishes all publishable speaker profiles (
is_publishable=QUALITY_REVIEWED AND is_slot_assigned) to the public website - Sets speaker.publishedAt timestamp
- Auto-creates βNewsletter: Speakersβ task (if not exists)
- Publishes all publishable speaker profiles (
Full Agenda (14 days before event):
- Cron job runs daily at 00:00 UTC
- Checks all events where
currentPublishedPhase = "speakers"(speakers already published) and all sessions have timing configured - For events exactly 14 days away (or past this date if not yet published):
- Publishes complete session schedule with time slots
- Sets event.agendaPublishedAt timestamp
- Transitions event to AGENDA_PUBLISHED state
- Auto-creates βNewsletter: Finalβ task (if not exists)
Manual Override:
- Organizers can manually publish speakers/agenda before auto-publish dates
- Use Publishing tab β βPublish Speakers Nowβ or βPublish Agenda Nowβ
- Prevents duplicate auto-publishing (checks publishedAt timestamps)
Automated State Transitions (Implemented)
Implemented
EVENT_LIVE Transition (on event day):
- Cron job runs hourly
- Checks all events in AGENDA_FINALIZED state
- For events where current date/time >= event start time:
- Automatically transitions event to EVENT_LIVE state
- Sends real-time notification to organizers
- Triggers day-of-event systems (check-in, live updates)
EVENT_COMPLETED Transition (after all sessions end via Watch mode):
- Primary mechanism: organizer uses the live Watch feature to call
endSession()for each completeable session - When the last completeable session is ended, the system automatically transitions the event to EVENT_COMPLETED state
- Only session types that count toward completion: keynote, presentation, workshop, panel_discussion
- Excluded from completion check: break, lunch, networking β these do not need to be ended by the organizer
- Sends post-event notification to organizers
- Triggers post-event workflows (feedback collection, archival preparation)
See Live Event Management (Watch Mode) below for full details.
Configuration:
- Uses event.eventDate and event.eventTime for EVENT_LIVE transition trigger
- Handles timezone correctly (all times stored as UTC)
Live Event Management (Watch Mode)
Implemented
The Watch feature lets organizers manage the event in real time on the event day. It is the primary mechanism that drives the EVENT_LIVE β EVENT_COMPLETED transition.
How it works:
- While the event is in
EVENT_LIVEstate, open the Watch view from the event dashboard. - As each session concludes, click End Session for that session in the Watch view.
- When the last completeable session has been ended, the system automatically transitions the event to
EVENT_COMPLETED.
Completeable session types (must be ended to trigger completion):
- keynote
- presentation
- workshop
- panel_discussion
Non-completeable session types (never required to be ended):
- break
- lunch
- networking
If organizers do not use Watch mode, the event remains in EVENT_LIVE indefinitely β there is no automatic time-based fallback that transitions to EVENT_COMPLETED.
CDN Delivery (CloudFront)
Published content is served through AWS CloudFront CDN for low-latency delivery:
- Speaker photos, presentation materials, and event assets are stored in S3 and delivered via CloudFront (< 50 ms typical latency)
- Cache invalidation is triggered automatically when new content is published β on the auto-publish schedule and on manual publish
- Changes to speaker profiles or the agenda reach the public website within seconds of the publish job completing
Archival Best Practices
When to Archive:
- Immediately after post-event activities complete
- Typically 1-2 weeks after event date
- After attendee feedback window closes
What Gets Preserved:
- Complete event configuration
- All speaker and presentation data
- Slot assignments and schedule
- Participant lists and attendance records
- Quality reviews and ratings
Archival vs. Deletion:
- β Archive: Preserves all data, supports historical analysis
- β Delete: Permanent removal, loses historical context
- Prefer archival to maintain 20+ year event history
Agenda Finalization
Implemented
Purpose
Lock the final agenda approximately 2 weeks before the event to allow for printing and final communications.
When to Finalize
Typically 14 days before the event, after:
- All speakers confirmed and reconfirmed
- All slot assignments complete
- Any last-minute dropouts resolved
- Ready to send to printer
How to Finalize
Review Agenda Completeness
Verify all slots are filled and all speakers are publishable (is_publishable = QUALITY_REVIEWED AND is_slot_assigned). The event-workflow gate validateAllSpeakersConfirmed checks this derived flag β there is no separate confirmed speaker state.
Finalize Agenda
In the event edit modal, advance event state from AGENDA_PUBLISHED to AGENDA_FINALIZED.
Event state: AGENDA_PUBLISHED β AGENDA_FINALIZED
Auto-created Tasks:
- Newsletter: Final (due: 14 days before event)
- Catering (due: 30 days before event)
Automatic Publishing Triggers
Once finalized, the 14-day auto-publish countdown begins:
- System will auto-publish full agenda at 00:00 UTC 14 days before event
- Or you can manually publish immediately via Publishing tab
Progressive Publishing
The auto-publishing schedule (speakers at 30 days, agenda at 14 days) handles the standard release timeline automatically. The controls below allow organizers to publish earlier or override the default schedule for special cases.
Purpose
Control publishing timing when the automated 30/14-day schedule doesnβt fit β for example, publishing speakers sooner to build anticipation, or delaying if late-breaking changes are expected.
Manual Publishing Options
Publishing Strategy
Progressive Release Timeline:
| When | What Published | Why |
|---|---|---|
| 4 weeks before | Event date, venue, registration | Open registration early |
| 3 weeks before | Topic list | Build interest, no speaker commitment yet |
| 2 weeks before | Speaker names and bios | Confirm speakers before announcing |
| 1 week before | Complete schedule | Final agenda with time slots |
Benefits:
- Speakers have time to withdraw before public announcement
- Organizers can adjust topics if needed
- Marketing can build gradually
- Reduces last-minute changes to published agenda
How to Complete
Stage 1: Event Basics (4 weeks before)
Publish core event information:
[Publish Event Basics]
Public Information:
β
Event name: "BATbern 2025"
β
Date: March 15, 2025
β
Time: 9:00 - 18:00
β
Venue: Kursaal Bern
β
Event type: Full-Day Conference
β
Registration link: Active
Hidden:
βΈοΈ Topics (not yet published)
βΈοΈ Speakers (not yet published)
βΈοΈ Schedule (not yet published)
[Publish to Website]
Event landing page goes live at: https://www.batbern.ch/events/batbern-2025
Stage 2: Topics (3 weeks before)
Publish selected topics:
[Publish Topics]
Topics for BATbern 2025:
β
Sustainable Building Materials
β
Digital Transformation in Architecture
β
Urban Planning Innovations
β
Heritage Adaptive Reuse
... (8 more)
Speakers: "Coming soon - Stay tuned!"
[Publish Topics]
Topics appear on event page, no speaker names yet.
Stage 3: Speakers (2 weeks before)
Publish speaker profiles:
[Publish Speaker Profiles]
Confirm all speakers before publishing:
β
Hans MΓΌller - Last confirmation: 2 days ago
β
Anna Schmidt - Last confirmation: 1 day ago
β
Peter Weber - Last confirmation: 3 days ago
... (9 more)
β οΈ All speakers must confirm availability within 7 days
[Publish All Speakers]
Speaker directory goes live with photos, bios, and session titles.
Stage 4: Complete Agenda (1 week before)
Publish full schedule:
[Publish Complete Agenda]
Full Schedule:
ββββββββββββββββββββββββββββββββββββββββββββββββ
09:00-09:45
Track A: Hans MΓΌller - Sustainable Materials
Track B: Anna Schmidt - Digital Transformation
10:00-10:45
Track A: Peter Weber - Urban Planning
Track B: Martin Fischer - Heritage Reuse
[Continue for all sessions...]
[Publish Full Agenda]
Complete schedule with time slots appears on event page.
Event state: SLOT_ASSIGNMENT β AGENDA_PUBLISHED
Website Preview
Public event page shows:
ββββββββββββββββββββββββββββββββββββββββββββββββ
BATbern 2025
Full-Day Conference | March 15, 2025 | Kursaal Bern
ββββββββββββββββββββββββββββββββββββββββββββββββ
[Register Now] - 45 days until event
ββββββββββββββββββββββββββββββββββββββββββββββββ
About This Event
Join 300+ architects for a full day of insights on...
Topics:
β’ Sustainable Building Materials
β’ Digital Transformation
β’ Urban Planning Innovations
β’ Heritage Adaptive Reuse
... and 8 more
ββββββββββββββββββββββββββββββββββββββββββββββββ
Speakers (12)
[Photo] Hans MΓΌller
MΓΌller Architekten AG
"Innovations in Sustainable Building Materials"
[View Profile]
[Photo] Anna Schmidt
Schmidt & Partner
"Digital Transformation in Architecture"
[View Profile]
... (10 more speakers)
ββββββββββββββββββββββββββββββββββββββββββββββββ
Schedule
09:00-09:45 Opening Sessions
[Track A] Hans MΓΌller - Sustainable Materials
[Track B] Anna Schmidt - Digital Transformation
10:00-10:45 Morning Sessions
[Track A] Peter Weber - Urban Planning
[Track B] Martin Fischer - Heritage Reuse
[View Full Schedule]
ββββββββββββββββββββββββββββββββββββββββββββββββ
[Register Now]
Publishing Notifications
Stakeholder communication at each publishing stage is handled through the Task System β the newsletter task templates (Newsletter: Topic, Newsletter: Speakers, Newsletter: Final) are automatically created at the relevant event state transitions and assigned to organizers for action. See Task Templates for configuration.
Notify stakeholders at each stage:
Registration Opened (Stage 1):
- Email to all users: βRegistration now open!β
- Social media announcement
- Partner notification
Topics Announced (Stage 2):
- Email to registered attendees
- Social media teaser
- Blog post
Speakers Revealed (Stage 3):
- Email to all with speaker highlights
- Social media speaker spotlights (1 per day)
- Press release
Full Agenda Published (Stage 4):
- Final email with complete schedule
- Downloadable PDF agenda
- Mobile app update (if available)
Dropout Handling
Purpose
Lock the final agenda while managing any last-minute speaker withdrawals.
Acceptance Criteria
- β All speakers reconfirmed within 1 week of event
- β Dropout procedures executed (if needed)
- β Agenda finalized and locked
- β Event state = AGENDA_FINALIZED
Reconfirmation Process
Send Reconfirmation Request (1 week before)
Email all speakers:
To: hans.mueller@example.com
Subject: Final Confirmation - BATbern 2025 (1 week away!)
Hi Hans,
BATbern 2025 is one week away! Please confirm you're ready:
Your Session:
- Date: March 15, 2025
- Time: 09:00-09:45 (Track A)
- Topic: "Innovations in Sustainable Building Materials"
- Duration: 45 minutes (30 min talk + 15 min Q&A)
Please confirm by clicking:
[Yes, I'm Ready!] [I Need to Withdraw]
If confirming, please also confirm:
β Presentation slides ready (send by March 13)
β Technical requirements submitted
β Travel/accommodation arranged
See you next week!
Anna Schmidt
Track Confirmations
Monitor response status:
Final Confirmation Status
ββββββββββββββββββββββββββββββββββββββββ
Deadline: March 8, 2025 (7 days before event)
Confirmed: 10 / 12 (83%) β
Pending: 2 / 12 (17%) β οΈ
- Peter Weber (last contact: 3 days ago)
- Lisa Meier (last contact: 5 days ago)
Dropout: 0
[Send Reminder to Pending]
Handle Dropouts (if occur)
If speaker withdraws after publication:
β οΈ Dropout Alert
Martin Fischer withdrew (March 8, 2025)
Session: Heritage Adaptive Reuse (11:00-11:45 Track B)
Reason: "Family emergency"
Impact: 1 session affected, 1 week before event
Options:
1. [Promote Waitlist Speaker]
Sophie Keller - Similar topic available
2. [Reassign Existing Speaker]
Hans MΓΌller could present second session
3. [Cancel Session]
Reduce to 11 sessions, adjust schedule
4. [Merge Sessions]
Combine with similar topic, extend duration
[Choose Option]
Option 1: Promote Waitlist Speaker
Contact waitlist speaker immediately:
To: sophie.keller@example.com
Subject: URGENT: Speaker Slot Available - BATbern 2025
Hi Sophie,
A speaker slot has opened for BATbern 2025 (March 15).
Session Details:
- Topic: Heritage Adaptive Reuse
- Time: 11:00-11:45 (Track B)
- Notice: 6 days (expedited preparation)
Your waitlisted presentation "Circular Economy in Construction"
fits well. Are you available?
Please respond within 24 hours.
Urgently,
Anna Schmidt
If accepted:
- Update agenda immediately
- Notify registered attendees of change
- Update printed materials if not yet produced
Option 2/3/4: Adjust Schedule
If no replacement available:
Cancel Session:
- Update online agenda
- Send attendee notification
- Adjust printed programs
- Offer partial refund if significant change
Reassign or Merge:
- Adjust affected speakerβs content
- Update agenda and notify attendees
- Ensure quality maintained
Finalize Agenda
Once all speakers confirmed and dropouts resolved:
[Finalize Agenda]
Final Status:
ββββββββββββββββββββββββββββββββββββββββ
Total Sessions: 12
Confirmed Speakers: 12 β
Dropouts Resolved: 1 (Sophie Keller replacement) β
Last Change: March 8, 2025
Lock agenda? After locking:
- No further changes allowed
- Printed materials can be produced
- Final attendee notification sent
[Lock Agenda] [Cancel]
Click Lock Agenda
Event state: AGENDA_PUBLISHED β AGENDA_FINALIZED
Phase E complete! β The event will automatically transition to EVENT_LIVE when the event day arrives.
Dropout Communication
To Registered Attendees:
Subject: Schedule Update - BATbern 2025
Hi [Attendee],
A schedule update for BATbern 2025:
Changed Session:
- Was: Martin Fischer - "Heritage Adaptive Reuse"
- Now: Sophie Keller - "Circular Economy in Construction"
- Time: 11:00-11:45 Track B (unchanged)
All other sessions remain as published.
See updated schedule: [link]
Thank you for your understanding!
BATbern Team
To Dropout Speaker:
Subject: Thank You - BATbern 2025
Hi Martin,
Thank you for letting us know about your situation.
We completely understand and hope everything is okay.
We'd love to have you present at a future BATbern event.
I'll reach out in a few months about BATbern 2026.
Best wishes,
Anna
Phase E Completion
Success Criteria (Complete Lifecycle)
- β Agenda finalized (AGENDA_FINALIZED state)
- β Auto-publishing configured (speakers @ 30 days, agenda @ 14 days)
- β Event executed successfully (EVENT_LIVE β EVENT_COMPLETED auto-transitions)
- β Post-event activities completed
- β Event archived (ARCHIVED state)
- β Historical data preserved
What Happens Next
After archival:
- Event removed from active workflows
- Data available for historical reporting
- Heat map data updated with event statistics
- Event serves as reference for future planning
Troubleshooting Phase E
βCannot archive - workflow validation errorβ
Problem: System prevents archiving because workflow steps incomplete.
Solution:
- Check Override Workflow Validation checkbox in edit modal
- This allows archival for cancelled events or special cases
- Verify all important data is preserved before archiving
βArchived event still appears in active listβ
Problem: Event shows ARCHIVED badge but remains in active events.
Solution:
- Refresh the page to update the event list
- Check that status was saved correctly (re-open edit modal)
- Clear browser cache if issue persists
- Verify event state in database if problem continues
βNeed to un-archive an eventβ
Problem: Event was archived prematurely or by mistake.
Solution:
- Re-open the event edit modal
- Change status back to appropriate workflow state (e.g., AGENDA_PUBLISHED)
- Uncheck override validation if needed
- Save changes to restore event to active status
Related Topics
- Phase D: Assignment β - Previous phase
- Event Management β - Event configuration and status
- Screenshot Index β - All workflow screenshots
API Reference
PUT /api/events/{id}/status Update event status (including ARCHIVED)
GET /api/events?status=ARCHIVED List archived events
GET /api/events/{id}/history Get event workflow history
POST /api/events/{id}/restore Restore archived event to active status
See API Documentation for complete specifications.