User Documentation
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.
Before DEX: Manual event management with email registrations, Excel lists, manual calendar maintenance, and paper check-in lists.
DEX automates these processes through Power Apps (Frontend), Power Automate (23 Flows), SharePoint Online (Data) and Office 365 (Email/Calendar).
| 15+ Events | successfully executed |
| 80% time saved | in event administration |
| 23 Flows | implemented and productive |
| 100% Compliance | BR and SecO approved |
DEX replaces manual event processes with automated workflows for organizers, participants, and check-in teams.
| Component | Technology | Purpose |
|---|---|---|
| Frontend | Power Apps | User Interface |
| Backend | Power Automate (23 Flows) | Business Logic |
| Data | SharePoint Online | Events, Participant Lists |
| Communication | Office 365 Outlook | E-Mail, Calendar |
| Element | Path |
|---|---|
| Base Site | https://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 |
The project has three separate environments for the entire development lifecycle:
| Environment | Purpose | Description |
|---|---|---|
| Development (DEV) | Development | Active development of new features and bug fixes. Unstable environment for developer testing. |
| Quality Assurance (QA) | Test & Acceptance | Quality assurance and User Acceptance Testing (UAT). Stable test environment. |
| Production (PROD) | Production | Live system for end users. Only tested and released versions. |
All connection references in Power Automate and Power Apps are provided through Service Accounts:
| Aspect | Description |
|---|---|
| Authentication | Dedicated service accounts for all connector connections |
| SharePoint | Service account with Site Collection Admin rights |
| Outlook/Exchange | Service account with access to shared mailbox |
| Office 365 Users | Service account with Directory Read permission |
| Benefits | Independent of personal accounts, central management, audit trail |
The following diagram shows the data flow between users, Power App, Power Automate Flows, and data stores (SharePoint & Office 365).
The DEX Power App includes 27 screens for different user groups and use cases.
| Screen | Purpose | Key Features |
|---|---|---|
| LandingScreen | Welcome page | Start button, info text, email link to developers |
| StartScreen | Main Menu | Navigation to Registration, My Events; Settings icon (Admin only) |
| RegisterScreen | Event selection | Gallery with events, filtered by location and audience |
| RegisterB2EventScreen | B2Run Registration | Form with running distance, team, additional fields |
| RegisterOtherEventScreen | Standard Registration | Form for JP Morgan Run and other events |
| MyEventsScreen | My Events | Registered events + waiting list; deregistration option |
| CheckInScreen | QR Code Check-In | BarcodeReader, Office365 profile picture, Check-In button |
| SettingsScreen | Admin area | Create event, edit, send emails |
| AllEventsScreen | Event-Overview | DataTable with all events (Admin) |
| Connector | Data Source | Usage |
|---|---|---|
| SharePoint Online | Events | Main list of all events |
| Registrations | Queue for new registrations (trigger) | |
| Deregistrations | Queue for deregistrations (trigger) | |
| Event visitors | Participant list (dynamic per event) | |
| Check-In | Queue for check-in actions | |
| Admins | List of admin users | |
| Office 365 Users | User Profile | Name, department, location, profile picture |
| Power Automate | GetParticipantEvents | Loads "My Events" for user |
| CheckRegistrationStatus | Checks registration status | |
| GetWaitinglistPosition | Waiting list position | |
| CheckInFromQRCode | Performs check-in | |
| SendMailParticipantlist | Send mass email | |
| ExtractParticipantMails | Extract email addresses |
| Role | Recognition | Accessible Screens |
|---|---|---|
| Participant | Every authenticated user | LandingScreen, StartScreen, RegisterScreen, MyEventsScreen |
| Admin | Email in Admins list | + SettingsScreen, CheckInScreen, AllEventsScreen, EventCreation, SendMail |
Admin check in code:
If(IsBlank(LookUp(Admins,'Admin Account'.Email = User().Email)), false, true)
Event creation is a central process in the DEX platform. This section documents the Power App architecture for event creation to support potential modernization.
The entry point for event creation is the EventCreationSelectionScreen, which offers three event types:
Each event creation form uses a Power Apps Form Control with the following structure:
| Property | Value | Description |
|---|---|---|
| Control | Form@2.4.4 | Standard Power Apps Form |
| Layout | Vertical | Vertical arrangement of fields |
| DataSource | =Events | Direct binding to SharePoint Events list |
| DefaultMode | =FormMode.New | Always in creation mode |
| OnVisible | =ResetForm(Form1) | Reset form when opening |
Common Fields (all event types):
| Field | Control | DataField | Required |
|---|---|---|---|
| Title | TextInput (Multiline) | Title | Yes |
| Standort | TextInput | Standort | No |
| Standort Filter | ComboBox | Standort_x0020_Filter | No |
| Organizer | ComboBox (MultiSelect) | Organzier | Yes |
| Event time | DatePicker + DropDown (HH:MM) | Event_x0020_time | Yes |
| Event end time | DatePicker + DropDown (HH:MM) | Event_x0020_end_x0020_time | Yes |
| Last Register Date Time | DatePicker + DropDown | Last_x0020_Register_x0020_Date_x | Yes |
| Last Deregister Time | DatePicker + DropDown | Last_x0020_Register_x0020_Event_ | Yes |
B2Run-specific fields:
| Field | Control | Description |
|---|---|---|
| Max Fun-runner | Number Input | Maximum number of fun runners |
| Max Durchstarter | Number Input | Maximum number of serious runners |
| Startblock | ComboBox (Multi) | Available start blocks ["17:00", "18:30"] |
| T-Shirtgrößen | ComboBox (Multi) | Available T-shirt sizes |
| T Shirt Größe visible | Toggle | Show T-shirt selection? |
Other Event-specific fields:
| Field | Control | Description |
|---|---|---|
| Audience Mail | TextInput (Dialog) | Email addresses for access restriction |
| Frage Freitextfeld 1/2 | TextInput | Custom question fields |
| Dropdownfeld 1/2 | Dialog with Collection | Custom dropdown options |
| Location Hotel | TextInput | Hotel information (if relevant) |
| Allergien visible | Toggle | Show allergies field during registration? |
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)
When saving an event:
NewEventAdded_SiteProvis FlowFor future modernization of event creation:
| Area | Current | Recommendation |
|---|---|---|
| Form | 3 separate screens | Single dynamic form with conditional display |
| Validation | DataCard-based | Central validation logic with Custom Connector |
| Event types | Hardcoded in screens | Configuration list for dynamic event types |
| Field configuration | Defined per screen | Metadata-driven form based on content type |
| Custom Fields | Freitextfeld1-7 | JSON schema for flexible field configuration |
The DEX platform includes 23 Power Automate Flows in five categories:
| Flow | Trigger | Description |
|---|---|---|
| NewEventAdded_SiteProvis | SharePoint Item Created | Main flow: Creates subsite, template, Outlook event |
| ApplyTemplateB2Run | Child Flow | B2Run participant list with special fields |
| ApplyTemplateOtherEvent | Child Flow | Standard participant list |
| EventPermission | Manual Button | Set permissions for target audience |
| Flow | Trigger | Description |
|---|---|---|
| RegisterParticipant | SharePoint Item Created | Registration: capacity check, registration/waiting list |
| DeregisterParticipant | SharePoint Item Created | Deregistration with automatic advancement |
| CheckRegistrationStatusParticipant | Power App | Checks status: registered/waitlist/not_registered |
| GetWaitinglistPosition | Power App | Determines position on waiting list |
| GetParticipantEvents | Power App | Lists "My Events" |
| Flow | Trigger | Description |
|---|---|---|
| Check-In | SharePoint Item Created | Manual check-in |
| CheckInFromQRCode | Power App | Check-in via QR code scan |
| EventQRCodeGenerator | Manual Button | Generates QR codes, sends via email |
| Flow | Trigger | Description |
|---|---|---|
| SendMailSharedMailbox | Child Flow | Central email function |
| SendMailParticipantList | Power App | Mass email to participants |
| RegisterOutlookEventParticipant | Child Flow | Adds participant to Outlook appointment |
| CreateOutlookEventSharedMailbox | Child Flow | Creates Outlook appointment |
| HelperFlowMailToRegistered | Manual Button | Helper flow for special emails |
| Flow | Trigger | Description |
|---|---|---|
| Flow-Dokumentation-Export | Manual Button | Exports flow definitions |
| SharePoint_Batch_Update_V2 | Manual Button | Batch updates via REST API |
| SetPermissionForSubWeb | Manual Button | Set subsite permissions |
| UpdateAllEventsWithNewFields | Manual Button | Migration: Add new fields |
| CorrectOutlookID | Manual Button | Corrects Outlook event IDs |
| SP List Numbering Correction | Manual Button | Corrects No. field |
Each flow is documented with clustered actions. The actions are divided into logical groups, each with a description of what the cluster does.
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.
| Action | Type | Description |
|---|---|---|
| Update_item-_Set_Status_to_Under_Construction | SharePoint PatchItem | Status → "Under Construction" |
| Initialize_variable-_varSiteTitle | InitializeVariable | Event-Titel speichern |
| Initialize_variable-_varSiteURL | InitializeVariable | URL-Variable initialisieren |
| Initialize_variable-_varContentTypeeName | InitializeVariable | Event-Type speichern |
| Action | Type | Description |
|---|---|---|
| Compose-_Create_FilterCharArray | Compose | Array with invalid characters |
| Apply_to_each (Filter) | Foreach | Removes each invalid character |
| Action | Type | Description |
|---|---|---|
| Send_an_HTTP_request-_Create_New_Sub_Site | SharePoint HttpRequest | POST to /_api/web/webinfos/add |
| Parse_JSON-_Parse_Response | ParseJson | Extracts ServerRelativeUrl |
| Compose-_FinalURL | Compose | Combines to final URL |
| Action | Type | Description |
|---|---|---|
| Switch | Switch | Branches by event type |
| Run_a_Child_Flow (Template) | Workflow | Calls template flow |
| Action | Type | Description |
|---|---|---|
| Compose_2, Compose_3 | Compose | Formats date to ISO |
| Run_a_Child_Flow_1 (Outlook) | Workflow | Creates Outlook appointment |
| Update_item_-_Events | SharePoint PatchItem | Stores Outlook ID |
| Action | Type | Description |
|---|---|---|
| Get_file_content-_Logo | SharePoint GetFileContent | Loads event logo |
| For_each (Organizer) | Foreach | Iterates over organizers |
| Send_an_email_from_shared_mailbox | Office 365 | Sends confirmation email |
| Run_a_Child_Flow_3 (Permission) | Workflow | Sets permissions |
Called by NewEventAdded for B2Run-Events. Creates the participant list with all B2Run-specific fields.
| Action | Type | Description |
|---|---|---|
| Initialize_variable-_varURL | InitializeVariable | Stores subsite URL |
| Action | Type | Description |
|---|---|---|
| Send_HTTP_request-_Create_Participant List | SharePoint HttpRequest | Creates list |
| Send_HTTP_request-_Create_Fields | SharePoint HttpRequest | Creates all fields |
| Respond_to_a_Power_App_or_flow | Response | Confirms success |
Creates standard participant list for JP Morgan Run and other events. Structure identical to ApplyTemplateB2Run, but allows separate customizations.
Manages permissions for events with restricted target audience. Removes default sharing and sets specific permissions for the defined audience.
| Action | Type | Description |
|---|---|---|
| Stop_sharing_an_item | SharePoint UnshareItem | Removes shares |
| Grant_access (Audience) | SharePoint GrantAccess | Read access for audience |
| Grant_access (Organizer) | SharePoint GrantAccess | Full access for organizer |
The core of the registration process. Processes new participant registrations, checks capacity and decides between registration or waitlist.
| Action | Type | Description |
|---|---|---|
| Initialize_variables | InitializeVariable | Working variables |
| Get_item (Event) | SharePoint GetItem | Loads event details |
| Get_items (Registrations) | SharePoint GetItems | Counts registrations |
| Action | Type | Description |
|---|---|---|
| Condition (Capacity) | If | Checks: Registered < Capacity? |
| Update_item (Registered) | SharePoint PatchItem | Status → "Registered" |
| Update_item (Waitlist) | SharePoint PatchItem | Status → "Waitlist" |
| Action | Type | Description |
|---|---|---|
| Run_a_Child_Flow (Outlook) | Workflow | RegisterOutlookEventParticipant |
| Run_a_Child_Flow (Mail) | Workflow | SendMailSharedMailbox |
Processes deregistrations and triggers automatic waitlist advancement. The first waitlist participant is automatically registered.
| Action | Type | Description |
|---|---|---|
| Get_item_-_Event_Visitors | SharePoint GetItem | Loads participant data |
| Condition (Valid) | If | Checks validity |
| Update_item (Cancel) | SharePoint PatchItem | Status → "Cancelled" |
| Action | Type | Description |
|---|---|---|
| Apply_to_each (Waitlist) | Foreach | Finds first waitlist participant |
| Run_a_Child_Flow (Promote) | Workflow | Status, mail, calendar for advanced participant |
Checks the registration status of a user for an event. Returns: registered, waitlist or not_registered.
Determines the current waiting list position of a participant (FIFO principle).
Lists all events for the "My Events" view in the Power App.
Manual Check-In on event day. Fallback when QR code doesn't work.
Check-In via QR code scan. The check-in team scans the QR code, the flow identifies and checks in the participant.
Generates individual QR codes for all registered participants and sends them via email.
Central email function. Sends emails via the shared mailbox no_reply.events@deloitte.de.
Mass email to all participants or only waitlist of an event.
Adds participant to existing Outlook calendar entry via Graph API.
Creates new Outlook appointment in shared mailbox calendar. Base appointment for participant invitations.
Helper flow for special email scenarios to registered participants.
Exports the definitions of all flows to a text file for documentation purposes.
Batch updates on SharePoint lists via REST Batch API for better performance.
Sets permissions on SharePoint subsites. Breaks inheritance and assigns specific permissions.
Migration flow: Adds new fields (Freitextfeld3-7) to all existing participant lists.
Corrects faulty Outlook event IDs in the Events list by matching with Graph API.
Corrects the numbering (Nr. field) in participant lists after manual changes.
| Term | Explanation |
|---|---|
| Child Flow | A flow that is called by another flow |
| Shared Mailbox | Shared mailbox (no_reply.events@deloitte.de) |
| Subsite | Subsite within a SharePoint Site Collection |
| FIFO | First In, First Out - queue principle |
| Graph API | Microsoft Graph REST API for Office 365 services |
| Resource | URL / Value |
|---|---|
| SharePoint Base Site | https://deudeloitte.sharepoint.com/sites/DOL-c-DE-B2Run/ |
| Shared Mailbox | no_reply.events@deloitte.de |
| Power Apps Environment | Default Environment |
For questions about the platform or technical issues:
DEX Event Experience Platform - User Documentation v2.0
Generated: January 2026