diff --git a/AppSourcePackages/mpa_Wellness/TermsOfUse.html b/AppSourcePackages/mpa_Wellness/TermsOfUse.html
new file mode 100644
index 00000000..3f602d00
--- /dev/null
+++ b/AppSourcePackages/mpa_Wellness/TermsOfUse.html
@@ -0,0 +1,23 @@
+
+MIT License
+
+Copyright (c) Microsoft Corporation.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE
diff --git a/AppSourcePackages/mpa_Wellness/[Content_Types].xml b/AppSourcePackages/mpa_Wellness/[Content_Types].xml
new file mode 100644
index 00000000..b5c49640
--- /dev/null
+++ b/AppSourcePackages/mpa_Wellness/[Content_Types].xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AppSourcePackages/mpa_Wellness/input.xml b/AppSourcePackages/mpa_Wellness/input.xml
new file mode 100644
index 00000000..2c66bb30
--- /dev/null
+++ b/AppSourcePackages/mpa_Wellness/input.xml
@@ -0,0 +1,18 @@
+
+
+ Microsoft
+ package.zip
+ mpa_Wellness_managed.zip
+ 01/01/2019
+ 01/01/2050
+ AD,AE,AF,AG,AI,AL,AM,AO,AQ,AR,AS,AT,AU,AW,AX,AZ,BA,BB,BD,BE,BF,BG,BH,BI,BJ,BL,BM,BN,BO,BR,BS,BT,BV,BW,BY,BZ,CA,CC,CD,CF,CG,CH,CI,CK,CL,CM,CN,CO,CR,CV,CW,CX,CY,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ER,ES,ET,FI,FJ,FK,FM,FO,FR,GA,GB,GD,GE,GF,GG,GH,GI,GL,GM,GN,GP,GQ,GR,GS,GT,GU,GW,GY,HK,HM,HN,HR,HT,HU,ID,IE,IL,IM,IN,IO,IQ,IS,IT,JE,JM,JO,JP,KE,KG,KH,KI,KM,KN,KR,KW,KY,KZ,LA,LB,LC,LI,LK,LR,LS,LT,LU,LV,LY,MA,MC,MD,ME,MF,MG,MH,MK,ML,MM,MN,MO,MP,MQ,MR,MS,MT,MU,MV,MW,MX,MY,MZ,NA,NC,NE,NF,NG,NI,NL,NO,NP,NR,NU,NZ,OM,PA,PE,PF,PG,PH,PK,PL,PM,PN,PR,PS,PT,PW,PY,QA,RE,RO,RS,RU,RW,SA,SB,SC,SE,SG,SH,SI,SJ,SK,SL,SM,SN,SO,SR,ST,SV,SZ,TC,TD,TF,TG,TH,TJ,TK,TL,TM,TN,TO,TR,TT,TV,TW,TZ,UA,UG,UM,US,UY,UZ,VA,VC,VE,VG,VI,VN,VU,WF,WS,YE,YT,ZA,ZM,ZW
+ https://go.microsoft.com/fwlink/?linkid=2275396
+
+
+ logo32x32.png
+
+
+
+
+
+
\ No newline at end of file
diff --git a/AppSourcePackages/mpa_Wellness/logo32x32.png b/AppSourcePackages/mpa_Wellness/logo32x32.png
new file mode 100644
index 00000000..a0c0b65c
Binary files /dev/null and b/AppSourcePackages/mpa_Wellness/logo32x32.png differ
diff --git a/AppSourcePackages/mpa_Wellness/mpa_Wellness_1_0_0_27.zip b/AppSourcePackages/mpa_Wellness/mpa_Wellness_1_0_0_27.zip
new file mode 100644
index 00000000..e9a94dbd
Binary files /dev/null and b/AppSourcePackages/mpa_Wellness/mpa_Wellness_1_0_0_27.zip differ
diff --git a/AppSourcePackages/mpa_Wellness/package.zip b/AppSourcePackages/mpa_Wellness/package.zip
new file mode 100644
index 00000000..110bd203
Binary files /dev/null and b/AppSourcePackages/mpa_Wellness/package.zip differ
diff --git a/DeploymentPackages/mpa_Wellness/PackageImportExtension.cs b/DeploymentPackages/mpa_Wellness/PackageImportExtension.cs
new file mode 100644
index 00000000..89dab304
--- /dev/null
+++ b/DeploymentPackages/mpa_Wellness/PackageImportExtension.cs
@@ -0,0 +1,95 @@
+using System;
+using System.ComponentModel.Composition;
+using Microsoft.Xrm.Tooling.PackageDeployment.CrmPackageExtentionBase;
+
+namespace mpa_Wellness
+{
+ ///
+ /// Import package starter frame.
+ ///
+ [Export(typeof(IImportExtensions))]
+ public class PackageImportExtension : ImportExtension
+ {
+ #region Metadata
+
+ ///
+ /// Folder name where package assets are located in the final output package zip.
+ ///
+ public override string GetImportPackageDataFolderName => "PkgAssets";
+
+ ///
+ /// Name of the Import Package to Use
+ ///
+ /// if true, return plural version
+ public override string GetNameOfImport(bool plural) => "mpa_Wellness";
+
+ ///
+ /// Long name of the Import Package.
+ ///
+ public override string GetLongNameOfImport => "mpa_Wellness";
+
+ ///
+ /// Description of the package, used in the package selection UI
+ ///
+ public override string GetImportPackageDescriptionText => "mpa_Wellness";
+
+ #endregion
+
+ ///
+ /// Called to Initialize any functions in the Custom Extension.
+ ///
+ ///
+ public override void InitializeCustomExtension()
+ {
+ }
+
+ ///
+ /// Called before the Main Import process begins, after solutions and data.
+ ///
+ ///
+ ///
+ public override bool BeforeImportStage()
+ {
+ return true;
+ }
+
+ ///
+ /// Raised before the named solution is imported to allow for any configuration settings to be made to the import process
+ ///
+ ///
+ /// name of the solution about to be imported
+ /// Value of this field from the solution configuration entry
+ /// Value of this field from the solution configuration entry
+ /// If set to true, imports the Solution with Override Customizations enabled
+ /// If set to true, attempts to auto publish workflows and activities as part of solution deployment
+ public override void PreSolutionImport(string solutionName, bool solutionOverwriteUnmanagedCustomizations, bool solutionPublishWorkflowsAndActivatePlugins, out bool overwriteUnmanagedCustomizations, out bool publishWorkflowsAndActivatePlugins)
+ {
+ base.PreSolutionImport(solutionName, solutionOverwriteUnmanagedCustomizations, solutionPublishWorkflowsAndActivatePlugins, out overwriteUnmanagedCustomizations, out publishWorkflowsAndActivatePlugins);
+ }
+
+ ///
+ /// Called during a solution upgrade when both solutions, old and new, are present in the system.
+ /// This function can be used to provide a means to do data transformation or upgrade while a solution update is occurring.
+ ///
+ ///
+ /// Name of the solution
+ /// version number of the old solution
+ /// Version number of the new solution
+ /// Solution ID of the old solution
+ /// Solution ID of the new solution
+ public override void RunSolutionUpgradeMigrationStep(string solutionName, string oldVersion, string newVersion, Guid oldSolutionId, Guid newSolutionId)
+ {
+ base.RunSolutionUpgradeMigrationStep(solutionName, oldVersion, newVersion, oldSolutionId, newSolutionId);
+ }
+
+ ///
+ /// Called After all Import steps are complete, allowing for final customizations or tweaking of the instance.
+ ///
+ ///
+ ///
+ public override bool AfterPrimaryImport()
+ {
+ return true;
+ }
+ }
+}
diff --git a/DeploymentPackages/mpa_Wellness/PkgAssets/ImportConfig.xml b/DeploymentPackages/mpa_Wellness/PkgAssets/ImportConfig.xml
new file mode 100644
index 00000000..866e9f65
--- /dev/null
+++ b/DeploymentPackages/mpa_Wellness/PkgAssets/ImportConfig.xml
@@ -0,0 +1,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DeploymentPackages/mpa_Wellness/PkgAssets/manifest.ppkg.json b/DeploymentPackages/mpa_Wellness/PkgAssets/manifest.ppkg.json
new file mode 100644
index 00000000..874e444a
--- /dev/null
+++ b/DeploymentPackages/mpa_Wellness/PkgAssets/manifest.ppkg.json
@@ -0,0 +1,4 @@
+// Note: comments are removed at build time.
+{
+ "SchemaVersion": "1.0"
+}
\ No newline at end of file
diff --git a/DeploymentPackages/mpa_Wellness/mpa_Wellness.csproj b/DeploymentPackages/mpa_Wellness/mpa_Wellness.csproj
new file mode 100644
index 00000000..005bd988
--- /dev/null
+++ b/DeploymentPackages/mpa_Wellness/mpa_Wellness.csproj
@@ -0,0 +1,22 @@
+
+
+ net472
+ mpa_Wellness
+ mpa_Wellness
+ Copyright © 2024
+
+
+
+ all
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Solution Packages For Manual Install/Human Resources/Wellness/mpa_Wellness.zip b/Solution Packages For Manual Install/Human Resources/Wellness/mpa_Wellness.zip
new file mode 100644
index 00000000..8825e267
Binary files /dev/null and b/Solution Packages For Manual Install/Human Resources/Wellness/mpa_Wellness.zip differ
diff --git a/Solution Packages For Manual Install/Human Resources/Wellness/mpa_Wellness_managed.zip b/Solution Packages For Manual Install/Human Resources/Wellness/mpa_Wellness_managed.zip
new file mode 100644
index 00000000..311c608c
Binary files /dev/null and b/Solution Packages For Manual Install/Human Resources/Wellness/mpa_Wellness_managed.zip differ
diff --git a/Solutions/mpa_Wellness/.gitignore b/Solutions/mpa_Wellness/.gitignore
new file mode 100644
index 00000000..ba59257a
--- /dev/null
+++ b/Solutions/mpa_Wellness/.gitignore
@@ -0,0 +1,8 @@
+# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
+
+# msbuild output directories
+/bin
+/obj
+
+# MSBuild Binary and Structured Log
+*.binlog
diff --git a/Solutions/mpa_Wellness/mpa_Wellness.cdsproj b/Solutions/mpa_Wellness/mpa_Wellness.cdsproj
new file mode 100644
index 00000000..bb94c141
--- /dev/null
+++ b/Solutions/mpa_Wellness/mpa_Wellness.cdsproj
@@ -0,0 +1,47 @@
+
+
+
+ $(MSBuildExtensionsPath)\Microsoft\VisualStudio\v$(VisualStudioVersion)\PowerApps
+
+
+
+
+ dc39b7c6-31a4-4e0e-95ef-7d1433d90f67
+ v4.6.2
+
+ net462
+ PackageReference
+ src
+ Both
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ PreserveNewest
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Assets/botcomponent_aipluginoperationset.xml b/Solutions/mpa_Wellness/src/Assets/botcomponent_aipluginoperationset.xml
new file mode 100644
index 00000000..f394de69
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Assets/botcomponent_aipluginoperationset.xml
@@ -0,0 +1,5 @@
+
+
+ 1
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Assets/botcomponent_workflowset.xml b/Solutions/mpa_Wellness/src/Assets/botcomponent_workflowset.xml
new file mode 100644
index 00000000..3cb531d6
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Assets/botcomponent_workflowset.xml
@@ -0,0 +1,8 @@
+
+
+ 1
+
+
+ 1
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/SystemUser/Entity.xml b/Solutions/mpa_Wellness/src/Entities/SystemUser/Entity.xml
new file mode 100644
index 00000000..524e398f
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/SystemUser/Entity.xml
@@ -0,0 +1,71 @@
+
+
+ SystemUser
+
+
+
+
+
+
+
+
+
+
+
+
+ systemusers
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ #0078D4
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ BusinessOwned
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 0
+ 1
+ 9999
+
+ <fetch version="1.0" output-format="xml-platform" mapping="logical" distinct="false">
+ <entity name="systemuser">
+ <filter type="and">
+ <condition attribute="modifiedon" operator="on-or-after" value="1900-01-01"/>
+ </filter>
+ </entity>
+ </fetch>
+
+ 1
+ 1
+ 0
+ 1
+ 5.0.0.0
+ 0
+ 0
+
+ 1
+ 0
+ 0
+ 0
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/SystemUser/RibbonDiff.xml b/Solutions/mpa_Wellness/src/Entities/SystemUser/RibbonDiff.xml
new file mode 100644
index 00000000..6b56f485
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/SystemUser/RibbonDiff.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/Entity.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/Entity.xml
new file mode 100644
index 00000000..2b545a13
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/Entity.xml
@@ -0,0 +1,1019 @@
+
+
+ mpa_wellness_optin
+
+
+
+
+
+
+
+
+
+
+
+
+
+ lookup
+ createdby
+ createdby
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ single
+
+
+
+
+
+
+
+
+
+ datetime
+ createdon
+ createdon
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ inactive
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 1
+ 1
+ 0
+ datetime
+ 0
+ 1
+
+
+
+
+
+
+
+
+ lookup
+ createdonbehalfby
+ createdonbehalfby
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ single
+
+
+
+
+
+
+
+
+
+ int
+ importsequencenumber
+ importsequencenumber
+ none
+ ValidForAdvancedFind
+ disabled
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+
+ -2147483648
+ 2147483647
+
+
+
+
+
+
+
+
+ lookup
+ modifiedby
+ modifiedby
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ single
+
+
+
+
+
+
+
+
+
+ datetime
+ modifiedon
+ modifiedon
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ inactive
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 1
+ 1
+ 0
+ datetime
+ 0
+ 1
+
+
+
+
+
+
+
+
+ lookup
+ modifiedonbehalfby
+ modifiedonbehalfby
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ single
+
+
+
+
+
+
+
+
+
+ multiselectpicklist
+ mpa_daysofweek
+ mpa_daysofweek
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1.0.0.1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ mpa_daysoftheweek
+
+
+
+
+
+
+
+
+ nvarchar
+ mpa_name
+ mpa_name
+ required
+ PrimaryName|ReadOnlyInUI|ValidForAdvancedFind|ValidForForm|ValidForGrid|RequiredForForm
+ auto
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ WOI-{SEQNUM:6}
+ 1
+ 0
+ 1
+ 0
+ text
+ 100
+ 200
+
+
+
+
+
+
+
+
+ bit
+ mpa_optin
+ mpa_optin
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1.0.0.1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ 0
+
+ bit
+ 1.0.0.1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ nvarchar
+ mpa_timeofday
+ mpa_timeofday
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ text
+ 100
+ 200
+
+
+
+
+
+
+
+
+ nvarchar
+ mpa_timeofdayutc
+ mpa_timeofdayutc
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ text
+ 100
+ 200
+
+
+
+
+
+
+
+
+ primarykey
+ mpa_wellness_optinid
+ mpa_wellness_optinid
+ systemrequired
+ ValidForAdvancedFind|RequiredForGrid
+ auto
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 1
+ 1
+ 0
+
+
+
+
+
+
+
+
+ datetime
+ overriddencreatedon
+ overriddencreatedon
+ none
+ ValidForAdvancedFind|ValidForGrid
+ inactive
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ date
+ 0
+ 1
+
+
+
+
+
+
+
+
+ owner
+ ownerid
+ ownerid
+ systemrequired
+ ValidForAdvancedFind|ValidForForm|ValidForGrid|RequiredForForm
+ auto
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 1
+ 0
+ 0
+ single
+
+ 8
+ 9
+
+
+
+
+
+
+
+
+
+ lookup
+ owningbusinessunit
+ owningbusinessunit
+ systemrequired
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 0
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 1
+ 0
+ 0
+ single
+
+
+
+
+
+
+
+
+
+ lookup
+ owningteam
+ owningteam
+ none
+ auto
+ 0
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ single
+
+
+
+
+
+
+
+
+
+ lookup
+ owninguser
+ owninguser
+ none
+ auto
+ 0
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ single
+
+
+
+
+
+
+
+
+
+ state
+ statecode
+ statecode
+ systemrequired
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 1
+ 0
+ 0
+
+ state
+ 1.0
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ status
+ statuscode
+ statuscode
+ none
+ ValidForAdvancedFind|ValidForForm|ValidForGrid
+ auto
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+
+ status
+ 1.0
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ int
+ timezoneruleversionnumber
+ timezoneruleversionnumber
+ none
+ auto
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+
+ -1
+ 2147483647
+
+
+
+
+
+
+
+
+ int
+ utcconversiontimezonecode
+ utcconversiontimezonecode
+ none
+ auto
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+
+ 0
+ 0
+ 0
+ 0
+
+ -1
+ 2147483647
+
+
+
+
+
+
+
+
+ mpa_wellness_optins
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ UserOwned
+ 1
+ 0
+ 0
+ 0
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 0
+ 1
+ 1.0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ mpa_optinicon
+ mpa_optinicon
+ mpa_optinicon
+ 0
+ 1
+ 0
+
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/card/{5673a412-2236-4df0-ab6c-d7df4c509328}.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/card/{5673a412-2236-4df0-ab6c-d7df4c509328}.xml
new file mode 100644
index 00000000..434632d6
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/card/{5673a412-2236-4df0-ab6c-d7df4c509328}.xml
@@ -0,0 +1,112 @@
+
+
+
+ {5673a412-2236-4df0-ab6c-d7df4c509328}
+ 1.0
+ 1
+ 1
+
+ 1
+ 1
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/card/{5673a412-2236-4df0-ab6c-d7df4c509328}_managed.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/card/{5673a412-2236-4df0-ab6c-d7df4c509328}_managed.xml
new file mode 100644
index 00000000..6af6aaa0
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/card/{5673a412-2236-4df0-ab6c-d7df4c509328}_managed.xml
@@ -0,0 +1,112 @@
+
+
+
+ {5673a412-2236-4df0-ab6c-d7df4c509328}
+ 1.0
+ 1
+ 1
+
+ 1
+ 1
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/main/{6230c58b-2b80-47a7-9ae2-b2a99da9ea96}.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/main/{6230c58b-2b80-47a7-9ae2-b2a99da9ea96}.xml
new file mode 100644
index 00000000..6265a0e9
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/main/{6230c58b-2b80-47a7-9ae2-b2a99da9ea96}.xml
@@ -0,0 +1,132 @@
+
+
+
+ {6230c58b-2b80-47a7-9ae2-b2a99da9ea96}
+ 1.0
+ 1
+ 1
+
+ 1
+ 1
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/main/{6230c58b-2b80-47a7-9ae2-b2a99da9ea96}_managed.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/main/{6230c58b-2b80-47a7-9ae2-b2a99da9ea96}_managed.xml
new file mode 100644
index 00000000..eaeb4925
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/main/{6230c58b-2b80-47a7-9ae2-b2a99da9ea96}_managed.xml
@@ -0,0 +1,132 @@
+
+
+
+ {6230c58b-2b80-47a7-9ae2-b2a99da9ea96}
+ 1.0
+ 1
+ 1
+
+ 1
+ 1
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/quick/{ba60d3e9-c2c0-4251-93ad-36478f89f760}.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/quick/{ba60d3e9-c2c0-4251-93ad-36478f89f760}.xml
new file mode 100644
index 00000000..d43461c5
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/quick/{ba60d3e9-c2c0-4251-93ad-36478f89f760}.xml
@@ -0,0 +1,52 @@
+
+
+
+ {ba60d3e9-c2c0-4251-93ad-36478f89f760}
+ 1.0
+ 1
+ 1
+
+ 1
+ 1
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/quick/{ba60d3e9-c2c0-4251-93ad-36478f89f760}_managed.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/quick/{ba60d3e9-c2c0-4251-93ad-36478f89f760}_managed.xml
new file mode 100644
index 00000000..935c9f5a
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/FormXml/quick/{ba60d3e9-c2c0-4251-93ad-36478f89f760}_managed.xml
@@ -0,0 +1,52 @@
+
+
+
+ {ba60d3e9-c2c0-4251-93ad-36478f89f760}
+ 1.0
+ 1
+ 1
+
+ 1
+ 1
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/RibbonDiff.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/RibbonDiff.xml
new file mode 100644
index 00000000..6b56f485
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/RibbonDiff.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{005ebaa1-63b6-4fa1-bc59-b581fd5923e7}.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{005ebaa1-63b6-4fa1-bc59-b581fd5923e7}.xml
new file mode 100644
index 00000000..eb18fdf5
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{005ebaa1-63b6-4fa1-bc59-b581fd5923e7}.xml
@@ -0,0 +1,34 @@
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ {005ebaa1-63b6-4fa1-bc59-b581fd5923e7}
+
+
+
+ |
+ |
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{0b77612e-9193-4aea-ab23-2e4abd3ab6e8}.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{0b77612e-9193-4aea-ab23-2e4abd3ab6e8}.xml
new file mode 100644
index 00000000..123517bf
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{0b77612e-9193-4aea-ab23-2e4abd3ab6e8}.xml
@@ -0,0 +1,37 @@
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ {0b77612e-9193-4aea-ab23-2e4abd3ab6e8}
+
+
+
+ |
+ |
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{6d6dc014-370e-ef11-9f8a-000d3a184ba8}.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{6d6dc014-370e-ef11-9f8a-000d3a184ba8}.xml
new file mode 100644
index 00000000..fd046bd4
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{6d6dc014-370e-ef11-9f8a-000d3a184ba8}.xml
@@ -0,0 +1,30 @@
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ {6d6dc014-370e-ef11-9f8a-000d3a184ba8}
+ 8192
+
+
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{c6c4db4f-7c44-42e9-b316-2275deb1c02f}.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{c6c4db4f-7c44-42e9-b316-2275deb1c02f}.xml
new file mode 100644
index 00000000..3046e4a9
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{c6c4db4f-7c44-42e9-b316-2275deb1c02f}.xml
@@ -0,0 +1,40 @@
+
+
+
+ 1
+ 0
+ 1
+ 0
+ 1
+ {c6c4db4f-7c44-42e9-b316-2275deb1c02f}
+
+
+
+ |
+ |
+
+
+
+ 4
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{ca3c943f-9167-4529-bd97-3318604071f1}.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{ca3c943f-9167-4529-bd97-3318604071f1}.xml
new file mode 100644
index 00000000..5f7c6d6c
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{ca3c943f-9167-4529-bd97-3318604071f1}.xml
@@ -0,0 +1,36 @@
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ {ca3c943f-9167-4529-bd97-3318604071f1}
+
+
+
+ |
+ |
+
+
+
+ 64
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{d705aad1-bf27-469a-94a1-55a7ed39de4c}.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{d705aad1-bf27-469a-94a1-55a7ed39de4c}.xml
new file mode 100644
index 00000000..6b4ddc1d
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{d705aad1-bf27-469a-94a1-55a7ed39de4c}.xml
@@ -0,0 +1,37 @@
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ {d705aad1-bf27-469a-94a1-55a7ed39de4c}
+
+
+
+ |
+ |
+
+
+
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{dd5b994e-8452-4c52-a7e5-6ea1c55e6f88}.xml b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{dd5b994e-8452-4c52-a7e5-6ea1c55e6f88}.xml
new file mode 100644
index 00000000..aa8faa00
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Entities/mpa_wellness_optin/SavedQueries/{dd5b994e-8452-4c52-a7e5-6ea1c55e6f88}.xml
@@ -0,0 +1,37 @@
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ {dd5b994e-8452-4c52-a7e5-6ea1c55e6f88}
+
+
+
+ |
+ |
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.0
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/OptionSets/mpa_daysoftheweek.xml b/Solutions/mpa_Wellness/src/OptionSets/mpa_daysoftheweek.xml
new file mode 100644
index 00000000..ff0c4aef
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/OptionSets/mpa_daysoftheweek.xml
@@ -0,0 +1,72 @@
+
+
+ picklist
+ 1
+ 1.0.0.1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Other/Customizations.xml b/Solutions/mpa_Wellness/src/Other/Customizations.xml
new file mode 100644
index 00000000..d658d089
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Other/Customizations.xml
@@ -0,0 +1,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {2dee6803-01d8-4111-a4d4-11c31a500c07}
+ Goal Writing Tips (V2)
+ {edfdb190-3791-45d8-9a6c-8f90a37c278a}
+ 1
+ 1
+ 1
+ {42a92016-e728-ef11-840b-00224834774f}
+
+
+ {42a92016-e728-ef11-840b-00224834774f}
+ {"version":"GptDynamicPrompt-2","prompt":[{"type":"literal","text":"Write a brief, friendly message encouraging them to write a wellness "},{"type":"inputVariable","id":"Goal"},{"type":"literal","text":" that follows the S.M.A.R.T. criteria, which stands for Specific, Measurable, Achievable, Realistic, and Time-Bound. Your answer should be no more than four sentences. Provide examples of how the "},{"type":"inputVariable","id":"Goal"},{"type":"literal","text":" they’ve given can be improved to fit those criteria. For example, if a user says “I want to exercise more”, an excellent response would be: \nSpecific: Instead of a vague "},{"type":"inputVariable","id":"Goal"},{"type":"literal","text":" like “more exercise,” let’s make it specific. For instance: “I will walk for 30 minutes every morning before work.”\nMeasurable: We need a way to track progress. In this case, we can measure the duration (30 minutes) and frequency (daily).\nAchievable: Consider your current lifestyle and commitments. Is walking for 30 minutes daily achievable for you? Adjust the "},{"type":"inputVariable","id":"Goal"},{"type":"literal","text":" if needed.\nRealistic: Be honest with yourself. If you’re not used to daily walks, starting with shorter durations might be more realistic. For example: “I will walk for 15 minutes every morning.”\nTime-bound: Set a deadline. “I will walk for 15 minutes every morning for the next 30 days.”\nPutting it all together: “I will walk for 15 minutes every morning for the next 30 days to improve my overall well-being.”\n"}],"definitions":{"inputs":[{"id":"Goal","text":"Goal","quickTestValue":"I want to reduce stress"}],"data":[],"output":{"formats":["text"]}},"modelParameters":{"modelType":"gpt-35-turbo","gptParameters":{"temperature":0}}}
+ 1
+ 0
+ 2dee6803-01d8-4111-a4d4-11c31a500c07_2024-06-12T18:10:50.343Z
+ H4sIAAAAAAAACpWQzQrCMBCEX0X2nIsgHnqrPxUvFtrifbVRA20Skg1YSt/dpFUU48Xrzsy3O9tDqfk5U6ZFOnJjhZKQzBnspXZUKEVbSYI6SHrYCKsb7A7YckgAGKRERpwccRvkncImto1TBrkmTw6GCzaWM6g6HeTSE+QVBgZY12LyrJUkfqeYlUaWTzAZ9+au0PLl4kUfPD939G+j31dU0+KowEVIYW8FRxte+J3KRnX2lKO4P/EBcwUiX4oBAAA=
+ 190690001
+ {2dee6803-01d8-4111-a4d4-11c31a500c07}
+ {3da92016-e728-ef11-840b-00224834774f}
+ 2
+ 7
+ 1
+ 1
+
+
+ {3da92016-e728-ef11-840b-00224834774f}
+ 1
+ 0
+ 97d4c3ee-b83b-499e-a21f-48035d4662e5
+ 2dee6803-01d8-4111-a4d4-11c31a500c07_2024-06-12T18:10:44.831Z
+
+ {
+ "schemaVersion": 2,
+ "input": {},
+ "output": {}
+ }
+
+ 190690000
+ {2dee6803-01d8-4111-a4d4-11c31a500c07}
+ 2
+ 6
+ 1
+ 1
+
+
+
+
+
+
+ Wellness - Dataverse
+ /providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps
+ 1
+ 0
+ 1
+
+
+ Wellness - Teams
+ /providers/Microsoft.PowerApps/apis/shared_teams
+ 1
+ 0
+ 1
+
+
+
+ 1033
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Other/Relationships.xml b/Solutions/mpa_Wellness/src/Other/Relationships.xml
new file mode 100644
index 00000000..f0011477
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Other/Relationships.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Other/Relationships/BusinessUnit.xml b/Solutions/mpa_Wellness/src/Other/Relationships/BusinessUnit.xml
new file mode 100644
index 00000000..ad877c54
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Other/Relationships/BusinessUnit.xml
@@ -0,0 +1,23 @@
+
+
+
+ OneToMany
+ 1
+ 1.0
+ 0
+ mpa_wellness_optin
+ BusinessUnit
+ NoCascade
+ Restrict
+ Restrict
+ NoCascade
+ NoCascade
+ NoCascade
+ OwningBusinessUnit
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Other/Relationships/Owner.xml b/Solutions/mpa_Wellness/src/Other/Relationships/Owner.xml
new file mode 100644
index 00000000..b38b5d6b
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Other/Relationships/Owner.xml
@@ -0,0 +1,23 @@
+
+
+
+ OneToMany
+ 1
+ 1.0
+ 0
+ mpa_wellness_optin
+ Owner
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ OwnerId
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Other/Relationships/SystemUser.xml b/Solutions/mpa_Wellness/src/Other/Relationships/SystemUser.xml
new file mode 100644
index 00000000..2aea4fcc
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Other/Relationships/SystemUser.xml
@@ -0,0 +1,63 @@
+
+
+
+ OneToMany
+ 1
+ 1.0
+ 0
+ mpa_wellness_optin
+ SystemUser
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ CreatedBy
+
+
+
+
+
+
+
+ OneToMany
+ 1
+ 1.0
+ 0
+ mpa_wellness_optin
+ SystemUser
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ ModifiedBy
+
+
+
+
+
+
+
+ OneToMany
+ 1
+ 1.0
+ 0
+ mpa_wellness_optin
+ SystemUser
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ OwningUser
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Other/Relationships/Team.xml b/Solutions/mpa_Wellness/src/Other/Relationships/Team.xml
new file mode 100644
index 00000000..56a2a0b1
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Other/Relationships/Team.xml
@@ -0,0 +1,23 @@
+
+
+
+ OneToMany
+ 1
+ 1.0
+ 0
+ mpa_wellness_optin
+ Team
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ NoCascade
+ OwningTeam
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Other/Solution.xml b/Solutions/mpa_Wellness/src/Other/Solution.xml
new file mode 100644
index 00000000..181331b7
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Other/Solution.xml
@@ -0,0 +1,103 @@
+
+
+
+ mpa_Wellness
+
+
+
+
+
+
+ 1.0.0.27
+ 2
+
+ PowerAccelerator
+
+
+
+
+
+
+
+
+ mpa
+ 86542
+
+
+ 1
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+ 2
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ msdyn_AISolutionAnchor (202406.2.4.1)
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Roles/Wellness Copilot User.xml b/Solutions/mpa_Wellness/src/Roles/Wellness Copilot User.xml
new file mode 100644
index 00000000..b22a1bf2
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Roles/Wellness Copilot User.xml
@@ -0,0 +1,22 @@
+
+
+ 1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/WebResources/mpa_optinicon b/Solutions/mpa_Wellness/src/WebResources/mpa_optinicon
new file mode 100644
index 00000000..90a60219
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/WebResources/mpa_optinicon
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/WebResources/mpa_optinicon.data.xml b/Solutions/mpa_Wellness/src/WebResources/mpa_optinicon.data.xml
new file mode 100644
index 00000000..c522e981
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/WebResources/mpa_optinicon.data.xml
@@ -0,0 +1,15 @@
+
+
+ {fd204e21-9435-ef11-8409-00224831bf58}
+ mpa_optinicon
+ Opt-inIcon.svg
+ Icon for Wellness Opt-in table
+ 11
+ 1.0.0.19
+ 0
+ 0
+ 1
+ 1
+ 0
+ /WebResources/mpa_optiniconFD204E21-9435-EF11-8409-00224831BF58
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Workflows/Wellness-HandleOptIn-991487EC-770C-EF11-9F89-00224834774F.json b/Solutions/mpa_Wellness/src/Workflows/Wellness-HandleOptIn-991487EC-770C-EF11-9F89-00224834774F.json
new file mode 100644
index 00000000..62f3783a
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Workflows/Wellness-HandleOptIn-991487EC-770C-EF11-9F89-00224834774F.json
@@ -0,0 +1,526 @@
+{
+ "properties": {
+ "connectionReferences": {
+ "shared_commondataserviceforapps": {
+ "impersonation": {
+ "source": "invoker"
+ },
+ "runtimeSource": "embedded",
+ "connection": {
+ "connectionReferenceLogicalName": "mpa_wellnessdataverse"
+ },
+ "api": {
+ "name": "shared_commondataserviceforapps"
+ }
+ }
+ },
+ "definition": {
+ "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
+ "contentVersion": "1.0.0.0",
+ "parameters": {
+ "$connections": {
+ "defaultValue": {},
+ "type": "Object"
+ },
+ "$authentication": {
+ "defaultValue": {},
+ "type": "SecureObject"
+ }
+ },
+ "triggers": {
+ "manual": {
+ "metadata": {
+ "operationMetadataId": "7b515eca-d794-4ab8-8fdb-0f0108717bdc"
+ },
+ "type": "Request",
+ "kind": "Skills",
+ "inputs": {
+ "schema": {
+ "type": "object",
+ "properties": {
+ "text": {
+ "title": "Email",
+ "type": "string",
+ "x-ms-dynamically-added": true,
+ "description": "Please enter your input",
+ "x-ms-content-hint": "TEXT"
+ },
+ "boolean": {
+ "title": "OptIn",
+ "type": "boolean",
+ "x-ms-dynamically-added": true,
+ "description": "Please select yes or no",
+ "x-ms-content-hint": "BOOLEAN"
+ },
+ "boolean_1": {
+ "title": "ConversationStart",
+ "type": "boolean",
+ "x-ms-dynamically-added": true,
+ "description": "Please select yes or no",
+ "x-ms-content-hint": "BOOLEAN"
+ },
+ "text_1": {
+ "title": "DaysOfWeek",
+ "type": "string",
+ "x-ms-dynamically-added": true,
+ "description": "Please enter your input",
+ "x-ms-content-hint": "TEXT"
+ },
+ "text_2": {
+ "title": "TimeOfDay",
+ "type": "string",
+ "x-ms-dynamically-added": true,
+ "description": "Please enter your input",
+ "x-ms-content-hint": "TEXT"
+ },
+ "text_3": {
+ "title": "TimeZone",
+ "type": "string",
+ "x-ms-dynamically-added": true,
+ "description": "Please enter your input",
+ "x-ms-content-hint": "TEXT"
+ }
+ },
+ "required": [
+ "text",
+ "boolean",
+ "boolean_1",
+ "text_3"
+ ]
+ }
+ }
+ }
+ },
+ "actions": {
+ "Scope": {
+ "actions": {
+ "Get_Opt_In": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "968c1d11-327c-4c80-93ee-68e3a9cf6cb2"
+ },
+ "type": "OpenApiConnection",
+ "inputs": {
+ "host": {
+ "connectionName": "shared_commondataserviceforapps",
+ "operationId": "ListRecords",
+ "apiId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps"
+ },
+ "parameters": {
+ "entityName": "mpa_wellness_optins",
+ "$filter": "owninguser/domainname eq '@{triggerBody()['text']}'",
+ "$expand": "owninguser($select=domainname,systemuserid)",
+ "$top": 1
+ },
+ "authentication": "@parameters('$authentication')"
+ }
+ },
+ "Compose_Array_of_Days": {
+ "runAfter": {
+ "Get_Opt_In": [
+ "Succeeded"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "c37a5223-96d0-42c2-bd5e-f5ae867658a6"
+ },
+ "type": "Compose",
+ "inputs": "@if(greater(length(coalesce(triggerBody()?['text_1'], '')), 0), split(triggerBody()?['text_1'], ','), json('[]'))"
+ },
+ "Select_Days_of_Week": {
+ "runAfter": {
+ "Compose_Array_of_Days": [
+ "Succeeded"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "3f3a0d17-1161-41ec-bdb2-8ada34bc8c30"
+ },
+ "type": "Select",
+ "inputs": {
+ "from": "@outputs('Compose_Array_of_Days')",
+ "select": "@if(equals(string(item()), 'Sun'), '865420000', if(equals(string(item()), 'Mon'), '865420001', if(equals(string(item()), 'Tue'), '865420002', if(equals(string(item()), 'Wed'), '865420003', if(equals(string(item()), 'Thu'), '865420004', if(equals(string(item()), 'Fri'), '865420005', if(equals(string(item()), 'Sat'), '865420006', null)))))))"
+ }
+ },
+ "Existing_Condition": {
+ "actions": {
+ "Conversation_Start_Condition": {
+ "actions": {
+ "Compose_Days_Length_Check": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "867edba2-5490-47e9-86a2-7f051b0c306a"
+ },
+ "type": "Compose",
+ "inputs": "@greater(length(body('Select_Days_of_Week')), 0)"
+ },
+ "Update_a_row": {
+ "runAfter": {
+ "Compose_Option_List": [
+ "Succeeded"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "98a81d19-68da-4b3e-908e-b030761c5786"
+ },
+ "type": "OpenApiConnection",
+ "inputs": {
+ "host": {
+ "connectionName": "shared_commondataserviceforapps",
+ "operationId": "UpdateRecord",
+ "apiId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps"
+ },
+ "parameters": {
+ "entityName": "mpa_wellness_optins",
+ "recordId": "@first(outputs('Get_Opt_In')?['body/value'])?['mpa_wellness_optinid']",
+ "item/mpa_daysofweek": "@outputs('Compose_Option_List')",
+ "item/mpa_optin": "@triggerBody()['boolean']",
+ "item/mpa_timeofday": "@coalesce(triggerBody()?['text_2'], '')",
+ "item/mpa_timeofdayutc": "@variables('UtcTime')"
+ },
+ "authentication": "@parameters('$authentication')"
+ }
+ },
+ "Compose_Option_List": {
+ "runAfter": {
+ "Compose_Days_Length_Check": [
+ "Succeeded"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "c83b98e7-3040-4b39-a1dc-039e32a3f39a"
+ },
+ "type": "Compose",
+ "inputs": "@if(outputs('Compose_Days_Length_Check'), join(body('Select_Days_of_Week'), ','), null)"
+ }
+ },
+ "runAfter": {},
+ "expression": {
+ "equals": [
+ "@triggerBody()['boolean_1']",
+ "@false"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "e37d95bc-6304-4cf8-9b0d-792184bdde2e"
+ },
+ "type": "If"
+ }
+ },
+ "runAfter": {
+ "Time_of_Day_Condition": [
+ "Succeeded"
+ ]
+ },
+ "else": {
+ "actions": {
+ "Get_User": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "cadab902-7c53-49a1-b591-28cfbdbb9104"
+ },
+ "type": "OpenApiConnection",
+ "inputs": {
+ "host": {
+ "connectionName": "shared_commondataserviceforapps",
+ "operationId": "ListRecords",
+ "apiId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps"
+ },
+ "parameters": {
+ "entityName": "systemusers",
+ "$select": "systemuserid",
+ "$filter": "domainname eq '@{triggerBody()['text']}'",
+ "$top": 1
+ },
+ "authentication": "@parameters('$authentication')"
+ }
+ },
+ "User_Exists_Condition": {
+ "actions": {
+ "Add_a_new_row": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "2a6c9655-789a-4f98-9043-ac5d08ed5033"
+ },
+ "type": "OpenApiConnection",
+ "inputs": {
+ "host": {
+ "connectionName": "shared_commondataserviceforapps",
+ "operationId": "CreateRecord",
+ "apiId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps"
+ },
+ "parameters": {
+ "entityName": "mpa_wellness_optins",
+ "item/mpa_name": "@null",
+ "item/mpa_daysofweek": "@join(body('Select_Days_of_Week'), ',')",
+ "item/mpa_optin": "@triggerBody()['boolean']",
+ "item/ownerid@odata.bind": "/systemusers(@{first(outputs('Get_User')?['body/value'])?['systemuserid']})",
+ "item/mpa_timeofday": "@coalesce(triggerBody()?['text_2'], '')\r\n",
+ "item/mpa_timeofdayutc": "@variables('UtcTime')"
+ },
+ "authentication": "@parameters('$authentication')"
+ }
+ }
+ },
+ "runAfter": {
+ "Get_User": [
+ "Succeeded"
+ ]
+ },
+ "else": {
+ "actions": {
+ "Respond_to_Copilot_-_Error_-_No_Dataverse_User": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "0414d1f9-42da-400f-a87a-8a8492935a92"
+ },
+ "type": "Response",
+ "kind": "Skills",
+ "inputs": {
+ "statusCode": 200,
+ "body": {
+ "success": "@{false}",
+ "message": "Your user does not exist in Dataverse. As a result, I could not set up your opt-in preferences and you will not receive pulse check notifications."
+ },
+ "schema": {
+ "type": "object",
+ "properties": {
+ "success": {
+ "title": "Success",
+ "x-ms-dynamically-added": true,
+ "type": "boolean"
+ },
+ "message": {
+ "title": "Message",
+ "x-ms-dynamically-added": true,
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "expression": {
+ "greater": [
+ "@length(outputs('Get_User')?['body/value'])",
+ 0
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "2f878c94-c83b-4eb3-9ca8-e1a5869d3ab8"
+ },
+ "type": "If"
+ }
+ }
+ },
+ "expression": {
+ "greater": [
+ "@length(outputs('Get_Opt_In')?['body/value'])",
+ 0
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "1d831b79-27f7-4554-af78-f4df25277efa"
+ },
+ "type": "If"
+ },
+ "Time_of_Day_Condition": {
+ "actions": {
+ "Convert_time_zone": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "622a7a74-4239-4365-8c0c-e731c491c80b"
+ },
+ "type": "Expression",
+ "kind": "ConvertTimeZone",
+ "inputs": {
+ "baseTime": "@triggerBody()?['text_2']",
+ "formatString": "@{'h:00 tt'}",
+ "sourceTimeZone": "@triggerBody()['text_3']",
+ "destinationTimeZone": "UTC"
+ }
+ },
+ "Set_UtcTime": {
+ "runAfter": {
+ "Convert_time_zone": [
+ "Succeeded"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "a4c5dd8d-7eb1-41ad-b07e-f73adcc53759"
+ },
+ "type": "SetVariable",
+ "inputs": {
+ "name": "UtcTime",
+ "value": "@body('Convert_time_zone')"
+ }
+ }
+ },
+ "runAfter": {
+ "Select_Days_of_Week": [
+ "Succeeded"
+ ]
+ },
+ "expression": {
+ "not": {
+ "equals": [
+ "@triggerBody()?['text_2']",
+ ""
+ ]
+ }
+ },
+ "metadata": {
+ "operationMetadataId": "b9753f44-e4d4-430c-abb6-2b9d5be306aa"
+ },
+ "type": "If"
+ }
+ },
+ "runAfter": {
+ "Initialize_UtcTime": [
+ "Succeeded"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "d30a8c66-db8e-4155-91ba-ed73153b82e7"
+ },
+ "type": "Scope"
+ },
+ "Respond_to_Copilot_-_Error": {
+ "runAfter": {
+ "Scope": [
+ "Failed"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "c96c42d0-ae1c-40e0-8b9c-fe72fa194508"
+ },
+ "type": "Response",
+ "kind": "Skills",
+ "inputs": {
+ "statusCode": 200,
+ "body": {
+ "success": "@{false}",
+ "message": "An unexpected error has occured setting your opt-in settings."
+ },
+ "schema": {
+ "type": "object",
+ "properties": {
+ "success": {
+ "title": "Success",
+ "x-ms-dynamically-added": true,
+ "type": "boolean"
+ },
+ "message": {
+ "title": "Message",
+ "x-ms-dynamically-added": true,
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "Initialize_UtcTime": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "f3e55e19-60c3-4f0d-81b0-86d1b988c0eb"
+ },
+ "type": "InitializeVariable",
+ "inputs": {
+ "variables": [
+ {
+ "name": "UtcTime",
+ "type": "string"
+ }
+ ]
+ }
+ },
+ "Condition": {
+ "actions": {
+ "Respond_to_Copilot_-_Opt_In_-_Success": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "3dad07e1-1034-4a20-a7c3-b6911c2a826f"
+ },
+ "type": "Response",
+ "kind": "Skills",
+ "inputs": {
+ "statusCode": 200,
+ "body": {
+ "success": "@{true}",
+ "message": "Fantastic! You've chosen to opt in for your wellness reminders."
+ },
+ "schema": {
+ "type": "object",
+ "properties": {
+ "success": {
+ "title": "Success",
+ "x-ms-dynamically-added": true,
+ "type": "boolean"
+ },
+ "message": {
+ "title": "Message",
+ "x-ms-dynamically-added": true,
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ },
+ "runAfter": {
+ "Scope": [
+ "Succeeded"
+ ]
+ },
+ "else": {
+ "actions": {
+ "Respond_to_Copilot_-_Opt_Out_-_Success": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "3dad07e1-1034-4a20-a7c3-b6911c2a826f"
+ },
+ "type": "Response",
+ "kind": "Skills",
+ "inputs": {
+ "statusCode": 200,
+ "body": {
+ "success": "@{true}",
+ "message": "Thank you for letting me know. I've stopped the scheduled Pulse Check. Remember, you can 'Opt In' again any time by just asking."
+ },
+ "schema": {
+ "type": "object",
+ "properties": {
+ "success": {
+ "title": "Success",
+ "x-ms-dynamically-added": true,
+ "type": "boolean"
+ },
+ "message": {
+ "title": "Message",
+ "x-ms-dynamically-added": true,
+ "type": "string"
+ }
+ }
+ }
+ }
+ }
+ }
+ },
+ "expression": {
+ "equals": [
+ "@triggerBody()['boolean']",
+ "@true"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "d599ea3d-b9a5-450a-9f3f-27906b0c0bc7"
+ },
+ "type": "If"
+ }
+ }
+ },
+ "templateName": ""
+ },
+ "schemaVersion": "1.0.0.0"
+}
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Workflows/Wellness-HandleOptIn-991487EC-770C-EF11-9F89-00224834774F.json.data.xml b/Solutions/mpa_Wellness/src/Workflows/Wellness-HandleOptIn-991487EC-770C-EF11-9F89-00224834774F.json.data.xml
new file mode 100644
index 00000000..00094dee
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Workflows/Wellness-HandleOptIn-991487EC-770C-EF11-9F89-00224834774F.json.data.xml
@@ -0,0 +1,26 @@
+
+
+ /Workflows/Wellness-HandleOptIn-991487EC-770C-EF11-9F89-00224834774F.json
+ 1
+ 0
+ 5
+ 0
+ 4
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 2
+ 1
+ 1
+ 1.0.0.1
+ 1
+ 0
+ 1
+ none
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Workflows/Wellness-SendDailyReminder-31564221-E00B-EF11-9F89-6045BDDA1517.json b/Solutions/mpa_Wellness/src/Workflows/Wellness-SendDailyReminder-31564221-E00B-EF11-9F89-6045BDDA1517.json
new file mode 100644
index 00000000..5fed4e90
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Workflows/Wellness-SendDailyReminder-31564221-E00B-EF11-9F89-6045BDDA1517.json
@@ -0,0 +1,231 @@
+{
+ "properties": {
+ "connectionReferences": {
+ "shared_commondataserviceforapps": {
+ "runtimeSource": "embedded",
+ "connection": {
+ "connectionReferenceLogicalName": "mpa_wellnessdataverse"
+ },
+ "api": {
+ "name": "shared_commondataserviceforapps"
+ }
+ },
+ "shared_teams": {
+ "runtimeSource": "embedded",
+ "connection": {
+ "connectionReferenceLogicalName": "mpa_wellnessteams"
+ },
+ "api": {
+ "name": "shared_teams"
+ }
+ }
+ },
+ "definition": {
+ "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
+ "contentVersion": "1.0.0.0",
+ "parameters": {
+ "$connections": {
+ "defaultValue": {},
+ "type": "Object"
+ },
+ "$authentication": {
+ "defaultValue": {},
+ "type": "SecureObject"
+ }
+ },
+ "triggers": {
+ "Recurrence": {
+ "recurrence": {
+ "frequency": "Hour",
+ "interval": 1,
+ "startTime": "2024-05-06T14:00:00Z"
+ },
+ "metadata": {
+ "operationMetadataId": "5ef425e5-adee-45ec-96ef-fe77d50163f7"
+ },
+ "type": "Recurrence"
+ }
+ },
+ "actions": {
+ "Get_Opt_Ins": {
+ "runAfter": {
+ "Compose_Pulse_Check_Strings": [
+ "Succeeded"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "a167102a-8ba5-4be4-823d-a6350222530b"
+ },
+ "type": "OpenApiConnection",
+ "inputs": {
+ "host": {
+ "connectionName": "shared_commondataserviceforapps",
+ "operationId": "ListRecords",
+ "apiId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps"
+ },
+ "parameters": {
+ "entityName": "mpa_wellness_optins",
+ "$select": "mpa_optin,mpa_daysofweek,mpa_timeofdayutc",
+ "$filter": "mpa_optin eq true and Microsoft.Dynamics.CRM.ContainValues(PropertyName='mpa_daysofweek',PropertyValues=['@{outputs('Compose_Day_of_Week_Option_Set_Value')}']) ",
+ "$expand": "owninguser($select=domainname)"
+ },
+ "authentication": "@parameters('$authentication')"
+ }
+ },
+ "Compose_Day_of_Week_Option_Set_Value": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "e9f0b386-3d1a-47f6-b56f-1c6970ac11dd"
+ },
+ "type": "Compose",
+ "inputs": "@string(add(dayOfWeek(utcNow()), 865420000))"
+ },
+ "Compose_Pulse_Check_Strings": {
+ "runAfter": {
+ "Compose_Day_of_Week_Option_Set_Value": [
+ "Succeeded"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "651806fb-6144-433c-b63a-c4f90c1f6269"
+ },
+ "type": "Compose",
+ "inputs": [
+ "Hello! Need a productivity boost? I can suggest ways to avoid eye strain during your workday.",
+ "Hi! Ready to start your day? Remember, if you're feeling overwhelmed, ask me about quick mindfulness exercises.",
+ "Good day! Struggling with sleep? Ask me how you can get better sleep.",
+ "Hello! Need a moment to relax? Ask me what are some breathing exercises to manage stress.",
+ "Hey, it's check-in time! Struggling with sleep? Ask me for tips on how to get better sleep.",
+ "Hey, how's your day treating you? I can recommend ways to keep you energized.",
+ "Hi! Feeling stressed? Ask me to provide some relaxation techniques.",
+ "Hi! Taking a break? If you're feeling low, ask me to recommend techniques to improve your mood.",
+ "Hello! Need some clarity? Ask me to help you start journaling to gain perspective."
+ ]
+ },
+ "Apply_to_each": {
+ "foreach": "@outputs('Get_Opt_Ins')?['body/value']",
+ "actions": {
+ "Time_of_Day_Condition": {
+ "actions": {
+ "Compose_Pulse_Check_Message": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "3d9100fe-4082-43ee-a300-16b2b213a2b7"
+ },
+ "type": "Compose",
+ "inputs": "@outputs('Compose_Pulse_Check_Strings')?[rand(0, length(outputs('Compose_Pulse_Check_Strings')))]"
+ },
+ "Post_message_in_a_chat_or_channel": {
+ "runAfter": {
+ "Compose_Pulse_Check_Message": [
+ "Succeeded"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "c99c020c-ac23-4550-a0e9-429d96d95e3a"
+ },
+ "type": "OpenApiConnection",
+ "inputs": {
+ "host": {
+ "connectionName": "shared_teams",
+ "operationId": "PostMessageToConversation",
+ "apiId": "/providers/Microsoft.PowerApps/apis/shared_teams"
+ },
+ "parameters": {
+ "poster": "Power Virtual Agents",
+ "location": "powerva",
+ "body/bot": "mpa_wellnessCopilot",
+ "body/recipient": "@{items('Apply_to_each')?['owninguser/domainname']};",
+ "body/messageBody": "
@{outputs('Compose_Pulse_Check_Message')}
",
+ "body/attribution": true,
+ "body/activeChat": "Send",
+ "body/installedError": "Fail"
+ },
+ "authentication": "@parameters('$authentication')"
+ }
+ },
+ "Error_Condition": {
+ "actions": {
+ "Prevent_Future_Errors_-_Delete_Opt-In": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "7579b137-1116-4ad3-bc59-6eb549e2fbe4"
+ },
+ "type": "OpenApiConnection",
+ "inputs": {
+ "host": {
+ "connectionName": "shared_commondataserviceforapps",
+ "operationId": "DeleteRecord",
+ "apiId": "/providers/Microsoft.PowerApps/apis/shared_commondataserviceforapps"
+ },
+ "parameters": {
+ "entityName": "mpa_wellness_optins",
+ "recordId": "@items('Apply_to_each')?['mpa_wellness_optinid']"
+ },
+ "authentication": "@parameters('$authentication')"
+ }
+ }
+ },
+ "runAfter": {
+ "Post_message_in_a_chat_or_channel": [
+ "Failed"
+ ]
+ },
+ "expression": {
+ "contains": [
+ "@body('Post_message_in_a_chat_or_channel')?['error']",
+ "Bot hasn't been installed for user"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "8534b2b1-0d94-4629-be7a-404f526974f4"
+ },
+ "type": "If"
+ }
+ },
+ "runAfter": {
+ "Compose_UTC_Now_Hour": [
+ "Succeeded"
+ ]
+ },
+ "expression": {
+ "equals": [
+ "@outputs('Compose_UTC_Now_Hour')",
+ "@items('Apply_to_each')?['mpa_timeofdayutc']"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "076ca670-71b0-4b64-bfcb-f449e4a18036"
+ },
+ "type": "If"
+ },
+ "Compose_UTC_Now_Hour": {
+ "runAfter": {},
+ "metadata": {
+ "operationMetadataId": "10c92e1a-acbf-4116-9df1-ac0607bbd8e1"
+ },
+ "type": "Compose",
+ "inputs": "@formatDateTime(utcNow(), 'h:00 tt')"
+ }
+ },
+ "runAfter": {
+ "Get_Opt_Ins": [
+ "Succeeded"
+ ]
+ },
+ "metadata": {
+ "operationMetadataId": "51b5039b-48f8-48ec-9320-7f5f55f8ad7c"
+ },
+ "type": "Foreach",
+ "runtimeConfiguration": {
+ "concurrency": {
+ "repetitions": 20
+ }
+ }
+ }
+ }
+ },
+ "templateName": ""
+ },
+ "schemaVersion": "1.0.0.0"
+}
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/Workflows/Wellness-SendDailyReminder-31564221-E00B-EF11-9F89-6045BDDA1517.json.data.xml b/Solutions/mpa_Wellness/src/Workflows/Wellness-SendDailyReminder-31564221-E00B-EF11-9F89-6045BDDA1517.json.data.xml
new file mode 100644
index 00000000..0ab1e880
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/Workflows/Wellness-SendDailyReminder-31564221-E00B-EF11-9F89-6045BDDA1517.json.data.xml
@@ -0,0 +1,26 @@
+
+
+ /Workflows/Wellness-SendDailyReminder-31564221-E00B-EF11-9F89-6045BDDA1517.json
+ 1
+ 0
+ 5
+ 0
+ 4
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 2
+ 1
+ 1
+ 1.0.0.1
+ 1
+ 0
+ 1
+ none
+
+
+
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/aipluginoperations/aiplugin.name=msdynaib_GoalWritingTipsV2,operationid=msdynaib_GoalWritingTipsV2/aipluginoperation.xml b/Solutions/mpa_Wellness/src/aipluginoperations/aiplugin.name=msdynaib_GoalWritingTipsV2,operationid=msdynaib_GoalWritingTipsV2/aipluginoperation.xml
new file mode 100644
index 00000000..5bbc4b9a
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/aipluginoperations/aiplugin.name=msdynaib_GoalWritingTipsV2,operationid=msdynaib_GoalWritingTipsV2/aipluginoperation.xml
@@ -0,0 +1,15 @@
+
+ aiplugin.name=msdynaib_GoalWritingTipsV2,operationid=msdynaib_GoalWritingTipsV2
+
+ msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07
+
+ Write a brief, friendly message encouraging them to write a wellness Goal that follows the S.M.A.R.T. criteria, which stands for Specific, Measurable, Achievable, Realistic, and Time-Bound. Your answer should be no more than four sentences. Provide examples of how the Goal they’ve given can be imp
+ 0
+ 1
+
+ 2dee6803-01d8-4111-a4d4-11c31a500c07
+
+ msdynaib_GoalWritingTipsV2
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/aiplugins/msdynaib_GoalWritingTipsV2/aiplugin.xml b/Solutions/mpa_Wellness/src/aiplugins/msdynaib_GoalWritingTipsV2/aiplugin.xml
new file mode 100644
index 00000000..3fe292b1
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/aiplugins/msdynaib_GoalWritingTipsV2/aiplugin.xml
@@ -0,0 +1,19 @@
+
+ Write a brief, friendly message encouraging them to write a wellness Goal that follows the S.M.A.R.T. criteria, which stands for Specific, Measurable, Achievable, Realistic, and Time-Bound. Your answer should be no more than four sentences. Provide examples of how the Goal they’ve given can be improved to fit those criteria. For example, if a user says “I want to exercise more”, an excellent response would be:
+Specific: Instead of a vague Goal like “more exercise,” let’s make it specific. For instance: “I will walk for 30 minutes every morning before work.”
+Measurable: We need a way to track progress. In this case, we can measure the duration (30 minutes) and frequency (daily).
+Achievable: Consider your current lifestyle and commitments. Is walking for 30 minutes daily achievable for you? Adjust the Goal if needed.
+Realistic: Be honest with yourself. If you’re not used to daily walks, starting with shorter durations might be more realistic. For example: “I will walk for 15 minutes every morning.”
+Time-bound: Set a deadline. “I will walk for 15 minutes every morning for the next 30 days.”
+Putting it all together: “I will walk for 15 minutes every morning for the next 30 days to improve my overall well-being.”
+
+ Goal Writing Tips (V2)
+ 1
+ Write a brief, friendly message encouraging them to write a wellness Goal that follows the S.M.A.R.T. criteria, which stands for Specific, Measurable, Achievable, Realistic, and Time-Bound. Your answer should be no more than four sentences. Provide examples of how the Goal they’ve given can be imp
+ Goal Writing Tips (V2)
+ 4
+ 0
+ 0
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.component.msdynaib_GoalWritingTipsV2-msdynaib_GoalWritingTipsV2/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.component.msdynaib_GoalWritingTipsV2-msdynaib_GoalWritingTipsV2/botcomponent.xml
new file mode 100644
index 00000000..595adac2
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.component.msdynaib_GoalWritingTipsV2-msdynaib_GoalWritingTipsV2/botcomponent.xml
@@ -0,0 +1,10 @@
+
+ 9
+ 0
+ Generate Goal Writing Tips (V2)
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.component.msdynaib_GoalWritingTipsV2-msdynaib_GoalWritingTipsV2/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.component.msdynaib_GoalWritingTipsV2-msdynaib_GoalWritingTipsV2/data
new file mode 100644
index 00000000..8f8e1f7e
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.component.msdynaib_GoalWritingTipsV2-msdynaib_GoalWritingTipsV2/data
@@ -0,0 +1,22 @@
+kind: TaskDialog
+modelDisplayName: Generate Goal Writing Tips (V2)
+modelDescription: You are a wellness coach assisting someone in setting effective goals that follow the S.M.A.R.T. criteria, which stands for Specific, Measurable, Achievable, Realistic, and Time-Bound.
+inputs:
+ - kind: AutomaticTaskInput
+ propertyName: Goal
+ description: The user's wellness goal to be improved upon.
+ entity: StringPrebuiltEntity
+
+outputs:
+ - propertyName: finishReason
+
+ - propertyName: text
+
+action:
+ kind: InvokeAIPluginTaskAction
+ entityKey: aiplugin.name=msdynaib_GoalWritingTipsV2,operationid=msdynaib_GoalWritingTipsV2
+ primaryConnectionReference:
+ kind: InvokerConnectionReference
+
+response:
+ mode: Generated
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.entity.Mood/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.entity.Mood/botcomponent.xml
new file mode 100644
index 00000000..26638ec2
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.entity.Mood/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 11
+ The Mood entity represents specific emotional states or feelings.
+ 1
+ Mood
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.entity.Mood/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.entity.Mood/data
new file mode 100644
index 00000000..a48841c5
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.entity.Mood/data
@@ -0,0 +1,89 @@
+kind: ClosedListEntity
+items:
+ - id: IjnR46
+ displayName: tired
+ synonyms:
+ - exhausted
+ - sleepy
+ - overworked
+ - fatigued
+ - drained
+ - bored
+
+ - id: TKAoiw
+ displayName: stressed
+ synonyms:
+ - strained
+ - worried
+ - troubled
+ - distressed
+ - agitated
+
+ - id: 2RC8nY
+ displayName: distracted
+ synonyms:
+ - preoccupied
+ - inattentive
+
+ - id: mBybQ3
+ displayName: busy
+ synonyms:
+ - occupied
+ - engrossed
+ - buried
+ - hustling
+
+ - id: 7tFXGE
+ displayName: frustrated
+ synonyms:
+ - discouraged
+ - disheartened
+ - disctontented
+
+ - id: QS3NIb
+ displayName: overwhelmed
+ synonyms:
+ - swamped
+ - beaten
+
+ - id: Iz08NS
+ displayName: engaged
+ synonyms:
+ - immersed
+ - involved
+ - interested
+ - absorbed
+
+ - id: Oyu62c
+ displayName: productive
+ synonyms:
+ - industrious
+ - dynamic
+ - active
+ - creative
+ - energetic
+
+ - id: kLGzMX
+ displayName: calm
+ synonyms:
+ - collected
+ - relaxed
+ - levelheaded
+ - laid-back
+ - composed
+ - restful
+ - rested
+ - serene
+ - cool
+ - tranquil
+
+ - id: uxmsXp
+ displayName: good
+ synonyms:
+ - wonderful
+ - positive
+ - marvelous
+ - great
+ - exceptional
+ - excellent
+ - fine
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.gpt.default/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.gpt.default/botcomponent.xml
new file mode 100644
index 00000000..cf8e26e9
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.gpt.default/botcomponent.xml
@@ -0,0 +1,10 @@
+
+ 15
+ 1
+ Wellness Copilot
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.gpt.default/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.gpt.default/data
new file mode 100644
index 00000000..e97bbd81
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.gpt.default/data
@@ -0,0 +1,2 @@
+kind: GptComponentMetadata
+instructions: You are a wellness advisor, helping people to take care of themselves by offering them tips on how to manage their stress, incorporate exercise into their daily routine and provide recommendations for a healthier workday. You an also help answer questions about wellness in general. Respond politely and in a helpful way.
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.0/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.0/botcomponent.xml
new file mode 100644
index 00000000..42ff1ef7
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.0/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 16
+ This knowledge source searches information on the web found in https://www.cdc.gov website
+ 1
+ https://www.cdc.gov
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.0/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.0/data
new file mode 100644
index 00000000..c9e0d576
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.0/data
@@ -0,0 +1,5 @@
+kind: KnowledgeSourceConfiguration
+source:
+ kind: PublicSiteSearchSource
+ site: https://www.cdc.gov
+ includeSubPages: true
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.1/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.1/botcomponent.xml
new file mode 100644
index 00000000..ecc6fb94
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.1/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 16
+ This knowledge source searches information on the web found in https://www.nccih.nih.gov/ website
+ 1
+ https://www.nccih.nih.gov/
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.1/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.1/data
new file mode 100644
index 00000000..d2fc38b1
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.1/data
@@ -0,0 +1,5 @@
+kind: KnowledgeSourceConfiguration
+source:
+ kind: PublicSiteSearchSource
+ site: https://www.nccih.nih.gov/
+ includeSubPages: true
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.CheckifHelpful/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.CheckifHelpful/botcomponent.xml
new file mode 100644
index 00000000..ac6eacc8
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.CheckifHelpful/botcomponent.xml
@@ -0,0 +1,10 @@
+
+ 9
+ 1
+ Send Helpful Message
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.CheckifHelpful/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.CheckifHelpful/data
new file mode 100644
index 00000000..2b53e13f
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.CheckifHelpful/data
@@ -0,0 +1,19 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnRedirect
+ id: main
+ actions:
+ - kind: SendActivity
+ id: sendActivity_KqiX4h
+ activity:
+ text:
+ - I hope that was helpful. If you need more assistance or have any other questions, feel free to ask.
+ quickReplies:
+ - kind: MessageBack
+ text: What can I ask?
+
+ - kind: ClearAllVariables
+ id: UilVAq
+
+ - kind: CancelAllDialogs
+ id: VX2L0i
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ConversationStart/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ConversationStart/botcomponent.xml
new file mode 100644
index 00000000..f9cb59a7
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ConversationStart/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 9
+ This system topic triggers when the bot receives an Activity indicating the beginning of a new conversation. If do not want the bot to initiate the conversation, disable this topic.
+ 1
+ Conversation Start
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ConversationStart/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ConversationStart/data
new file mode 100644
index 00000000..fce16a79
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ConversationStart/data
@@ -0,0 +1,52 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnConversationStart
+ id: main
+ actions:
+ - kind: InvokeFlowAction
+ id: invokeFlowAction_vjH1JD
+ input:
+ binding:
+ boolean: true
+ boolean_1: true
+ text: =System.User.PrincipalName
+ text_1: "=\"Mon,Tue,Wed,Thu,Fri\""
+ text_2: "=\"9:00 AM\""
+ text_3: =System.Conversation.LocalTimeZone
+
+ output:
+ binding:
+ message: Topic.Message
+ success: Topic.Success
+
+ flowId: 991487ec-770c-ef11-9f89-00224834774f
+
+ - kind: SendActivity
+ id: sendMessage_M0LuhV
+ activity:
+ text:
+ - |-
+ Hello, I'm {System.Bot.Name}, a virtual assistant. Just so you are aware, I sometimes use AI to answer your questions.
+
+ I'm here to help you find ways to take care of your wellbeing during your work day. I can show some tips on how to manage your stress, incorporate exercise into your daily routine, and provide recommendations on your wellness.. I can aslo get you started on how to set up goals to work toward a healthier work day.
+
+ You start out Opted-In to my daily Pulse Check. Please feel to let me know if you would like to Opt-Out of getting an automated check-in from me.
+
+ You can ask me general wellness questions or choose from one of the sample questions below to get started.
+
+ _**Note**: You can now customize this copilot's topics and knowledge for your own needs. For more information about this template and how to modify it, visit the template [documentation.](https://go.microsoft.com/fwlink/?linkid=2275396)_
+ speak:
+ - Thanks for calling, how can I help?
+ quickReplies:
+ - kind: MessageBack
+ text: What can I ask?
+
+ - kind: ConditionGroup
+ id: conditionGroup_t3Ko9S
+ conditions:
+ - id: conditionItem_qyNqQe
+ condition: =Topic.Success = false
+ actions:
+ - kind: SendActivity
+ id: sendActivity_AcRQ0L
+ activity: "{Topic.Message}"
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.EndofConversation/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.EndofConversation/botcomponent.xml
new file mode 100644
index 00000000..8bc598fe
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.EndofConversation/botcomponent.xml
@@ -0,0 +1,12 @@
+
+ 9
+ This system topic is only triggered by a redirect action,
+and guides the user through rating their conversation with the bot.
+ 1
+ End of Conversation
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.EndofConversation/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.EndofConversation/data
new file mode 100644
index 00000000..492a48e0
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.EndofConversation/data
@@ -0,0 +1,71 @@
+kind: AdaptiveDialog
+startBehavior: CancelOtherTopics
+beginDialog:
+ kind: OnSystemRedirect
+ id: main
+ actions:
+ - kind: Question
+ id: 41d42054-d4cb-4e90-b922-2b16b37fe379
+ conversationOutcome: ResolvedImplied
+ alwaysPrompt: true
+ variable: init:Topic.SurveyResponse
+ prompt: Was that information helpful?
+ entity: BooleanPrebuiltEntity
+
+ - kind: ConditionGroup
+ id: condition-0
+ conditions:
+ - id: condition-0-item-0
+ condition: =Topic.SurveyResponse = true
+ actions:
+ - kind: CSATQuestion
+ id: csat_1
+ conversationOutcome: ResolvedConfirmed
+
+ - kind: SendActivity
+ id: sendMessage_8r29O0
+ activity: Thanks for your feedback.
+
+ - kind: Question
+ id: question_1
+ alwaysPrompt: true
+ variable: init:Topic.Continue
+ prompt: Can I help with anything else?
+ entity: BooleanPrebuiltEntity
+
+ - kind: ConditionGroup
+ id: condition-1
+ conditions:
+ - id: condition-1-item-0
+ condition: =Topic.Continue = true
+ actions:
+ - kind: SendActivity
+ id: sendMessage_4eOE6h
+ activity: Go ahead. I'm listening.
+
+ elseActions:
+ - kind: SendActivity
+ id: yHBz55
+ activity: Ok, goodbye.
+
+ - kind: EndConversation
+ id: jh1GMT
+
+ elseActions:
+ - kind: Question
+ id: PM68ot
+ alwaysPrompt: true
+ variable: init:Topic.TryAgain
+ prompt: Sorry I wasn't able to help better. Would you like to try again?
+ entity: BooleanPrebuiltEntity
+
+ - kind: ConditionGroup
+ id: KNxYBf
+ conditions:
+ - id: DPveFP
+ condition: =Topic.TryAgain = false
+
+ elseActions:
+ - kind: SendActivity
+ id: GrVHEW
+ activity: Go ahead. I'm listening.
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Escalate/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Escalate/botcomponent.xml
new file mode 100644
index 00000000..17c8a0cf
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Escalate/botcomponent.xml
@@ -0,0 +1,13 @@
+
+ 9
+ This system topic is triggered when the user indicates they would like to speak to a human agent.
+You can configure how the bot will handle human hand-off scenarios in the bot settings.
+If your bot does not handle escalations, this topic should be disabled.
+ 1
+ Escalate
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Escalate/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Escalate/data
new file mode 100644
index 00000000..eed0bb6b
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Escalate/data
@@ -0,0 +1,60 @@
+kind: AdaptiveDialog
+startBehavior: CancelOtherTopics
+beginDialog:
+ kind: OnEscalate
+ id: main
+ intent:
+ displayName: Escalate
+ includeInOnSelectIntent: false
+ triggerQueries:
+ - Talk to agent
+ - Talk to a person
+ - Talk to someone
+ - Call back
+ - Call customer service
+ - Call me please
+ - Call support
+ - Call technical support
+ - Can an agent call me
+ - Can I call
+ - Can I get in touch with someone else
+ - Can I get real agent support
+ - Can I get transferred to a person to call
+ - Can I have a call in number Or can I be called
+ - Can I have a representative call me
+ - Can I schedule a call
+ - Can I speak to a representative
+ - Can I talk to a human
+ - Can I talk to a human assistant
+ - Can someone call me
+ - Chat with a human
+ - Chat with a representative
+ - Chat with agent
+ - Chat with someone please
+ - Connect me to a live agent
+ - Connect me to a person
+ - Could some one contact me by phone
+ - Customer agent
+ - Customer representative
+ - Customer service
+ - I need a manager to contact me
+ - I need customer service
+ - I need help from a person
+ - I need to speak with a live argent
+ - I need to talk to a specialist please
+ - I want to talk to customer service
+ - I want to proceed with live support
+ - I want to speak with a consultant
+ - I want to speak with a live tech
+ - I would like to speak with an associate
+ - I would like to talk to a technician
+ - Talk with tech support member
+
+ actions:
+ - kind: SendActivity
+ id: sendMessage_s39DCt
+ conversationOutcome: Escalated
+ activity: |-
+ Escalating to a live agent is not currently configured for this bot, however this is where the bot could provide information about how to get in touch with someone another way.
+
+ Is there anything else I can help you with?
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Fallback/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Fallback/botcomponent.xml
new file mode 100644
index 00000000..16f421cc
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Fallback/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 9
+ This system topic triggers when the user's utterance does not match any existing topics.
+ 1
+ Fallback
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Fallback/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Fallback/data
new file mode 100644
index 00000000..6cef7af3
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Fallback/data
@@ -0,0 +1,19 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnUnknownIntent
+ id: main
+ actions:
+ - kind: ConditionGroup
+ id: conditionGroup_LktzXw
+ conditions:
+ - id: conditionItem_tlGIVo
+ condition: =System.FallbackCount < 3
+ actions:
+ - kind: SendActivity
+ id: sendMessage_QZreqo
+ activity: I'm sorry, I'm not sure how to help with that. Can you try rephrasing?
+
+ elseActions:
+ - kind: BeginDialog
+ id: 5aXj5M
+ dialog: mpa_wellnessCopilot.topic.Escalate
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Goodbye/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Goodbye/botcomponent.xml
new file mode 100644
index 00000000..3af33bc2
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Goodbye/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 9
+ This topic triggers when the user says goodbye. By default, it does not end the conversation. If you would like to end the conversation when the user says goodbye, you can add an "End of Conversation" action to this topic, or redirect to the "End of Conversation" system topic.
+ 1
+ Goodbye
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Goodbye/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Goodbye/data
new file mode 100644
index 00000000..2fa9d521
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Goodbye/data
@@ -0,0 +1,39 @@
+kind: AdaptiveDialog
+startBehavior: CancelOtherTopics
+beginDialog:
+ kind: OnRecognizedIntent
+ id: main
+ intent:
+ displayName: Goodbye
+ includeInOnSelectIntent: false
+ triggerQueries:
+ - Bye
+ - Bye for now
+ - Bye now
+ - Good bye
+ - No thank you. Goodbye.
+ - See you later
+
+ actions:
+ - kind: Question
+ id: question_zf2HhP
+ variable: Topic.EndConversation
+ prompt: Would you like to end our conversation?
+ entity: BooleanPrebuiltEntity
+
+ - kind: ConditionGroup
+ id: condition_DGc1Wy
+ conditions:
+ - id: condition_DGc1Wy-item-0
+ condition: =Topic.EndConversation = true
+ actions:
+ - kind: BeginDialog
+ id: dn94DC
+ dialog: mpa_wellnessCopilot.topic.EndofConversation
+
+ - id: condition_DGc1Wy-item-1
+ condition: =Topic.EndConversation = false
+ actions:
+ - kind: SendActivity
+ id: sendMessage_LdLhmf
+ activity: Go ahead. I'm listening.
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Greeting/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Greeting/botcomponent.xml
new file mode 100644
index 00000000..04a601b4
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Greeting/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 9
+ This topic is triggered when the user greets the bot.
+ 1
+ Greeting
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Greeting/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Greeting/data
new file mode 100644
index 00000000..c4c2099a
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Greeting/data
@@ -0,0 +1,25 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnRecognizedIntent
+ id: main
+ intent:
+ displayName: Greeting
+ includeInOnSelectIntent: false
+ triggerQueries:
+ - Good afternoon
+ - Good morning
+ - Hello
+ - Hey
+ - Hi
+
+ actions:
+ - kind: SendActivity
+ id: sendMessage_abmysR
+ activity:
+ text:
+ - Hello, how can I help you today?
+ speak:
+ - Hello, how can I help?
+
+ - kind: CancelAllDialogs
+ id: cancelAllDialogs_01At22
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.HandleWeekdaySelection/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.HandleWeekdaySelection/botcomponent.xml
new file mode 100644
index 00000000..a417c24c
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.HandleWeekdaySelection/botcomponent.xml
@@ -0,0 +1,10 @@
+
+ 9
+ 0
+ Handle Weekday Selection
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.HandleWeekdaySelection/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.HandleWeekdaySelection/data
new file mode 100644
index 00000000..c589fa0b
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.HandleWeekdaySelection/data
@@ -0,0 +1,102 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnRedirect
+ id: main
+ actions:
+ - kind: SetVariable
+ id: setVariable_GEjtB2
+ variable: Topic.SelectedDays
+ value: "=\"\""
+
+ - kind: ConditionGroup
+ id: conditionGroup_T8AWUp
+ conditions:
+ - id: conditionItem_8z1iOs
+ condition: =Global.Sun = "True"
+ actions:
+ - kind: SetVariable
+ id: setVariable_TvOamD
+ variable: Topic.SelectedDays
+ value: "=\"Sun,\""
+
+ - kind: ConditionGroup
+ id: conditionGroup_IgoJbb
+ conditions:
+ - id: conditionItem_eFCoNG
+ condition: =Global.Mon = "True"
+ actions:
+ - kind: SetVariable
+ id: mNlXJx
+ variable: Topic.SelectedDays
+ value: =Concatenate(Topic.SelectedDays, "Mon,")
+
+ - kind: ConditionGroup
+ id: MI8bbE
+ conditions:
+ - id: Mif5NU
+ condition: =Global.Tue = "True"
+ actions:
+ - kind: SetVariable
+ id: 5keyNK
+ variable: Topic.SelectedDays
+ value: =Concatenate(Topic.SelectedDays, "Tue,")
+
+ - kind: ConditionGroup
+ id: conditionGroup_6eb0E0
+ conditions:
+ - id: conditionItem_fDWZVq
+ condition: =Global.Wed = "True"
+ actions:
+ - kind: SetVariable
+ id: EezjSy
+ variable: Topic.SelectedDays
+ value: =Concatenate(Topic.SelectedDays, "Wed,")
+
+ - kind: ConditionGroup
+ id: conditionGroup_wj4Qi3
+ conditions:
+ - id: conditionItem_m6AdDF
+ condition: =Global.Thu = "True"
+ actions:
+ - kind: SetVariable
+ id: qVjt09
+ variable: Topic.SelectedDays
+ value: =Concatenate(Topic.SelectedDays, "Thu,")
+
+ - kind: ConditionGroup
+ id: conditionGroup_16lha5
+ conditions:
+ - id: conditionItem_c4CRQ8
+ condition: =Global.Fri = "True"
+ actions:
+ - kind: SetVariable
+ id: pkUQIm
+ variable: Topic.SelectedDays
+ value: =Concatenate(Topic.SelectedDays, "Fri,")
+
+ - kind: ConditionGroup
+ id: conditionGroup_Ws8n6V
+ conditions:
+ - id: conditionItem_FyW2C8
+ condition: =Global.Sat = "True"
+ actions:
+ - kind: SetVariable
+ id: xc9I9o
+ variable: Topic.SelectedDays
+ value: =Concatenate(Topic.SelectedDays, "Sat")
+
+ - kind: SetVariable
+ id: XuMiMG
+ variable: Topic.SelectedDays
+ value: |-
+ =If(
+ EndsWith(Topic.SelectedDays, ","),
+ Replace(Topic.SelectedDays, Len(Topic.SelectedDays), 1, ""),
+ Topic.SelectedDays
+ )
+
+outputType:
+ properties:
+ SelectedDays:
+ displayName: SelectedDays
+ type: String
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.MultipleTopicsMatched/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.MultipleTopicsMatched/botcomponent.xml
new file mode 100644
index 00000000..9b98c848
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.MultipleTopicsMatched/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 9
+ This system topic triggers when the bot matches multiple Topics with the incoming message and needs to clarify which one should be triggered.
+ 1
+ Multiple Topics Matched
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.MultipleTopicsMatched/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.MultipleTopicsMatched/data
new file mode 100644
index 00000000..ef41126d
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.MultipleTopicsMatched/data
@@ -0,0 +1,43 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnSelectIntent
+ id: main
+ triggerBehavior: Always
+ actions:
+ - kind: SetVariable
+ id: setVariable_M6434i
+ variable: init:Topic.IntentOptions
+ value: =System.Recognizer.IntentOptions
+
+ - kind: SetTextVariable
+ id: setTextVariable_0
+ variable: Topic.NoneOfTheseDisplayName
+ value: None of these
+
+ - kind: EditTable
+ id: sendMessage_g5Ls09
+ changeType: Add
+ itemsVariable: Topic.IntentOptions
+ value: "={ DisplayName: Topic.NoneOfTheseDisplayName, TopicId: \"NoTopic\", TriggerId: \"NoTrigger\", Score: 1.0 }"
+
+ - kind: Question
+ id: question_zf2HhP
+ interruptionPolicy:
+ allowInterruption: false
+
+ alwaysPrompt: true
+ variable: System.Recognizer.SelectedIntent
+ prompt: "To clarify, did you mean:"
+ entity:
+ kind: DynamicClosedListEntity
+ items: =Topic.IntentOptions
+
+ - kind: ConditionGroup
+ id: conditionGroup_60PuXb
+ conditions:
+ - id: conditionItem_rs7GgM
+ condition: =System.Recognizer.SelectedIntent.TopicId = "NoTopic"
+ actions:
+ - kind: ReplaceDialog
+ id: YZXRDb
+ dialog: mpa_wellnessCopilot.topic.Fallback
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OnError/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OnError/botcomponent.xml
new file mode 100644
index 00000000..8a4d59b0
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OnError/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 9
+ This system topic triggers when the bot encounters an error. When using the test chat pane, the full error description is displayed.
+ 1
+ On Error
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OnError/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OnError/data
new file mode 100644
index 00000000..a5c01c31
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OnError/data
@@ -0,0 +1,44 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnError
+ id: main
+ actions:
+ - kind: SetVariable
+ id: setVariable_timestamp
+ variable: init:Topic.CurrentTime
+ value: =Text(Now(), DateTimeFormat.UTC)
+
+ - kind: ConditionGroup
+ id: condition_1
+ conditions:
+ - id: bL4wmY
+ condition: =System.Conversation.InTestMode = true
+ actions:
+ - kind: SendActivity
+ id: sendMessage_XJBYMo
+ activity: |-
+ Error Message: {System.Error.Message}
+ Error Code: {System.Error.Code}
+ Conversation Id: {System.Conversation.Id}
+ Time (UTC): {Topic.CurrentTime}
+
+ elseActions:
+ - kind: SendActivity
+ id: sendMessage_dZ0gaF
+ activity:
+ text:
+ - |-
+ An error has occurred.
+ Error code: {System.Error.Code}
+ Conversation Id: {System.Conversation.Id}
+ Time (UTC): {Topic.CurrentTime}.
+ speak:
+ - An error has occurred, please try again.
+
+ - kind: LogCustomTelemetryEvent
+ id: 9KwEAn
+ eventName: OnErrorLog
+ properties: "={ErrorMessage: System.Error.Message, ErrorCode: System.Error.Code, TimeUTC: Topic.CurrentTime, ConversationId: System.Conversation.Id}"
+
+ - kind: CancelAllDialogs
+ id: NW7NyY
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OptinoroutofWellnessReminders/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OptinoroutofWellnessReminders/botcomponent.xml
new file mode 100644
index 00000000..8029ed5d
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OptinoroutofWellnessReminders/botcomponent.xml
@@ -0,0 +1,10 @@
+
+ 9
+ 1
+ Opt in or out of Wellness Reminders
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OptinoroutofWellnessReminders/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OptinoroutofWellnessReminders/data
new file mode 100644
index 00000000..29b6228d
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.OptinoroutofWellnessReminders/data
@@ -0,0 +1,283 @@
+kind: AdaptiveDialog
+modelDescription: Allows a user to opt in or out of Wellness recommendations. This topic should only run if the user asks to opt in or out.
+beginDialog:
+ kind: OnRecognizedIntent
+ id: main
+ intent:
+ triggerQueries:
+ - opt in
+ - opt out
+
+ actions:
+ - kind: Question
+ id: question_AgG8eo
+ interruptionPolicy:
+ allowInterruption: true
+
+ variable: init:Global.optInStatus
+ prompt: Would you like to opt in or out of Wellness reminders? You can change your decision at any time by just asking me.
+ entity:
+ kind: EmbeddedEntity
+ definition:
+ kind: ClosedListEntity
+ items:
+ - id: Opt me in
+ displayName: Opt me in
+
+ - id: Opt me out
+ displayName: Opt me out
+
+ - kind: ConditionGroup
+ id: conditionGroup_QyXPvO
+ conditions:
+ - id: conditionItem_S9qrBq
+ condition: =Global.optInStatus = 'mpa_wellnessCopilot.topic.OptinoroutofWellnessReminders.main.question_AgG8eo'.'Opt me in'
+ actions:
+ - kind: AdaptiveCardPrompt
+ id: OExhAt
+ card: |-
+ {
+ "type": "AdaptiveCard",
+ "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
+ "version": "1.5",
+ "body": [
+ {
+ "type": "TextBlock",
+ "text": "Great! You’ve opted in for wellness recommendations. Now, let’s set a schedule that works best for you. Please choose the days you would like to receive reminders:",
+ "wrap": true
+ },
+ {
+ "type": "Input.Toggle",
+ "title": "Sun",
+ "id": "Sun"
+ },
+ {
+ "type": "Input.Toggle",
+ "title": "Mon",
+ "id": "Mon",
+ "value": "true"
+ },
+ {
+ "type": "Input.Toggle",
+ "title": "Tue",
+ "id": "Tue",
+ "value": "true"
+ },
+ {
+ "type": "Input.Toggle",
+ "title": "Wed",
+ "id": "Wed",
+ "value": "true"
+ },
+ {
+ "type": "Input.Toggle",
+ "title": "Thu",
+ "id": "Thu",
+ "value": "true"
+ },
+ {
+ "type": "Input.Toggle",
+ "title": "Fri",
+ "id": "Fri",
+ "value": "true"
+ },
+ {
+ "type": "Input.Toggle",
+ "title": "Sat",
+ "id": "Sat"
+ },
+ {
+ "type": "ColumnSet",
+ "columns": [
+ {
+ "type": "Column",
+ "width": "stretch",
+ "items": [
+ {
+ "type": "Input.ChoiceSet",
+ "id": "TIME",
+ "choices": [
+ {
+ "title": "1:00",
+ "value": "1:00"
+ },
+ {
+ "title": "2:00",
+ "value": "2:00"
+ },
+ {
+ "title": "3:00",
+ "value": "3:00"
+ },
+ {
+ "title": "4:00",
+ "value": "4:00"
+ },
+ {
+ "title": "5:00",
+ "value": "5:00"
+ },
+ {
+ "title": "6:00",
+ "value": "6:00"
+ },
+ {
+ "title": "7:00",
+ "value": "7:00"
+ },
+ {
+ "title": "8:00",
+ "value": "8:00"
+ },
+ {
+ "title": "9:00",
+ "value": "9:00"
+ },
+ {
+ "title": "10:00",
+ "value": "10:00"
+ },
+ {
+ "title": "11:00",
+ "value": "11:00"
+ },
+ {
+ "title": "12:00",
+ "value": "12:00"
+ }
+ ],
+ "value": "11:00"
+ }
+ ]
+ },
+ {
+ "type": "Column",
+ "width": "stretch",
+ "items": [
+ {
+ "type": "Input.ChoiceSet",
+ "id": "AMPM",
+ "choices": [
+ {
+ "title": "AM",
+ "value": "AM"
+ },
+ {
+ "title": "PM",
+ "value": "PM"
+ }
+ ],
+ "value": "AM"
+ }
+ ]
+ }
+ ]
+ }
+ ],
+ "actions": [
+ {
+ "type": "Action.Submit",
+ "title": "Submit"
+ }
+ ]
+ }
+ output:
+ binding:
+ actionSubmitId: Topic.actionSubmitId
+ AMPM: Topic.AMPM
+ Fri: Global.Fri
+ Mon: Global.Mon
+ Sat: Global.Sat
+ Sun: Global.Sun
+ Thu: Global.Thu
+ TIME: Topic.TIME
+ Tue: Global.Tue
+ Wed: Global.Wed
+
+ outputType:
+ properties:
+ actionSubmitId: String
+ AMPM: String
+ Fri: String
+ Mon: String
+ Sat: String
+ Sun: String
+ Thu: String
+ TIME: String
+ Tue: String
+ Wed: String
+
+ - kind: SetVariable
+ id: setVariable_dGh22M
+ variable: Topic.TimeOfDay
+ value: =Concatenate(Topic.TIME, " ", Topic.AMPM)
+
+ - kind: BeginDialog
+ id: OFHkHp
+ input: {}
+ dialog: mpa_wellnessCopilot.topic.HandleWeekdaySelection
+ output:
+ binding:
+ SelectedDays: Topic.SelectedDays
+
+ - kind: InvokeFlowAction
+ id: invokeFlowAction_4X3vMO
+ input:
+ binding:
+ boolean: =true
+ boolean_1: =false
+ text: =System.User.PrincipalName
+ text_1: =Topic.SelectedDays
+ text_2: =Topic.TimeOfDay
+ text_3: =System.Conversation.LocalTimeZone
+
+ output:
+ binding:
+ message: Topic.OptInMessage
+ success: Topic.OptInSuccess
+
+ flowId: 991487ec-770c-ef11-9f89-00224834774f
+
+ - kind: SendActivity
+ id: sendActivity_tLZiPj
+ activity: "{Topic.OptInMessage}"
+
+ - id: conditionItem_qEOyjI
+ condition: =Global.optInStatus = 'mpa_wellnessCopilot.topic.OptinoroutofWellnessReminders.main.question_AgG8eo'.'Opt me out'
+ actions:
+ - kind: InvokeFlowAction
+ id: aROdYA
+ input:
+ binding:
+ boolean: =false
+ boolean_1: =false
+ text: =System.User.PrincipalName
+ text_1: "=\"\""
+ text_2: "=\"\""
+ text_3: =System.Conversation.LocalTimeZone
+
+ output:
+ binding:
+ message: Topic.OptOutMessage
+ success: Topic.OptOutSuccess
+
+ flowId: 991487ec-770c-ef11-9f89-00224834774f
+
+ - kind: SendActivity
+ id: sendActivity_9ejdhR
+ activity: "{Topic.OptOutMessage}"
+
+ elseActions:
+ - kind: SendActivity
+ id: sendActivity_tuTM1i
+ activity: I didn't understand, please try again.
+
+ - kind: GotoAction
+ id: ROQdmh
+ actionId: question_AgG8eo
+
+ - kind: ClearAllVariables
+ id: Vqpjhc
+
+ - kind: EndDialog
+ id: d0sdXi
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ResetConversation/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ResetConversation/botcomponent.xml
new file mode 100644
index 00000000..89fc6cc4
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ResetConversation/botcomponent.xml
@@ -0,0 +1,10 @@
+
+ 9
+ 1
+ Reset Conversation
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ResetConversation/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ResetConversation/data
new file mode 100644
index 00000000..74437e45
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ResetConversation/data
@@ -0,0 +1,22 @@
+kind: AdaptiveDialog
+startBehavior: UseLatestPublishedContentAndCancelOtherTopics
+beginDialog:
+ kind: OnSystemRedirect
+ id: main
+ actions:
+ - kind: SendActivity
+ id: sendMessage_OPsT1O
+ activity:
+ text:
+ - What can I help you with?
+ quickReplies:
+ - kind: MessageBack
+ title: What can I ask?
+ text: What can I ask?
+
+ - kind: ClearAllVariables
+ id: clearAllVariables_73bTFR
+ variables: ConversationScopedVariables
+
+ - kind: CancelAllDialogs
+ id: cancelAllDialogs_12Gt21
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Search/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Search/botcomponent.xml
new file mode 100644
index 00000000..be085d4a
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Search/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 9
+ Create generative answers from data sources.
+ 1
+ Conversational boosting
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Search/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Search/data
new file mode 100644
index 00000000..8144986a
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Search/data
@@ -0,0 +1,43 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnUnknownIntent
+ id: main
+ priority: -1
+ actions:
+ - kind: SearchAndSummarizeContent
+ id: QXg54J
+ userInput: =System.Activity.Text
+ variable: Topic.Answer
+ moderationLevel: High
+ tone: Friendly
+ additionalInstructions: |-
+ Do not suggest specific products.
+ Do not suggest specific apps.
+ sharePointSearchDataSource: {}
+ knowledgeSources:
+ kind: SearchSpecificKnowledgeSources
+ knowledgeSources:
+ - mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.0
+ - mpa_wellnessCopilot.knowledge.searchcontent.PublicSiteSearch.1
+
+ - kind: ConditionGroup
+ id: has-answer-conditions
+ conditions:
+ - id: has-answer
+ condition: =!IsBlank(Topic.Answer)
+ actions:
+ - kind: BeginDialog
+ id: VDlm4d
+ dialog: mpa_wellnessCopilot.topic.CheckifHelpful
+
+ - kind: EndDialog
+ id: end-topic
+ clearTopicQueue: true
+
+ elseActions:
+ - kind: BeginDialog
+ id: pjhdOO
+ dialog: mpa_wellnessCopilot.topic.Fallback
+
+ - kind: CancelAllDialogs
+ id: Op9oe9
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Signin/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Signin/botcomponent.xml
new file mode 100644
index 00000000..30d3899c
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Signin/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 9
+ This system topic triggers when the bot needs to sign in the user or require the user to sign in
+ 1
+ Sign in
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Signin/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Signin/data
new file mode 100644
index 00000000..7fead1c9
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Signin/data
@@ -0,0 +1,19 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnSignIn
+ id: main
+ actions:
+ - kind: ConditionGroup
+ id: conditionGroup_ypjGKL
+ conditions:
+ - id: conditionItem_7XYIIR
+ condition: =System.SignInReason = SignInReason.SignInRequired
+ actions:
+ - kind: SendActivity
+ id: sendMessage_1jHUNO
+ activity: Hello! To be able to help you, I'll need you to sign in.
+
+ - kind: OAuthInput
+ id: gOjhZA
+ title: Login
+ text: To continue, please login
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.StartOver/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.StartOver/botcomponent.xml
new file mode 100644
index 00000000..d84d4010
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.StartOver/botcomponent.xml
@@ -0,0 +1,10 @@
+
+ 9
+ 1
+ Start Over
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.StartOver/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.StartOver/data
new file mode 100644
index 00000000..ef9b7099
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.StartOver/data
@@ -0,0 +1,35 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnRecognizedIntent
+ id: main
+ intent:
+ displayName: Start Over
+ includeInOnSelectIntent: false
+ triggerQueries:
+ - let's begin again
+ - start over
+ - start again
+ - restart
+
+ actions:
+ - kind: Question
+ id: question_zguoVV
+ alwaysPrompt: false
+ variable: init:Topic.Confirm
+ prompt: Are you sure you want to restart the conversation?
+ entity: BooleanPrebuiltEntity
+
+ - kind: ConditionGroup
+ id: conditionGroup_lvx2zV
+ conditions:
+ - id: conditionItem_sVQtHa
+ condition: =Topic.Confirm = true
+ actions:
+ - kind: BeginDialog
+ id: 0YKYsy
+ dialog: mpa_wellnessCopilot.topic.ResetConversation
+
+ elseActions:
+ - kind: SendActivity
+ id: sendMessage_lk2CyQ
+ activity: Ok. Let's carry on.
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ThankYou/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ThankYou/botcomponent.xml
new file mode 100644
index 00000000..35d4f69a
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ThankYou/botcomponent.xml
@@ -0,0 +1,11 @@
+
+ 9
+ This topic triggers when the user says thank you.
+ 1
+ Thank you
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ThankYou/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ThankYou/data
new file mode 100644
index 00000000..2363ef95
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.ThankYou/data
@@ -0,0 +1,17 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnRecognizedIntent
+ id: main
+ intent:
+ displayName: Thank you
+ includeInOnSelectIntent: false
+ triggerQueries:
+ - thanks
+ - thank you
+ - thanks so much
+ - ty
+
+ actions:
+ - kind: SendActivity
+ id: sendMessage_9iz6v7
+ activity: You're welcome.
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled/botcomponent.xml
new file mode 100644
index 00000000..4ba573c2
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled/botcomponent.xml
@@ -0,0 +1,10 @@
+
+ 9
+ 1
+ Goals
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled/data
new file mode 100644
index 00000000..57ba76ec
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled/data
@@ -0,0 +1,29 @@
+kind: AdaptiveDialog
+modelDescription: "This topic should respond to something a user would say that contains the word \"goal\". It should not respond to anything that contains a question mark \"?\". Examples of things a user would ask this topic are: \"I want to create a goal to improve my sleep schedule.\", \"How can I create a mindfulness goal?\", and \"My goal is to eat healthier.\"."
+beginDialog:
+ kind: OnRecognizedIntent
+ id: main
+ intent:
+ triggerQueries:
+ - goal
+ - create a goal
+ - set a goal
+ - recommend a goal
+ - my goal
+
+ actions:
+ - kind: BeginDialog
+ id: hS1FF7
+ input:
+ binding:
+ Goal: =System.Activity.Text
+
+ dialog: mpa_wellnessCopilot.component.msdynaib_GoalWritingTipsV2-msdynaib_GoalWritingTipsV2
+ output:
+ binding:
+ finishReason: Topic.finishReason
+ text: Topic.text
+
+ - kind: BeginDialog
+ id: 3PPV5D
+ dialog: mpa_wellnessCopilot.topic.CheckifHelpful
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled_xYq/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled_xYq/botcomponent.xml
new file mode 100644
index 00000000..d80ff589
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled_xYq/botcomponent.xml
@@ -0,0 +1,10 @@
+
+ 9
+ 1
+ Change Opt In Schedule
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled_xYq/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled_xYq/data
new file mode 100644
index 00000000..387b82c1
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.Untitled_xYq/data
@@ -0,0 +1,27 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnRecognizedIntent
+ id: main
+ intent:
+ triggerQueries:
+ - change time
+ - change schedule
+ - change opt in settings
+
+ actions:
+ - kind: SetVariable
+ id: setVariable_mYMl9O
+ variable: Global.optInStatus
+ value:
+ kind: OptionDataValue
+ type:
+ kind: EmbeddedOptionSet
+ dialogSchemaName: mpa_wellnessCopilot.topic.OptinoroutofWellnessReminders
+ triggerId: main
+ actionId: question_AgG8eo
+
+ value: Opt me in
+
+ - kind: BeginDialog
+ id: olHZoe
+ dialog: mpa_wellnessCopilot.topic.OptinoroutofWellnessReminders
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.WhatCanIAsk/botcomponent.xml b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.WhatCanIAsk/botcomponent.xml
new file mode 100644
index 00000000..66ee323e
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.WhatCanIAsk/botcomponent.xml
@@ -0,0 +1,10 @@
+
+ 9
+ 1
+ What Can I Ask
+
+ mpa_wellnessCopilot
+
+ 0
+ 1
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.WhatCanIAsk/data b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.WhatCanIAsk/data
new file mode 100644
index 00000000..9fe19f1b
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/botcomponents/mpa_wellnessCopilot.topic.WhatCanIAsk/data
@@ -0,0 +1,42 @@
+kind: AdaptiveDialog
+beginDialog:
+ kind: OnRecognizedIntent
+ id: main
+ intent:
+ triggerQueries:
+ - what can I ask you
+ - help me with something
+ - give me information
+ - answer my questions
+ - tell me more
+ - what do you know about
+ - can you assist me with something
+ - I need your expertise on something
+ - guide me through this topic
+
+ actions:
+ - kind: SendActivity
+ id: sendActivity_xXlQkP
+ activity:
+ text:
+ - |-
+ Here is a list of sample questions or things you can try to ask me.
+
+ In addition to questions like these, you can also ask me to help you create a goal. Simply ask "I want to write a goal about..." and mention the goal you'd like to create.
+
+ Also, you can manage in your Pulse Check preferences by Opting-In or Opting-Out.
+ quickReplies:
+ - kind: MessageBack
+ text: Opt in
+
+ - kind: MessageBack
+ text: Opt out
+
+ - kind: MessageBack
+ text: How do I get better sleep?
+
+ - kind: MessageBack
+ text: How do I deal with burnout?
+
+ - kind: MessageBack
+ text: Help me write a wellness goal.
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/bots/mpa_wellnessCopilot/bot.xml b/Solutions/mpa_Wellness/src/bots/mpa_wellnessCopilot/bot.xml
new file mode 100644
index 00000000..3f256adc
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/bots/mpa_wellnessCopilot/bot.xml
@@ -0,0 +1,28 @@
+
+ 2
+ 1
+ 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
+ 1
+ 1033
+ Wellness Copilot
+ 0
+ {
+ "contentVersion": 2,
+ "lastFinishedPublishOperation": {
+ "operationStart": "2024-06-14T17:12:21.2314453Z",
+ "operationEnd": "2024-06-14T17:13:07.9492906Z",
+ "status": "Succeeded"
+ },
+ "currentSynchronizationState": {
+ "botRegistration": {
+ "applicationId": "dc465170-79c2-4a74-83d5-f0fbee62a242",
+ "isAppAvailableInTenant": true
+ },
+ "provisioningStatus": "Provisioned",
+ "state": "Synchronized"
+ },
+ "lastSynchronizedOnUtc": "2024-06-14T17:13:22.2448696Z"
+}
+ default-2.0.1
+ 4
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/bots/mpa_wellnessCopilot/configuration.json b/Solutions/mpa_Wellness/src/bots/mpa_wellnessCopilot/configuration.json
new file mode 100644
index 00000000..bfa06cf6
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/bots/mpa_wellnessCopilot/configuration.json
@@ -0,0 +1,16 @@
+{
+ "$kind": "BotConfiguration",
+ "settings": {
+ "CopilotInstructions": "Operate as a wellness assistant which helps users improve as a lifelong guide to better mental health and overall wellness. Provide appropriate resources based on their responses. Evaluate common concerns and address them using evidence-based information. Behavior should align with values such as prioritizing members, approaching interactions with empathy, providing accurate information, and taking ownership. Your responses should polite, respectful, and empathetic.",
+ "GenerativeActionsEnabled": false
+ },
+ "publishOnImport": false,
+ "gPTSettings": {
+ "$kind": "GPTSettings",
+ "defaultSchemaName": "mpa_wellnessCopilot.gpt.default"
+ },
+ "aISettings": {
+ "$kind": "AISettings",
+ "useModelKnowledge": true
+ }
+}
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapi.xml b/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapi.xml
new file mode 100644
index 00000000..a84e89d3
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapi.xml
@@ -0,0 +1,18 @@
+
+ 0
+ 0
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ GoalWritingTipsV2
+
+ 727e8789-bd29-46fa-b00a-3a49605eeb06
+
+ 0
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapirequestparameters/Goal/customapirequestparameter.xml b/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapirequestparameters/Goal/customapirequestparameter.xml
new file mode 100644
index 00000000..3fb70f28
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapirequestparameters/Goal/customapirequestparameter.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+ 1
+ 0
+ msdyn_aibdpt.Goal
+ 10
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapiresponseproperties/finishReason/customapiresponseproperty.xml b/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapiresponseproperties/finishReason/customapiresponseproperty.xml
new file mode 100644
index 00000000..7eee4aef
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapiresponseproperties/finishReason/customapiresponseproperty.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+ 1
+ msdyn_aibdpt.finishReason
+ 10
+
\ No newline at end of file
diff --git a/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapiresponseproperties/text/customapiresponseproperty.xml b/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapiresponseproperties/text/customapiresponseproperty.xml
new file mode 100644
index 00000000..b985af54
--- /dev/null
+++ b/Solutions/mpa_Wellness/src/customapis/msdyn_aibdptgoalwritingtipsv22dee680301d84111a4d411c31a500c07/customapiresponseproperties/text/customapiresponseproperty.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+ 1
+ msdyn_aibdpt.text
+ 10
+
\ No newline at end of file
diff --git a/Solutions/solutions.proj b/Solutions/solutions.proj
index 574a25b3..74bc8124 100644
--- a/Solutions/solutions.proj
+++ b/Solutions/solutions.proj
@@ -10,6 +10,7 @@
+
@@ -20,7 +21,7 @@
-
+
-
+
\ No newline at end of file