Browse Guides

A Break down of the Automated Statement of Work Generation & AI Project task Creation
Reading mode
Copy Link
Link Copied!
Print
Feedback
This guide has multiple versions available:
<style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } /*magic fix? - was not*/ /* /* Hide the link if Site A structure exists */ .HideOnHaloServiceDesk:has(~ .read-value.rich p#target) { display: none; } /* Hide the link if Site B structure exists */ .HideOnUseHalo:has(~ .guide-resolution p#target) { display: none; } */ </style><p><strong>In this guide we will cover:</strong></p><p class="HideOnUseHalo"><a target="_self" href="#SoW" rel="noopener noreferrer"><strong>- Automated SoW Creation - The Breakdown</strong></a></p><p><a target="_self" href="/kb?id=2571#Task" rel="noopener noreferrer"><strong>- AI Project Task Creation - The Breakdown</strong></a></p><p><br></p><p>The statement of work against your opportunity tickets in Halo can now be generated automatically based on the services you are quoting the customer for.&nbsp;</p><p><br></p><p>If the opportunity is for a project, you can then have the tasks for the project be generated automatically based on the SoW. This process uses AI to evaluate the SoW for the project and create project tasks based on this evaluation.&nbsp;</p><p><br></p><p>The out of the box functionality mainly works using runbooks that are available in instances of HaloPSA that were created after January 2025, to find details on how to use the OOTB process please refer to this guide: <a href="https://usehalo.com/halopsa/guides/2482/" target="_blank" rel="noopener noreferrer" style="font-size: 11pt;">Automated Statement of Work Generation and AI Project task Creation</a>. If your Halo instance was created before this date, or if you are using a different Halo product (ITSM, CRM), you can use this guide to set up the functionality for yourself, or you can contact our support desk about having this functionality set up in your instance for you.</p><p><br></p><p>In this guide we will cover how the process&#39;s automations are configured, and how you could make this process further fit to your specific needs, by breaking down the functionality and exposing the customisable components. The majority of this guide focuses on runbook functionality, if you are unfamiliar with runbooks or wish to learn more about them, please refer to this guide: <a href="https://usehalo.com/halopsa/guides/1630" target="_blank" rel="noopener noreferrer">Custom Integrations/Runbooks</a>.</p><p><br></p><p><br></p><p id="SoW"><strong><span style="font-size: 14pt;">Automated SoW Creation - The Breakdown</span></strong></p><p>The statement of work creation should only take place once you have created a quotation from your opportunity ticket.</p><p><br></p><p>The automation that drives the statement of work creation is a custom integration runbook comprising of only two requests to Halo&#39;s API out of the box. To find the runbook in question navigate to configuration &gt; integrations &gt; custom integrations, and then click into &#39;Integration Runbooks&#39;. Within the appearing list, you will find a runbook called &#39;SoW Generation from Quote&#39;.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU3YzExZmQxLTYwNTctNGJjOC1iODExLWY4ZDg3NDY4MTI1NiJ9.GzMe_2Cx55yhjX1sYNQ9vx2FqvljmMG8Tu5AWJmOMuo" class="fr-fic fr-fil fr-dib" width="376" style="width: 378px; height: 226.8px;" height="227"></p><p><strong><span style="font-size: 10pt;">Fig 1. The out of the box &#39;SoW Generation from Quote&#39; runbook</span></strong></p><p><br></p><p>There are three pre-requisites for ensuring this runbook can run without error:&nbsp;</p><ul><li>there must be a statement of work populated against at least one of the products listed on your quote, as shown in figure 2</li><li>there must a &#39;Primary Quote&#39; field on your opportunity ticket, visible in figure 4</li><li>there must be a field on your opportunity ticket to which the SoW can be posted</li></ul><p><strong><em>Note: having more than one product with a populated SoW on your quotes will allow for a more advanced SoW overall</em></strong></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZjNDA1NDBiLWUxMTAtNDBlOC1hMjY0LTNiN2FjYzRjMjY5NyJ9.SeYQgEJNkC5hJFihgEWpxVvdfqsXtxkqA2Wi8eimXC8" class="fr-fic fr-fil fr-dib" width="455" style="width: 457px; height: 295.125px;" height="295"></p><p><strong><span style="font-size: 10pt;">Fig 2. A populated statement of work tab against a product</span></strong></p><p><br></p><p>For a runbook to run, it requires an event or action to trigger it. Out of the box, the trigger for this runbook is the &#39;Generate SoW&#39; action on the &#39;Opportunity Management With SoW Generation&#39; workflow (figure 3).&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIyMGRiZjFkLTRlYTAtNDE3NS1hOTZmLTY2Mzg0OWEwM2ViNiJ9.vjie07ns78dVz7cvmyDsLM74CNloatOx38L95id_-W0" class="fr-fic fr-fil fr-dib" width="494" style="width: 496px; height: 168.967px;" height="169"></p><p><strong><span style="font-size: 10pt;">Fig 3. The trigger for the SoW generation runbook</span></strong></p><p><br></p><p>When this action button is selected on the opportunity ticket it brings up two fields, the &#39;Primary Quote&#39; field and the &#39;Project Task Creation Method&#39;. The latter field relates to the second automation discussed in this guide, but the former determines for which quotation the SoW creation will run. The &#39;Primary Quote&#39; field is a dynamic list field using SQL to provide a list of quotes linked to the opportunity ticket (figure 5).&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjEyYzUwZjkyLTg2ODEtNDBlMi05OGMzLTUzNzA2OWRjMzYwYSJ9.3tshx5DniYcZiT66_phAQNYgIwzLDGx28L4ZibZpPFk" class="fr-fic fr-fil fr-dib" width="460" style="width: 462px; height: 318.236px;" height="318"></p><p><strong><span style="font-size: 10pt;">Fig 4. The &#39;Generate SoW&#39; trigger action on the out of the box SoW generation opportunity workflow</span></strong></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjZmNDNjZTBlLWMxZTItNGI2Ni1hMTFmLTM4M2YxYTY1ZTFjYyJ9.D116ukC-00k4fORyIdFm_BzDuXofiWP_GtfXaUUL8RE" class="fr-fic fr-fil fr-dib" width="235" style="width: 237px; height: 307.023px;" height="307"></p><p><strong><span style="font-size: 10pt;">Fig 5. The configuration for the &#39;Primary Quote&#39; field including the necessary SQL</span></strong></p><p><br></p><p>Once the runbook is triggered, the first step will run. To view what a runbook step is configured to do, as illustrated in figure 6, click into the &#39;Flow Chart&#39; tab of the runbook, &#39;edit&#39; the page and then click the edit icon of the step you wish to view.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjAyM2U1ZjU1LTY4MjgtNDEzNC04NTY2LWZkMzJhZGQwNDc2OSJ9.oNfh5eILmIxAbhQQ5zE0p48ZqlV9Ns19uAT3P3WGDcw" class="fr-fic fr-fil fr-dib" width="418" style="width: 420px; height: 294.894px;" height="295"></p><p><strong><span style="font-size: 10pt;">Fig 6. How to view and edit a runbook step</span></strong></p><p><br></p><p data-pasted="true">Out of the box, this first request runs an existing action in the system by posting the action&#39;s ID to the opportunity ticket.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM0NjJhYTk5LWU3M2UtNDRmOC1hYjc5LWM2MDU1NjE0ZjIwYSJ9.DF185REoh4_V5fjgOij-1Ui8T7k0aE8yq-CecuHdAbE" class="fr-fic fr-fil fr-dib" width="368" style="width: 370px; height: 232.571px;" height="233"></p><p><strong><span style="font-size: 10pt;">Fig 7. The first step of the SoW Creation runbook that posts an action to the opportunity</span></strong></p><p><br></p><p>This action runs the SoW Generation Report against the ticket, the configuration for the action can be seen in figure 8 and an example of the output can be seen in figure 10. This report takes the data from the quotation selected in the &#39;Primary Quote field&#39;, combines the Statements of Work from each product on the quotation, and comma separates them (figure 9).</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImY4ZWM2NjZkLWU3OWUtNDE0My04Y2UxLTUxYzAwZTA3NjRjZSJ9.BMMVJQ3CP7SkVS_9dkHXThQ0xpl1hPn2hJKmtxXp3I8" class="fr-fic fr-fil fr-dib" width="271" style="width: 273px; height: 229.959px;" height="230"></p><p><strong><span style="font-size: 10pt;">Fig 8. The configuration of the &#39;Generate SoW Report&#39; action</span></strong></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijg0MjBkODQzLTlkMmUtNGUxMi04MzVjLTZhOTZlN2Q4MzRiOSJ9.kv5Y9Hd4rdXQRBABBXq0KOHfXvU5dHlmL5fXyEzoPrE" class="fr-fic fr-fil fr-dib" width="372" style="width: 374px; height: 236.893px;" height="237"></p><p><strong><span style="font-size: 10pt;">Fig 9. The SQL that is run in the out of the box SoW Generation report</span></strong></p><p><br></p><p><strong><em>Note: At this point you have the opportunity for customisation. Depending on the level of your SQL knowledge, you could customise the existing report or rewrite it entirely. For example, you could add supplementary text surrounding the statements of work, or add text between the statements of work to make them more fluently join together.</em></strong></p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjkxY2E5ZDQxLTZkNmItNGNkYi1hNTg3LWRmODM0YTgxMTYzMyJ9.9vmd5oH726E3o4HCCYXVlSm1sDupheU9HAdeta--wvA" class="fr-fic fr-fil fr-dib" width="314" style="width: 316px; height: 290.586px;" height="291"></p><p><strong><span style="font-size: 10pt;">Fig 10. The action will post the results of the report to the opportunity ticket</span></strong></p><p><br></p><p>In this same step of the runbook, a variable is created that will contain the result of the report which is posted to the opportunity ticket.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImRjMzJlNTczLTk1YzctNGUzZS04ZWZlLThlMTY4MjZiODVlNCJ9.8x4yufTunFGxX0ycdGbxMUTgza3AxInw3IFhz8n7kQU" class="fr-fic fr-fil fr-dib" width="461" style="width: 463px; height: 88.9484px;" height="89"></p><p><strong><span style="font-size: 10pt;">Fig 11. The output variable containing the full SoW</span></strong></p><p><br></p><p>The second action of the runbook then posts this variable to the SoW custom field on the opportunity ticket.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImQ2NjU4ZDFmLWRhMzYtNGE3YS05NWE2LTc5YWNhZTZiMTA5MiJ9.NdhQzvOMNSWGEK6LP2Onhg_YvDkH4zHMd1tbowdvs24" class="fr-fic fr-fil fr-dib" width="394" style="width: 396px; height: 301.217px;" height="301"></p><p><strong><span style="font-size: 10pt;">Fig 12. The second API request of the runbook that posts the full SoW to the custom field on the opportunity</span></strong></p><p><br></p><p><strong><em>Note: If you wanted to add more advanced customisation into this runbook, you could add a step in-between steps 1 &amp; 2 that feeds the comma separated SoWs through to AI and prompt it to create a more fluent/combined statement of work.</em></strong></p><p><br></p><p><br></p><p><br></p><p id="Task"><strong><span style="font-size: 14pt;">AI Project Task Creation - The Breakdown</span></strong></p><p><strong><em>Note: To utilise this runbook, as AI runbooks are not available to use with the default Halo connection, you will need to set up your own OpenAI connection.</em></strong></p><p><br></p><p>As with the Statement of Work Creation, the driving force behind the AI Project Task Creation is a custom integration runbook. You can find it in the same area as the SoW generation runbook (configuration &gt; integration &gt; custom integrations &gt; integration runbooks), and it is called &#39;AI Project Task Creation&#39;.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImIyYzM4ZDZkLTYxNjItNDg5YS05ZjQ3LTg2YmZhNDNlYTRiNCJ9.ZdkfanxYBvNWoshK4wHD7wMrOwynmDMSOf1O9jwihj4" class="fr-fic fr-fil fr-dib" width="455" style="width: 457px; height: 221.167px;" height="221"></p><p><strong><span style="font-size: 10pt;">Fig 13. The out of the box AI Project Task Creation runbook</span></strong></p><p><br></p><p>There is only one essential pre-requisite for the out of the box process, and this is to have a Statement of Work populated against the relevant entity - if you are creating the project from the sales order then the SoW needs to be populated on the linked opportunity, otherwise the SoW needs to be set on the project template. For more information on this, <a href="https://usehalo.com/halopsa/guides/2482/" target="_blank" rel="noopener noreferrer">please see the first guide on this topic</a>.</p><p><br></p><p>This runbook is triggered by an event rather than an action. This event is a new project ticket being logged and the &#39;Project Task Creation Method&#39; field that we saw earlier being set to &#39;AI - From SoW&#39; (figure 14).&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjU0OWQxZjdiLTZjOTEtNDYwMS1hN2NkLWIwMWQ3MjMxNDNmNiJ9.AYXNZ_3Iy9A44pDKVCWgfIyzJNPe-9iuM6g8spzWjgo" class="fr-fic fr-fil fr-dib" width="327" style="width: 329px; height: 266.824px;" height="267"></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MTdmMzVlLTczZTMtNGJhYi1hMDkzLWM4MjNhNmNmMjRhNCJ9.K8ww4pUhRlIpe-lEs-DtQo9K_k7TBvQvF59vSW1YpO4" class="fr-fic fr-fil fr-dib" width="278" style="width: 280px; height: 188.599px;" height="189"></p><p><strong><span style="font-size: 10pt;">Fig 14. The event to trigger the AI Project Task Creation runbook</span></strong></p><p><br></p><p>The out of the box runbook comprises of three types of actions. The first step is a custom integration method that integrates with OpenAI. This method posts the project start date and the statement of work through to OpenAI along with a prompt to respond in a JSON Array containing data for creation of the project tasks.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijg5ZDU0Yjg3LTY1MTQtNDU0MS05ODgxLTFiOWY4NWFiZGU1YiJ9.bvGeAn6Q9Ew7xi-LVaqVTu4afdZbs3AXtjjosbvMAwU" class="fr-fic fr-fil fr-dib" width="501" style="width: 503px; height: 228.165px;" height="228"></p><p><strong><span style="font-size: 10pt;">Fig 15. The out of the box prompt for project task creation</span></strong></p><p><br></p><p>There is an opportunity here for customisation. Out of the box, the prompt is broad and made to suit a wide variety of businesses, however you may wish to make yours specific to your business and projects. For example, you will notice that the prompt does not contain any information on the type of company providing the SoW, including this information would personalise the project task creation further. You may also notice that the prompt out of the box is very literal - it tells the AI to take each individual bullet point of the statement of work and make it a project task. You may wish to allow the AI more freedom to think for itself. In this case you would ask it to read the entire SoW and then suggest tasks based on the whole SoW, where some bullet points of the SoW may be combined or placed in a different order. You may wish to ask the AI to suggest milestone names instead of hard coding them into the prompt, or you may wish to ask it to estimate the time budgets for the tasks.</p><p><br></p><p>If you do decide to customise the prompt to AI, there are three important recommendations to note:</p><ul><li>The prompt itself is held within the &#39;content&#39; element visible in figure 15, meaning nothing else outside of this element needs to be changed in order to customise the prompt.&nbsp;</li><li>Highlighted in yellow in figure 15 are instructions to the AI on how to format the response returned from OpenAI, it is advisable to leave these elements of the prompt in order to avoid unnecessary error.</li><li>Highlighted in green in figure 15 are instructions on how to format the elements of the tasks in the AI&#39;s response, instructing it to format them as &#39;keys&#39;. It is recommended to leave this instruction and build on it, as it then means that you can create any new variables in the same format as the existing variables (figure 18). Therefore, if you want to change or rename the elements which the AI returns, you would change it in the highlighted green section and then follow up with an instruction for that element in the next section. For example, highlighted in green in figure 15, the AI is instructed to return a &#39;<em>name</em>&#39; key. In the following section, it is then instructed on what the &#39;name&#39; key&#39;s value should be: &quot;<em>The &lsquo;name&rsquo; key has a value based on the title of the bullet point and it should have the duration stripped out so it is just the text of the title</em>&quot; - it is advisable to follow this format for each &#39;key&#39; that you introduce or change in the prompt. Remember that your prompt is in reference to the statement of work being sent through, so it is best to ensure that any change or new instruction makes sense in the content of your SoWs.</li></ul><p>A variable is then created at this same stage of the runbook to contain the entire response to the prompt from OpenAI, you can find the format for this variable in figure 16. The data type for the variable is &#39;Array&#39; because we asked the AI to return it&#39;s response in a JSON Array.&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImMzZjI2YzdhLWIyMjktNDk4NS1iNDYwLWFlMjA3NDU4NDQ5MyJ9.0y1G0q9OTupoPRcHhOBVoqjqazIOdlPU5mpUDselJVA" class="fr-fic fr-fil fr-dib" width="460" style="width: 462px; height: 180.865px;" height="181"></p><p><strong>Fig 16. Creation of the variable for containing the AI&#39;s entire response to the project task creation prompt</strong></p><p><br></p><p>The next step of the runbook begins the &#39;Array Iteration&#39;, telling the system to go through the provided list of objects one by one and perform an action for each of them. In the case of this runbook, this means it will create the project tasks one by one as it moves through each item in the array.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjhmMjNiNGVmLTc2ZGItNGNhNS1iNzk5LThhZGVhN2I3OGU0NSJ9.bAWs0V82J0hli4Mz_Im1dUkK2tXXzz_YJUVwiCPw4gc" class="fr-fic fr-fil fr-dib" width="497" style="width: 499px; height: 316.334px;" height="316"></p><p><strong><span style="font-size: 10pt;">Fig 17. Start of the array iteration in the AI Project Task Creation runbook</span></strong></p><p><br></p><p>At this same step, variables are created for the individual aspects of the tasks. Out of the box, only two variables are created - Summary and Details (figure 18).&nbsp;</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjBkZWMyNDQyLTY3ODEtNDFmOS05NjQyLWZiNWNlMzUxMTI5ZCJ9.EmYPDC2q-e_KIonasBfcwzybINGJuAs7_UvyxPve4lk" class="fr-fic fr-fil fr-dib" width="508" style="width: 510px; height: 109.078px;" height="109"></p><p><strong><span style="font-size: 10pt;">Fig 18. The variables created at Step 2 of the AI Project Task Creation runbook out of the box</span></strong></p><p><br></p><p><strong><em>Note: In order to fully utilise the prompt you will need to create further variables for any other elements of the tasks that you prompted the AI for, and you would create these new variables using the same format as the two provided in Figure 18. For example, to create a variable for the milestones you would set the Data type to &#39;String&#39; and the value would be response^milestone. For further guidance on creating runbook variables please see this guide: <a href="https://usehalo.com/halopsa/guides/2736" target="_blank" rel="noopener noreferrer">Runbook Level Variables</a>.</em></strong></p><p><br></p><p>The following step of the runbook creates the project tasks, see figure 19. Out of the box, it creates a ticket using the project task ticket type, sets the end-user to the same as the opportunity ticket, sets the parent ticket ID to the opportunity ticket, and then populates other fields on the task with the variables created in the previous step. You would add into this payload any additional variables that you created in the previous step.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjM3OGE5YTY3LTE1OTctNDIzYi05N2ZhLWFhMzk2YTcxMjIwOCJ9.o9_oCR8zvTySFJ5IyvY6y17sFBAcioBgIDbtfXFf23Q" class="fr-fic fr-fil fr-dib" width="467" style="width: 469px; height: 286.231px;" height="286"></p><p><strong><span style="font-size: 10pt;">Fig 19. The payload used to create the project tasks in the out of the box AI Project Task Creation runbook</span></strong></p><p><br></p><p>The last action in the runbook is a step to either continue with the next item or finish the array iteration. This is an important step that ensures every task is created instead of only the first.</p><p><br></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjI1ODU5Mzk2LTJkMGEtNGU4YS1hYWI3LWU5MzZjMzY0MDBiNiJ9.CipyLiC1S949Fpc-1QpOi8dBFu2mos2gHJrRORagzZA" class="fr-fic fr-fil fr-dib" width="515" style="width: 517px; height: 340.729px;" height="341"></p><p><strong><span style="font-size: 10pt;">Fig 20. The step of the AI Project Task Creation that either initiates the next iteration or ends the iteration if it is completed</span></strong></p><p><br></p>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.