DEX Event Experience Platform

User Documentation

Version 2.0 | January 2026
Deloitte Deutschland GmbH

Created by: Eike Brenneisen, Andreas Enk, Nils Felten

Table of Contents

1. Management Summary

The DEX Event Experience Platform is a fully Microsoft Power Platform-based event management solution for internal Deloitte events. The platform digitizes and automates the entire event lifecycle.

Initial Situation

Before DEX: Manual event management with email registrations, Excel lists, manual calendar maintenance, and paper check-in lists.

The Solution

DEX automates these processes through Power Apps (Frontend), Power Automate (23 Flows), SharePoint Online (Data) and Office 365 (Email/Calendar).

Achieved Results

15+ Eventssuccessfully executed
80% time savedin event administration
23 Flowsimplemented and productive
100% ComplianceBR and SecO approved

Core Functions

2. Application Description

2.1 Purpose and Benefits

DEX replaces manual event processes with automated workflows for organizers, participants, and check-in teams.

Benefits for Organizers

Benefits for Participants

2.2 Technical Architecture

ComponentTechnologyPurpose
FrontendPower AppsUser Interface
BackendPower Automate (23 Flows)Business Logic
DataSharePoint OnlineEvents, Participant Lists
CommunicationOffice 365 OutlookE-Mail, Calendar

SharePoint Structure

ElementPath
Base Sitehttps://deudeloitte.sharepoint.com/sites/DOL-c-DE-B2Run/
Events List/Lists/Events
Event Subsites/sites/DOL-c-DE-B2Run/[EventName]/
Participant List/[EventName]/Lists/Participant List

Environments

The project has three separate environments for the entire development lifecycle:

EnvironmentPurposeDescription
Development (DEV)DevelopmentActive development of new features and bug fixes. Unstable environment for developer testing.
Quality Assurance (QA)Test & AcceptanceQuality assurance and User Acceptance Testing (UAT). Stable test environment.
Production (PROD)ProductionLive system for end users. Only tested and released versions.

Service Accounts & Connection References

All connection references in Power Automate and Power Apps are provided through Service Accounts:

AspectDescription
AuthenticationDedicated service accounts for all connector connections
SharePointService account with Site Collection Admin rights
Outlook/ExchangeService account with access to shared mailbox
Office 365 UsersService account with Directory Read permission
BenefitsIndependent of personal accounts, central management, audit trail

2.3 Architecture Flowchart

The following diagram shows the data flow between users, Power App, Power Automate Flows, and data stores (SharePoint & Office 365).

USERS FRONTEND BACKEND DATA Organizer Participant Check-In Team Power App DEX Event Experience Platform Power Automate (23 Flows) Event- Verwaltung (4 Flows) Registration (5 Flows) Check-In (3 Flows) E-Mail & Calendar (5 Flows) Utility (6 Flows) SharePoint Online DOL-c-DE-B2Run (Base Site) Lists/Events [Event]-Subsites [EventName]/ (Dynamische Subsite) Lists/Participant List Name, Email, Status, Nr, CheckIn... Office 365 Outlook Shared Mailbox no_reply.events@deloitte.de Calendar-Events Calendar invitationen

SharePoint List Structure in Detail

Events List /Lists/Events Fields (from CSV): • Title - Event Name • Content Typee - B2Run/JP Morgan/Other • Event end time - End time • Location / Location Filter • Max. parcipients - Capacity • Current parcipients / Wait list • Organzier - Responsible • Audience / Audience Mail • Status - Active/Out dated • Outlook EventID • Participant List URL - Subsite • Event image / T-Shirtgroessen creates Participant List /[EventName]/Lists/Participant List Fields (from CSV): • Participantname / Vorname / Nachname • Email - Address • Status - Registered/Waitlist/Cancelled • Nr. - Registrationsnummer • Salutation / JobTitle / Department / Office • TShirtGroesse / Allergies / FoodPreferences Event-specific fields: • Freitextfeld1/2 - Additional info • Dropdownfeld1 - e.g. Role (Partner/Director) • HotelRequired / RoomTypee / PreferredRoommate Each event gets its own subsite with Participant List

Data Flow: Registration Process

