Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
This page provides information on changes to the adaptive card specification for Dragon Copilot and describes how to migrate your VisualizationResource JSON to the newer version.
Changes from version 1 to version 2
Moved the
actionsproperty from the root level toadaptive_card_payload.actions.Actions now follow the Adaptive Cards native Action.Execute syntax. As a result of this change:
The
acceptaction is now deprecated. Use more specific actions such asappendToNoteSectionormergeWithNote.The action type is now defined by the
verbproperty instead of thetypeproperty:rejecttype →rejectverbupdateNotetype →appendToNoteSectionverbcopytype →copyToClipboardverb
Added two more actions:
regenerate: Users can re-trigger the extension manually.mergeWithNote: Intelligently merge user-specified content with the note in Dragon Copilot.
Migrating version 1 actions to version 2
Reject
Version 1:
{
"title": "<string>",
"action": "reject",
"actionType": "reject"
}
Version 2:
{
"type": "Action.Execute",
"id": "<unique_action_identifier>",
"title": "<string>",
"verb": "reject",
"data": {
"dragonExtensionToolName": "<Name of extension to trigger from manifest>" // optional
}
}
Copy
Version 1:
{
"title": "<string>",
"action": "copy",
"actionType": "copy",
"code": "<string>" // optional
}
Version 2:
{
"type": "Action.Execute",
"id": "<unique_action_identifier>",
"title": "<string>",
"verb": "copyToClipboard",
"data": {
"dragonExtensionToolName": "<Name of extension to trigger from manifest>", // optional
"dragonClipboardContent": "<string>" // optional
} // optional
}
Note
If dragonClipboardContent isn't provided, nothing is copied to the clipboard.
Update note
Version 1:
{
"title": "<string>",
"action": "updateNote",
"actionType": "updateNote"
}
Version 2:
{
"type": "Action.Execute",
"id": "<unique_action_identifier>",
"title": "<string>",
"verb": "appendToNoteSection",
"data": {
"dragonExtensionToolName": "<Name of extension to trigger from manifest>", // optional
"dragonAppendContent": "<content to append to the note section>" // optional
} // Optional
}
Note
If the dragonAppendContent property isn't provided, Dragon Copilot uses the root level dragonCopilotCopyData property as a fallback.
New actions in version 2
Version 2 introduces two new action types: regenerate and mergeWithNote.
Use
regenerateto enable the user to manually trigger the extension.Use
mergeWithNoteto merge user input, eg. a selection from a radio group, into the note and replace or update existing note content.
// Regenerate:
{
"type": "Action.Execute",
"id": "<unique_action_identifier>",
"title": "<string>",
"verb": "regenerate",
"data": {
"dragonExtensionToolName": "<Name of extension to trigger from manifest>"
}
}
// Merge with note:
{
"type": "Action.Execute",
"id": "<unique_action_identifier>",
"title": "<string>",
"verb": "mergeWithNote",
"data": {
"dragonExtensionToolName": "<Name of extension to trigger from manifest>",
"dragonInputs": ["<string array>"], // The list of input ids whose values should be collected during the merge
"dragonMatchContent": "<string>" // The text which should be matched + updated in the note section during the merge
}
}
Custom data in actions
Partners can include custom data in any Action.Execute action using the data object. When an action is invoked, Dragon Copilot will call the extension specified by the dragonExtensionToolName property (if provided) and pass the complete card state. That is, the entire data object enhanced with values from any user inputs. This mechanism enables custom data to be used for collecting telemetry and analytics and other business logic.
Example:
{
"type": "Action.Execute",
"id": "<unique_action_identifier>",
"title": "Reject",
"verb": "reject",
"data": {
"dragonExtensionToolName": "RejectTool",
"telemetryEventName": "RejectActionInvoked",
"additionalMetadata": "exampleValue"
}
}