Browse Guides

BACK TO TOP
Automated Statement of Work Generation
Reading mode
Copy Link
Link Copied!
Print
Feedback
This guide is part of a collection:
<style> .chartjs-size-monitor { display: none !important; height: 0 !important; overflow: hidden !important; }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><p><strong>In this guide we will cover:</strong></p><p><strong>- How to automate SoW creation</strong></p><p><strong>- Customise SoW Generation</strong></p><p><br></p><p><br></p><p>The statement of work against your opportunity tickets can be generated automatically based on the services you are quoting the customer for. When quoting customers for products that each have their own statements of work, these statements of work can be combined into a single SoW that can be given to the customer as part of the quote. This allows you to have statements of work generate automatically, changing dynamically based on the products and services you are quoting the customer for.&nbsp;</p><p><br></p><p>This is an alternative to setting the SoW against the opportunity template, then adjusting the SoW based on the specific services being quoted. By setting the SoW against each service product, then having each SoW combined automatically, no adjustments need to be made as the SoW will cover all the service products being quoted.&nbsp;</p><p><br></p><p>If the opportunity is for a project, you can then have the project tasks for the project be generated/created automatically based on the SoW. This uses AI to evaluate the SoW for the project, then create project tasks based on this. For information on generating project tasks using AI see our<a href="https://www.usehalo.com/guides/3002" target="_blank" rel="noopener noreferrer">&nbsp;guide here.&nbsp;</a></p><p><br></p><p data-pasted="true">The functionality outlined in this guide works using runbooks that are available in instances of HaloPSA that were created <strong>after January 2025</strong>. If your Halo instance was created/deployed before this, or you are using a different Halo product (ITSM, CRM, CSM), you can <a href="https://www.usehalo.com/guides/2571" target="_blank" rel="noopener noreferrer">use the guide here</a> to set up this functionality in your instance or contact our support team for information on having this functionality set up in your Halo instance.&nbsp;</p><p><br></p><p><strong><span style="font-size: 14pt;">How to automate SoW creation</span></strong></p><p>Raise an opportunity ticket in your instance. This opportunity will need to be using the out-of-the-box workflow &#39;Opportunity Management with SoW Generation&#39;, this will not be assigned to the opportunity ticket by default so you will need to change this manually.&nbsp;</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRmNzE3ZjA2LTRiZjAtNDY2My1iN2I1LTQxOWM3NjdkMmZkNCJ9.Sd_33hUp7Fi7wHQnrgZkEWyGKFVJQ4rH95sVgAnIW-s" class="fr-fic fr-fil fr-dib" width="1105" style="width: 1107px; height: 476.545px;" height="477"></p><p><strong><span style="font-size: 10pt;">Fig 1. Opportunity workflow</span></strong></p><p><br></p><p>If you have already configured an opportunity workflow in your instance and you would like to use this workflow instead of the out-of-the-box workflow, you will need to add the action &#39;Generate SoW&#39; to your workflow. This action will need to be added to a workflow step that follows the generation of a quote.&nbsp;</p><p><br></p><p>Raise a quote against the opportunity ticket, containing all the products/services required. Ensure the service product being quoted has a statement of work against it.&nbsp;</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUxNWQ4YzUzLTNiMzEtNDk3OC05NzNlLTk2MWQ1ZjBlMTNkOSJ9.66gKEmSuaJtJAap7-NOaXwvcDMfixoYIbwYEvqpRXE8" class="fr-fic fr-fil fr-dib" width="1205" style="width: 1207px; height: 686.416px;" height="686"></p><p><strong><span style="font-size: 10pt;">Fig 2. Quotation raised</span></strong></p><p><br></p><p>In the figure 2 example the product &#39;Server Migration&#39; has a SoW against it as it is a service to implement, with terms, however the &#39;Server&#39; product does not as it is just a hardware item.&nbsp;</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImEzNGQxYTE5LTMwNDMtNDMyZC1hNjA5LTJjNzEzNjU0YjkyNSJ9.ZFYhVIB4_XXfEf0RU_swom0aR_5DFpFQkpmXiYxg1UA" class="fr-fic fr-fil fr-dib" width="848" style="width: 850px; height: 496.406px;" height="496"></p><p><strong><span style="font-size: 10pt;">Fig 3. Statement of work against product</span></strong></p><p><br></p><p>Once the quote is saved head back to the opportunity ticket. Now you can use the action &#39;Generate SoW&#39; on the opportunity ticket. This action will create a statement of work for the opportunity based on SoWs against the product(s) on the quote that you just created.&nbsp;</p><p><br></p><p>When using the action select the quote you just created in the &#39;Primary Quote&#39; field. The &#39;Project Task Creation Method&#39; field is used to determine how project tasks on future project tickets linked to this quote, are created. It will not impact the SoW being generated here, but will impact how project tickets are created, if you are quoting for a project, see the section of this article &#39;AI project task creation&#39; for more information on this.</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImYxMTRjOGExLWM0YmYtNDlhMy05YzQyLWViZWQzYzlkMjk3MyJ9.b6GKjpR8GxDiJX4U3mGlStrFnQM98gGD9Q7E-tWusFY" class="fr-fic fr-fil fr-dib" width="878" style="width: 880px; height: 427.89px;" height="428"></p><p><strong><span style="font-size: 10pt;">Fig 4. Use Generate SoW action</span></strong></p><p><br></p><p>Once the action is saved you will see an automation run against the ticket in the progress feed. Then in the &#39;SoW&#39; tab you will see your newly generated SoW, this will contain the SoW set against the item(s) on the quote. If there were multiple items on the quote with SoWs (multiple services) the SoW field against the opportunity will contain the SoW for each product, this will be separated out per product so the customer can see which product/service the SoW related to.&nbsp;</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjRlODZkNGRmLTA1ZTctNDRkMS04NjJmLWE4YTg2ZjA0YTg5YyJ9.ki6eNWPMnyAxgnKVHBCPWdoymxd1LXG5qVnKJ9ITBEM" class="fr-fic fr-fil fr-dib" width="1170" style="width: 1172px; height: 703.55px;" height="704"></p><p><strong><span style="font-size: 10pt;">Fig 5. Generated SoW against opportunity ticket</span></strong></p><p><br></p><p><strong><span style="font-size: 11pt;"><em>Note: The SoW will follow the formatting of the SoW against each product so ensure your SoWs have consistent formatting.&nbsp;</em></span></strong><span style="font-size: 11pt;"><em><br></em></span></p><p><br></p><p>From here you can make changes to the statement of work if required.</p><p><br></p><p>Now when you send the quote off to the customer to be approved this SoW will be visible to this customer.&nbsp;</p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjExMzJmN2M5LWJkZWYtNDU1YS1iNGJkLTYzOTgwZDFkZGI1NiJ9.0jcw1jagW3dhox9Xzbauxj2Hi54B_z_4o8AdngEMuXY" class="fr-fic fr-fil fr-dib" width="1360" style="width: 1362px; height: 603.729px;" height="604"></p><p><strong><span style="font-size: 10pt;">Fig 6. SoW against quote in portal</span></strong></p><p><br></p><p>This allows you to have a more dynamic and automated way of generating your statement of work. Storing and pulling the SoW from a product saves you having to input the SoW manually against an opportunity, or create multiple opportunity templates with different SoWs.&nbsp;</p><p><br></p><p>From here the statement of work can be used, in conjunction with AI to generate project tasks for the project that has been quoted for. For information on using the SoW to generate project tasks using AI see our guide <a href="https://www.usehalo.com/guides/3002" target="_blank" rel="noopener noreferrer">here</a>.&nbsp;</p><p><br></p><p><strong><span style="font-size: 14pt;">Customise SoW Generation</span></strong></p><p>For information on how the functionality outlined in this guide can be customised, see our guide <a href="https://www.usehalo.com/guides/2571" target="_blank" rel="noopener noreferrer">here</a>. &nbsp;</p>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.