1. Registration Participant clicks "Register" in Power App 2. Entry Item is created in Participant List creates 3. Flow Trigger RegisterParticipant is triggered by "Item Created" triggered 4. Check Check capacity: Registered < Max? → Set status 5a. E-Mail Confirmation via Shared Mailbox 5b. Calendar Calendar invitation add 6. Done Participant is registered [done] Power App Power Automate SharePoint Office 365

2.4 Power App Screens

The DEX Power App includes 27 screens for different user groups and use cases.

Screen Navigation

LandingScreen Welcome + Start Button StartScreen Main Menu RegisterScreen Event Gallery (location-based) RegisterB2Event B2Run Form RegisterOtherEvent Standard Form ScreenSuccessRegistration MyEventsScreen My Events + Warteliste ScreenCancellation Deregistration ScreeSuccessDeregistration SettingsScreen (Admin only) EventCreation New Event CheckInScreen QR Scanner SendMail EditEvent Participant My Events Admin-only Erfolg

Screen-Descriptionen

ScreenPurposeKey Features
LandingScreenWelcome pageStart button, info text, email link to developers
StartScreenMain MenuNavigation to Registration, My Events; Settings icon (Admin only)
RegisterScreenEvent selectionGallery with events, filtered by location and audience
RegisterB2EventScreenB2Run RegistrationForm with running distance, team, additional fields
RegisterOtherEventScreenStandard RegistrationForm for JP Morgan Run and other events
MyEventsScreenMy EventsRegistered events + waiting list; deregistration option
CheckInScreenQR Code Check-InBarcodeReader, Office365 profile picture, Check-In button
SettingsScreenAdmin areaCreate event, edit, send emails
AllEventsScreenEvent-OverviewDataTable with all events (Admin)

App Data Sources

ConnectorData SourceUsage
SharePoint OnlineEventsMain list of all events
RegistrationsQueue for new registrations (trigger)
DeregistrationsQueue for deregistrations (trigger)
Event visitorsParticipant list (dynamic per event)
Check-InQueue for check-in actions
AdminsList of admin users
Office 365 UsersUser ProfileName, department, location, profile picture
Power AutomateGetParticipantEventsLoads "My Events" for user
CheckRegistrationStatusChecks registration status
GetWaitinglistPositionWaiting list position
CheckInFromQRCodePerforms check-in
SendMailParticipantlistSend mass email
ExtractParticipantMailsExtract email addresses

User Groups & Permissions

RoleRecognitionAccessible Screens
ParticipantEvery authenticated userLandingScreen, StartScreen, RegisterScreen, MyEventsScreen
AdminEmail in Admins list+ SettingsScreen, CheckInScreen, AllEventsScreen, EventCreation, SendMail

Admin check in code:

If(IsBlank(LookUp(Admins,'Admin Account'.Email = User().Email)), false, true)

2.5 Event Creation - Architecture in Detail

Event creation is a central process in the DEX platform. This section documents the Power App architecture for event creation to support potential modernization.

Event Typee Selection (EventCreationSelectionScreen)

The entry point for event creation is the EventCreationSelectionScreen, which offers three event types:

EventCreationSelectionScreen Event type selection B2Run Event EventCreationB2EventForm Inhaltstyp: "B2Run Event" Special fields: start block, T-shirt, fun runner J.P. Morgan Lauf EventCreationJPMorgan Inhaltstyp: "JP Morgan Run" Location: Frankfurt Other Events EventCreationOtherEventForm Inhaltstyp: "Other Deloitte Event" Generic, customizable Trigger: NewEventAdded Trigger: NewEventAdded Trigger: NewEventAdded

Form Architecture (Form Control)

Each event creation form uses a Power Apps Form Control with the following structure:

PropertyValueDescription
ControlForm@2.4.4Standard Power Apps Form
LayoutVerticalVertical arrangement of fields
DataSource=EventsDirect binding to SharePoint Events list
DefaultMode=FormMode.NewAlways in creation mode
OnVisible=ResetForm(Form1)Reset form when opening

Field Configuration by Event Typee

Common Fields (all event types):

FieldControlDataFieldRequired
TitleTextInput (Multiline)TitleYes
StandortTextInputStandortNo
Standort FilterComboBoxStandort_x0020_FilterNo
OrganizerComboBox (MultiSelect)OrganzierYes
Event timeDatePicker + DropDown (HH:MM)Event_x0020_timeYes
Event end timeDatePicker + DropDown (HH:MM)Event_x0020_end_x0020_timeYes
Last Register Date TimeDatePicker + DropDownLast_x0020_Register_x0020_Date_xYes
Last Deregister TimeDatePicker + DropDownLast_x0020_Register_x0020_Event_Yes

