Public Access
Add attendee transformation workflows
This commit is contained in:
@@ -71,6 +71,12 @@ The engine runs when `MeetingRecordingCoordinator` emits a meeting workflow even
|
||||
- `state_transition`: after the assistant context state moves forward.
|
||||
- `speaker_identified`: when live or final speaker identification reports a display name.
|
||||
- `transcript_line`: after a formatted live transcript line is durably appended, before any changed line is rewritten in place, and before lines are used in full transcript rewrites.
|
||||
- `attendee_added`: before a newly added attendee is stored in the meeting note.
|
||||
|
||||
`attendee_added` is emitted only by Meeting Assistant code paths that intentionally add an attendee
|
||||
through the workflow engine, notification actions, OCR/screenshot processing, summarizer tools, or
|
||||
other attendee-add operations. Direct edits to a meeting note file, including direct artifact/frontmatter
|
||||
repair writes by an agent, are left verbatim and do not trigger attendee automation.
|
||||
|
||||
When a recording is started by accepting a calendar notification, the cached appointment metadata is applied before the `created` event. Rules still receive the normal `created` event and the normal `collecting metadata` to `transcribing` state transition, but they see the accepted appointment title, attendees, agenda, and scheduled end instead of a generated placeholder or a separate Outlook current-meeting lookup result.
|
||||
|
||||
@@ -162,6 +168,22 @@ on:
|
||||
speaker: Guest-1
|
||||
```
|
||||
|
||||
### `attendee_added`
|
||||
|
||||
Runs before a newly added attendee is stored. `equals`, `contains`, and `regex` filters are optional; omitted filters match any attendee. `equals` and `contains` are case-insensitive.
|
||||
|
||||
```yaml
|
||||
on:
|
||||
- attendee_added:
|
||||
contains: Contoso
|
||||
```
|
||||
|
||||
```yaml
|
||||
on:
|
||||
- attendee_added:
|
||||
regex: '@contoso\.com>$'
|
||||
```
|
||||
|
||||
## Conditions
|
||||
|
||||
Conditions use NCalc expressions. Dotted workflow variables may be written directly; the engine rewrites them into NCalc parameters internally.
|
||||
@@ -184,6 +206,7 @@ Available condition variables:
|
||||
- `speaker.name`
|
||||
- `transcript.line`
|
||||
- `transcript.speaker`
|
||||
- `attendee.name`
|
||||
|
||||
Available helper functions:
|
||||
|
||||
@@ -217,6 +240,7 @@ Step `value` fields can be plain strings or Razor templates. Razor templates rec
|
||||
- `Model.Speaker.Name`
|
||||
- `Model.Transcript.Line`
|
||||
- `Model.Transcript.Speaker`
|
||||
- `Model.Attendee.Name`
|
||||
|
||||
Example:
|
||||
|
||||
@@ -259,7 +283,11 @@ steps:
|
||||
|
||||
### `set_property`
|
||||
|
||||
Sets a supported property. Supported meeting properties are `title` and `meeting.title`. During `transcript_line` events, `transcript.line` is also supported. For live transcription, changing `transcript.line` rewrites the referenced formatted line after the workflow task completes.
|
||||
Sets a supported property. Supported meeting properties are `title` and `meeting.title`. During `transcript_line` events, `transcript.line` is also supported. During `attendee_added` events, `attendee.name` is supported. For live transcription, changing `transcript.line` rewrites the referenced formatted line after the workflow task completes. For attendee additions, changing `attendee.name` stores the transformed attendee instead of the original added value.
|
||||
|
||||
Rules triggered by `attendee_added` are transformation-only: their steps must use `set_property`
|
||||
with `property: attendee.name`. They can still use trigger filters, conditions, and Razor templates
|
||||
to decide and compute the transformed value, but they cannot perform note/context side effects.
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
@@ -275,6 +303,13 @@ steps:
|
||||
value: '@Model.Transcript.Line.Replace("*****", "[redacted]")'
|
||||
```
|
||||
|
||||
```yaml
|
||||
steps:
|
||||
- uses: set_property
|
||||
property: attendee.name
|
||||
value: '@Model.Attendee.Name.Replace(" (Contoso)", "")'
|
||||
```
|
||||
|
||||
### `add_context`
|
||||
|
||||
Appends rendered text to the assistant context artifact body. This step does not count as a meeting-note mutation and does not cause a meeting-note save by itself.
|
||||
@@ -370,6 +405,20 @@ rules:
|
||||
value: '@Model.Transcript.Line.Replace("*****", "[redacted]")'
|
||||
```
|
||||
|
||||
Clean attendee names as they are added:
|
||||
|
||||
```yaml
|
||||
rules:
|
||||
- name: clean-contoso-attendees
|
||||
on:
|
||||
- attendee_added:
|
||||
contains: Contoso
|
||||
steps:
|
||||
- uses: set_property
|
||||
property: attendee.name
|
||||
value: '@Model.Attendee.Name.Replace(" (Contoso)", "")'
|
||||
```
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
Core files:
|
||||
|
||||
Reference in New Issue
Block a user