B2Run-specific fields:

FieldControlDescription
Max Fun-runnerNumber InputMaximum number of fun runners
Max DurchstarterNumber InputMaximum number of serious runners
StartblockComboBox (Multi)Available start blocks ["17:00", "18:30"]
T-ShirtgrößenComboBox (Multi)Available T-shirt sizes
T Shirt Größe visibleToggleShow T-shirt selection?

Other Event-specific fields:

FieldControlDescription
Audience MailTextInput (Dialog)Email addresses for access restriction
Frage Freitextfeld 1/2TextInputCustom question fields
Dropdownfeld 1/2Dialog with CollectionCustom dropdown options
Location HotelTextInputHotel information (if relevant)
Allergien visibleToggleShow allergies field during registration?

DataCard Structure

Each field is implemented as a TypedDataCard with the following structure:

TypeedDataCard@1.0.7
├── DataCardKey (Text)        - Field label
├── DataCardValue (Input)     - Input field (TextInput/ComboBox/DatePicker)
├── ErrorMessage (Text)       - Validation error
├── StarVisible (Text)        - Required indicator "*"
└── InfoButtonCanvas          - Help tooltip (optional)

Submit Logic

When saving an event:

  1. Form.Submit() - Creates new entry in Events list
  2. SharePoint Trigger - "Item Created" triggers NewEventAdded_SiteProvis Flow
  3. Flow processing:

Modernization Recommendations

For future modernization of event creation:

AreaCurrentRecommendation
Form3 separate screensSingle dynamic form with conditional display
ValidationDataCard-basedCentral validation logic with Custom Connector
Event typesHardcoded in screensConfiguration list for dynamic event types
Field configurationDefined per screenMetadata-driven form based on content type
Custom FieldsFreitextfeld1-7JSON schema for flexible field configuration

3. Power Automate Flows - Overview

The DEX platform includes 23 Power Automate Flows in five categories:

3.1 Event Management (4 Flows)

FlowTriggerDescription
NewEventAdded_SiteProvisSharePoint Item CreatedMain flow: Creates subsite, template, Outlook event
ApplyTemplateB2RunChild FlowB2Run participant list with special fields
ApplyTemplateOtherEventChild FlowStandard participant list
EventPermissionManual ButtonSet permissions for target audience

3.2 Registration (5 Flows)

FlowTriggerDescription
RegisterParticipantSharePoint Item CreatedRegistration: capacity check, registration/waiting list
DeregisterParticipantSharePoint Item CreatedDeregistration with automatic advancement
CheckRegistrationStatusParticipantPower AppChecks status: registered/waitlist/not_registered
GetWaitinglistPositionPower AppDetermines position on waiting list
GetParticipantEventsPower AppLists "My Events"

3.3 Check-In (3 Flows)

FlowTriggerDescription
Check-InSharePoint Item CreatedManual check-in
CheckInFromQRCodePower AppCheck-in via QR code scan
EventQRCodeGeneratorManual ButtonGenerates QR codes, sends via email

3.4 Email & Calendar (5 Flows)

FlowTriggerDescription
SendMailSharedMailboxChild FlowCentral email function
SendMailParticipantListPower AppMass email to participants
RegisterOutlookEventParticipantChild FlowAdds participant to Outlook appointment
CreateOutlookEventSharedMailboxChild FlowCreates Outlook appointment
HelperFlowMailToRegisteredManual ButtonHelper flow for special emails

3.5 Utility & Administration (6 Flows)

FlowTriggerDescription
Flow-Dokumentation-ExportManual ButtonExports flow definitions
SharePoint_Batch_Update_V2Manual ButtonBatch updates via REST API
SetPermissionForSubWebManual ButtonSet subsite permissions
UpdateAllEventsWithNewFieldsManual ButtonMigration: Add new fields
CorrectOutlookIDManual ButtonCorrects Outlook event IDs
SP List Numbering CorrectionManual ButtonCorrects No. field

4. Flow Detail Documentation

Each flow is documented with clustered actions. The actions are divided into logical groups, each with a description of what the cluster does.

4.1 NewEventAdded_SiteProvis

Flow-ID9722b1ef-8f72-83a4-55f8-e69cb548ea04StatusStopped (manuelle Aktivierung)
TriggerSharePoint - When an item is created (Intervall: 1 Minute)

Description

The central flow for event creation. Is automatically triggered when a new event is created in the Events list. Creates the complete infrastructure: SharePoint subsite, participant list, Outlook appointment and notifies the organizer.

Supported Event Types

1. Initialization & Status Update
  • Sets event status to "Under Construction" to indicate creation is in progress
  • Initializes all required variables (Titel, URL, Content Typee)
  • Prepares data for further processing
ActionTypeDescription
Update_item-_Set_Status_to_Under_ConstructionSharePoint PatchItemStatus → "Under Construction"
Initialize_variable-_varSiteTitleInitializeVariableEvent-Titel speichern
Initialize_variable-_varSiteURLInitializeVariableURL-Variable initialisieren
Initialize_variable-_varContentTypeeNameInitializeVariableEvent-Type speichern
2. URL-Bereinigung
  • SharePoint URLs cannot contain certain characters (spaces, #, %, etc.)
  • Event title is iteratively cleaned of invalid characters
  • Result is a URL-safe site name
ActionTypeDescription
Compose-_Create_FilterCharArrayComposeArray with invalid characters
Apply_to_each (Filter)ForeachRemoves each invalid character
3. Create SharePoint Subsite
  • HTTP POST to SharePoint REST API creates new subsite
  • Template STS#3 (Team Site without M365 Group) is used
  • ServerRelativeUrl is extracted from API response
ActionTypeDescription
Send_an_HTTP_request-_Create_New_Sub_SiteSharePoint HttpRequestPOST to /_api/web/webinfos/add
Parse_JSON-_Parse_ResponseParseJsonExtracts ServerRelativeUrl
Compose-_FinalURLComposeCombines to final URL
4. Call Template Flow
  • Switch branches based on Content Type (Event Type)
  • B2Run Events → ApplyTemplateB2Run (Special fields for running distance, team)
  • Other Events → ApplyTemplateOtherEvent (Standard fields)
ActionTypeDescription
SwitchSwitchBranches by event type
Run_a_Child_Flow (Template)WorkflowCalls template flow
5. Create Outlook Calendar Entry
  • Start/end time is converted to ISO format
  • CreateOutlookEventSharedMailbox creates appointment in shared mailbox
  • Outlook event ID is stored for later participant invitations
ActionTypeDescription
Compose_2, Compose_3ComposeFormats date to ISO
Run_a_Child_Flow_1 (Outlook)WorkflowCreates Outlook appointment
Update_item_-_EventsSharePoint PatchItemStores Outlook ID
6. Notify Organizer & Set Permissions
  • Logos are loaded and prepared as data URI for email
  • Each organizer receives confirmation email with link to participant list
  • If audience is defined, EventPermission is called
ActionTypeDescription
Get_file_content-_LogoSharePoint GetFileContentLoads event logo
For_each (Organizer)ForeachIterates over organizers
Send_an_email_from_shared_mailboxOffice 365Sends confirmation email
Run_a_Child_Flow_3 (Permission)WorkflowSets permissions

4.2 ApplyTemplateB2Run

Flow-IDa95f473c-36d2-d9b3-e8fe-16896b20c492StatusStarted
TriggerManual Button (Child Flow) with URL parameter

Description

Called by NewEventAdded for B2Run-Events. Creates the participant list with all B2Run-specific fields.

1. Receive Parameters
  • Receives subsite URL from calling flow
  • URL defines where the Participant List will be created
ActionTypeDescription
Initialize_variable-_varURLInitializeVariableStores subsite URL
2. Create Participant List & Fields
  • POST to /_api/web/lists creates the "Participant List"
  • Standard fields: Participantname, Email, Status (Choice), Nr, CheckIn
  • B2Run fields: Freitextfeld1-7 for race distance, team etc.
ActionTypeDescription
Send_HTTP_request-_Create_Participant ListSharePoint HttpRequestCreates list
Send_HTTP_request-_Create_FieldsSharePoint HttpRequestCreates all fields
Respond_to_a_Power_App_or_flowResponseConfirms success

4.3 ApplyTemplateOtherEvent

Flow-IDcfcce4df-e10c-eb93-b80e-b65c12c4de4cStatusStarted
TriggerManual Button (Child Flow)

Description

Creates standard participant list for JP Morgan Run and other events. Structure identical to ApplyTemplateB2Run, but allows separate customizations.

4.4 EventPermission

Flow-ID8c702f7e-b925-6769-ba71-102a65c4d0beStatusStarted
TriggerManual Button with Parameters (ItemId, Audience)

Description

Manages permissions for events with restricted target audience. Removes default sharing and sets specific permissions for the defined audience.

Permission Management
  • Removes all existing shares for the event
  • Grants the audience group read access
  • Grants the organizer full access
ActionTypeDescription
Stop_sharing_an_itemSharePoint UnshareItemRemoves shares
Grant_access (Audience)SharePoint GrantAccessRead access for audience
Grant_access (Organizer)SharePoint GrantAccessFull access for organizer

4.5 RegisterParticipant

Flow-ID12db96ef-b7e7-6cf8-c1c4-24d7f9fb96c5StatusStarted
TriggerSharePoint - When an item is created (Interval: 5 minutes)

Description

The core of the registration process. Processes new participant registrations, checks capacity and decides between registration or waitlist.

1. Initialization & Data Query
  • Initializes variables for item ID, user list ID, status
  • Loads event details from SharePoint (capacity, current participant count)
  • Counts already registered participants
ActionTypeDescription
Initialize_variablesInitializeVariableWorking variables
Get_item (Event)SharePoint GetItemLoads event details
Get_items (Registrations)SharePoint GetItemsCounts registrations
2. Capacity Check & Decision
  • Compares current participant count with maximum capacity
  • Space available → Status "Registered", email + calendar entry
  • Event full → Status "Waitlist", info about position
ActionTypeDescription
Condition (Capacity)IfChecks: Registered < Capacity?
Update_item (Registered)SharePoint PatchItemStatus → "Registered"
Update_item (Waitlist)SharePoint PatchItemStatus → "Waitlist"
3. Email & Calendar Integration
  • On registration: Participant is added to Outlook event
  • Confirmation email via shared mailbox
  • On waitlist: Info email with position
ActionTypeDescription
Run_a_Child_Flow (Outlook)WorkflowRegisterOutlookEventParticipant
Run_a_Child_Flow (Mail)WorkflowSendMailSharedMailbox

4.6 DeregisterParticipant

Flow-IDb2a06173-2d29-950e-7470-24cbd2a4c247StatusStarted
TriggerSharePoint - When an item is created (Interval: 5 minutes)

Description

Processes deregistrations and triggers automatic waitlist advancement. The first waitlist participant is automatically registered.

1. Load Data & Validate Deregistration
  • Loads participant data and event logos
  • Checks if deregistration is valid
  • Sets status to "Cancelled" or deletes entry
ActionTypeDescription
Get_item_-_Event_VisitorsSharePoint GetItemLoads participant data
Condition (Valid)IfChecks validity
Update_item (Cancel)SharePoint PatchItemStatus → "Cancelled"
2. Waitlist Advancement (FIFO)
  • Waitlist is queried sorted by creation date
  • First entry (oldest) is selected for advancement
  • Status → "Registered", email + calendar entry for advanced participant
ActionTypeDescription
Apply_to_each (Waitlist)ForeachFinds first waitlist participant
Run_a_Child_Flow (Promote)WorkflowStatus, mail, calendar for advanced participant

4.7 CheckRegistrationStatusParticipant

Description

Checks the registration status of a user for an event. Returns: registered, waitlist or not_registered.

Status Check
  • Searches participant list for user email
  • Reads status value from found entry
  • Returns status to Power App

4.8 GetWaitinglistPosition

Description

Determines the current waiting list position of a participant (FIFO principle).

Position Calculation
  • Loads all waitlist entries sorted by Created
  • Counts position up to the searched email
  • Position 1 = next to be advanced

4.9 GetParticipantEvents

Description

Lists all events for the "My Events" view in the Power App.

Event Query
  • Checks all active events for user participation
  • Returns list with event details and status

4.10 Check-In

Description

Manual Check-In on event day. Fallback when QR code doesn't work.

Perform Check-In
  • Identifies participant from check-in queue
  • Sets CheckIn field to true
  • Stores check-in timestamp

4.11 CheckInFromQRCode

Description

Check-In via QR code scan. The check-in team scans the QR code, the flow identifies and checks in the participant.

1. Process QR Code
  • Receives QR code content from Power App
  • Parses JSON to extract participantId and eventId
  • Validates QR data format
2. Validation & Check-In
  • Checks if participant is registered and not yet checked in
  • Sets CheckIn=true, stores timestamp
  • Returns success/error with participant name

4.12 EventQRCodeGenerator

Description

Generates individual QR codes for all registered participants and sends them via email.

1. Load Participants
  • Loads event details and all participants with status "Registered"
  • Prepares email assets
2. Generate & Send QR Codes
  • For each participant: create JSON payload with ID and email
  • Generate QR code via API, encode as Base64
  • Send email with embedded QR code

4.13 SendMailSharedMailbox

Description

Central email function. Sends emails via the shared mailbox no_reply.events@deloitte.de.

Email Dispatch
  • Receives parameters: recipient, subject, HTML body
  • Sends via Office 365 Outlook Connector
  • Called by other flows as child flow

4.14 SendMailParticipantList

Description

Mass email to all participants or only waitlist of an event.

Batch Dispatch
  • Filter options: all, registered, waitlist
  • Iterates over participants, sends individual emails
  • Returns number of sent emails

4.15 RegisterOutlookEventParticipant

Description

Adds participant to existing Outlook calendar entry via Graph API.

Attendee Add
  • Retrieves existing event via Graph API
  • Adds email to attendee list
  • PATCH request updates event

4.16 CreateOutlookEventSharedMailbox

Description

Creates new Outlook appointment in shared mailbox calendar. Base appointment for participant invitations.

Create Event
  • Receives event details (title, start, end, location)
  • Creates calendar entry via Outlook Connector
  • Returns event ID for later reference

4.17 HelperFlowMailToRegistered

Description

Helper flow for special email scenarios to registered participants.

4.18 Flow-Dokumentation-Export

Description

Exports the definitions of all flows to a text file for documentation purposes.

Export Process
  • Lists all flows in the environment
  • Reads JSON definition of each flow
  • Writes all definitions to SharePoint file

4.19 SharePoint_Batch_Update_V2

Description

Batch updates on SharePoint lists via REST Batch API for better performance.

Batch Processing
  • Bundles multiple updates into one request
  • POST to /_api/$batch endpoint
  • Up to 1000 operations per batch

4.20 SetPermissionForSubWeb

Description

Sets permissions on SharePoint subsites. Breaks inheritance and assigns specific permissions.

Set Permissions
  • Breaks permission inheritance of subsite
  • Assigns users/groups specific permissions

4.21 UpdateAllEventsWithNewFields

Description

Migration flow: Adds new fields (Freitextfeld3-7) to all existing participant lists.

Migration
  • Iterates over all event subsites
  • Creates missing fields via SharePoint REST API
  • Error handling when field already exists

4.22 CorrectOutlookID

Description

Corrects faulty Outlook event IDs in the Events list by matching with Graph API.

ID Correction
  • Identifies events with faulty/missing Outlook ID
  • Searches for matching appointment in shared mailbox calendar
  • Updates OutlookEventID in SharePoint

4.23 SP List Numbering Correction

Description

Corrects the numbering (Nr. field) in participant lists after manual changes.

Correct Numbering
  • Loads participants sorted by creation date
  • Sets No. field to sequential number (1, 2, 3...)
  • Ensures continuous numbering without gaps

5. Appendix

5.1 Glossary

TermExplanation
Child FlowA flow that is called by another flow
Shared MailboxShared mailbox (no_reply.events@deloitte.de)
SubsiteSubsite within a SharePoint Site Collection
FIFOFirst In, First Out - queue principle
Graph APIMicrosoft Graph REST API for Office 365 services

5.2 Technical References

ResourceURL / Value
SharePoint Base Sitehttps://deudeloitte.sharepoint.com/sites/DOL-c-DE-B2Run/
Shared Mailboxno_reply.events@deloitte.de
Power Apps EnvironmentDefault Environment

5.3 Contact

For questions about the platform or technical issues:

DEX Event Experience Platform - User Documentation v2.0
Generated: January 2026