<?xml version="1.0" encoding="UTF-8" ?><!-- generator=Zoho Sites --><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><atom:link href="https://www.mavencloud.tech/blogs/suiteflow/feed" rel="self" type="application/rss+xml"/><title>MavenCloud - Blog , SuiteFlow</title><description>MavenCloud - Blog , SuiteFlow</description><link>https://www.mavencloud.tech/blogs/suiteflow</link><lastBuildDate>Fri, 23 Jan 2026 01:30:08 -0800</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[Approve and Ship Orders using Workflows]]></title><link>https://www.mavencloud.tech/blogs/post/approve-and-ship-orders-using-workflows</link><description><![CDATA[<img align="left" hspace="5" src="https://www.mavencloud.tech/Untitled design.jpg"/>Workflows can be a powerful tool for any developer 0r administrator and can help quickly solve problems and automate tasks within your business proces ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_oBa1bt3RRAaslw0inQKKNw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_Ulwy43CBRXa-KbvUuSMkSA" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_lMrpgPXdRzeE3E10VmZ1Jw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_lQIESx7BQDmX9cWxOZr6RQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_lQIESx7BQDmX9cWxOZr6RQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;">Workflows can be a powerful tool for any developer 0r administrator and can help quickly solve problems and automate tasks within your business processes.&nbsp; One way that NetSuite has enhanced workflows and their application within your ecosystem is the ability to update native status fields on orders and transactions.&nbsp; This can be extremely helpful especially when automating your order to cash workflow.&nbsp; NetSuite has made the following fields available to workflow actions:</p><ul><li style="text-align:left;">Order Status - this is the native status of a Sales Order</li><li style="text-align:left;">Shipping Status - this is the native status of an Item Fulfillment</li></ul></div>
</div></div></div></div></div><div data-element-id="elm_ZHr2A0VT9cQlS44ExhCWog" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_ZHr2A0VT9cQlS44ExhCWog"].zpsection{ border-radius:1px; } </style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_YXVIPDJxl2WlEVRFrHod4w" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column=""><style type="text/css"> [data-element-id="elm_YXVIPDJxl2WlEVRFrHod4w"].zprow{ border-radius:1px; } </style><div data-element-id="elm_UzoePL74MET1ho1vvbcNvA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_UzoePL74MET1ho1vvbcNvA"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_uI_8uLLwGqi7aYfr9VYK0Q" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_uI_8uLLwGqi7aYfr9VYK0Q"] .zpimagetext-container figure img { width: 200px ; height: 150.16px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_uI_8uLLwGqi7aYfr9VYK0Q"] .zpimagetext-container figure img { width:200px ; height:150.16px ; } } @media (max-width: 767px) { [data-element-id="elm_uI_8uLLwGqi7aYfr9VYK0Q"] .zpimagetext-container figure img { width:200px ; height:150.16px ; } } [data-element-id="elm_uI_8uLLwGqi7aYfr9VYK0Q"].zpelem-imagetext{ background-color:#34495E; background-image:unset; border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/g66f39f1d9b68f78ca0457b20cb85a0b92157f4d11095211b818347999d5873ae63f920daf45c13c991323edc97f3ca14fdd4ce206c8ac6adc40eb4917bd69c08_1280.png" width="200" height="150.16" loading="lazy" size="small" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="color:rgb(255, 255, 255);">If you have enabled&nbsp;</span><a href="https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N1230197.html" title="advanced shipping " target="_blank" rel="">advanced shipping</a>&nbsp;<a href="https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N1224089.html#procedure_N1224129" title="advanced shipping " target="_blank" rel=""></a><span style="color:rgb(255, 255, 255);">in your NetSuite environment you can define Item Fulfillments with statuses of Picked, Packed and Shipped.&nbsp; Each status has different implications when it comes to the Inventory impact, financial impact and carrier/tracking information available to the record.</span></p><p><span style="color:rgb(255, 255, 255);">When it comes to Order Status the most common application is to update a sales order from Pending Approval to Pending Fulfillment (ie Approving an Order).&nbsp; While other statuses are available in the action configuration it is recommended to allow native NetSuite processes to move the order through the fulfillment steps.</span></p></div>
</div></div></div></div></div></div><div data-element-id="elm_YtkE94baDy9sFlRq8Uuykg" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_YtkE94baDy9sFlRq8Uuykg"].zpsection{ border-radius:1px; } </style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_OKr2kNK1mDVfIADgjUno1w" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column=""><style type="text/css"> [data-element-id="elm_OKr2kNK1mDVfIADgjUno1w"].zprow{ border-radius:1px; } </style><div data-element-id="elm_NdIIEypzl2wzAoQrPLrReQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_NdIIEypzl2wzAoQrPLrReQ"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_oDdb2VuaU5avN0VwVdyBHw" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_oDdb2VuaU5avN0VwVdyBHw"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true">Order Status</h2></div>
</div></div></div></div><div data-element-id="elm_je9k6CosjqMpD8oSKKMYiA" data-element-type="section" class="zpsection zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_je9k6CosjqMpD8oSKKMYiA"].zpsection{ border-radius:1px; } </style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_yMjjW1NCKTQ9ypQGrCN0Yg" data-element-type="row" class="zprow zprow-container zpalign-items-flex-start zpjustify-content-flex-start zpdefault-section zpdefault-section-bg " data-equal-column=""><style type="text/css"> [data-element-id="elm_yMjjW1NCKTQ9ypQGrCN0Yg"].zprow{ border-radius:1px; } </style><div data-element-id="elm_hysukGZoT61xIf3BtXpzSQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- zpdefault-section zpdefault-section-bg "><style type="text/css"> [data-element-id="elm_hysukGZoT61xIf3BtXpzSQ"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_e1wPyJQIlRVdYlJeaj-r6g" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_e1wPyJQIlRVdYlJeaj-r6g"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>NetSuite provides great native functionality for approving Sales Orders.&nbsp; This helps your organization manage orders effectively as you can selectively choose which orders should be held for approval and which orders should be able to freely enter your fulfillment process.&nbsp; The flip side of this coin is that, now you have a manual process for someone to review and approve these orders, which can be time consuming and also costly if not managed effectively.</p><p>With workflows you can provide any number of criteria to the system to review orders and &quot;approve&quot; them automatically.&nbsp; You can use a few different methods to achieve this depending on your needs.</p><ul><li>Scheduled Workflow - this would probably be the most common application as you are able to create a saved search and link it with a scheduled workflow.&nbsp; Then add a Set Field Value action to your workflow to set the Order Status field to Pending Fulfillment.&nbsp; If the order meets the criteria of the saved search, your order will be approved automatically.&nbsp; If it does not, then it will stay in the queue for manual approval or until something changes on the order so it matches the correct criteria.<br><img src="/Thu%20Jun%2013%202024.png" alt=""><br><br><br></li><li>Event Based Workflow - this would most likely not be as common of an application, but could work if your order is being edited by an integration or another user, but then after the edits now meets the correct criteria you can automatically update the order to Pending Fulfillment using the same Set Field value configuration as above.<br><br></li><li>Transform Record - lastly if you are using a workflow to transform an Estimate into a Sales Order, you can use the Order Status field in the Transform Record action to define whether the newly created order should be Pending Approval or Pending Fulfillment.<br><img src="/Thu%20Jun%2013%202024-1.png" alt=""><br></li></ul></div>
</div><div data-element-id="elm_GLwSwKqhEVNrG2R4kKUTrA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_GLwSwKqhEVNrG2R4kKUTrA"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true">Shipping Status</h2></div>
<div data-element-id="elm_9Mpz0VQIrxA5BNHoJaAZug" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_9Mpz0VQIrxA5BNHoJaAZug"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>We have come across many use cases in the past to automatically post Item Fulfillments from Sales Orders, however, occasionally it is difficult to manage this automation due to the Pick, Pack and Ship workflow of your order fulfillment process.&nbsp; Now with the Shipping Status field available to workflows you can define what fulfillment status should be set on your automated fulfillments.&nbsp; Similar to the Order Status above you can use many different methods to post Item Fulfillments in different statuses using SuiteFlow</p><ul><li>Scheduled Workflow - define the criteria in a saved search for when an Item Fulfillment should transition from picked to packed or packed to shipped.</li></ul><div><span style="color:inherit;"><img src="/Thu%20Jun%2013%202024-3.png" alt=""></span><br></div><ul><li>Event Based Workflow - if fulfillments are being edited you can update the status with an event based trigger to automatically set the status into the next stage.</li><li>Transform Record - if automatically posted an item fulfillment from a sales order using the transform record action, set the Shipping Status field in your workflow action configuration to match your business use case.</li></ul><div><span style="color:inherit;"><img src="/Thu%20Jun%2013%202024-2.png" alt=""></span><br></div></div>
</div><div data-element-id="elm_Mu5fsVpGPak2glopOaRPtw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_Mu5fsVpGPak2glopOaRPtw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>With the continued enhancements to SuiteFlow and the automation available to you, NetSuite can become a powerful ally to grow and support your business.&nbsp; Leveraging just these small functions can make HUGE improvements in your order to cash efficiency and overall cash flow management.&nbsp; Let us know if you have questions or use cases where you have used these custom status functions in your organization.</p></div>
</div><div data-element-id="elm_7JsrGexVEShvFqYHHn8zlg" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_7JsrGexVEShvFqYHHn8zlg"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center "><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="/contact"><span class="zpbutton-content">Contact Us</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Thu, 13 Jun 2024 10:50:50 -0600</pubDate></item><item><title><![CDATA[Do Not Exit Workflow]]></title><link>https://www.mavencloud.tech/blogs/post/do-not-exit-workflow</link><description><![CDATA[If you have done much work with workflows in NetSuite you have probably seen the &quot;Do Not Exit Workflow&quot; checkbox on the header level of all ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_7vAjDvekSiCTqJS-7XFSaA" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_l-xcX7oaRpOoxa6e8KePIA" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_sQdUfkMORL6iVlkcV3LrpA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_m55VPieySMWR2NBEFtPEGQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_m55VPieySMWR2NBEFtPEGQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;">If you have done much work with workflows in NetSuite you have probably seen the &quot;Do Not Exit Workflow&quot; checkbox on the header level of all states in your workflow.&nbsp; We get a lot of questions about this checkbox like; &quot;When should it be used or avoided?&quot; or &quot;How does this checkbox effect performance in my environment?&quot;</p><p style="text-align:left;"><br></p><p style="text-align:left;">If you have had these same questions as well we will cover this one checkbox in depth in this article.</p></div>
</div><div data-element-id="elm_ZrOBMBaYpenC-tg6nMIG3Q" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_ZrOBMBaYpenC-tg6nMIG3Q"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>As stated before the Do Not Exit Workflow checkbox is found in the header of each State within your workflow.&nbsp; It can be checked at anytime as long as the State does NOT contain any transitions assigned to it.</p><p><span style="color:inherit;"><img src="/Tue%20Jul%2025%202023.png" alt="" style="width:1046.62px !important;height:313px !important;max-width:100% !important;"></span><br></p><p><span style="color:inherit;">The field help and documentation on this checkbox are pretty self </span>explanatory<span style="color:inherit;">&nbsp;stating,&nbsp;</span></p><p><span style="color:inherit;"><br></span></p><p><span style="color:inherit;">&quot;States that are designated as non-exiting must have no transitions. When the record in the workflow enters a non-exiting state, the record will remain in the state forever and the workflow will not terminate.&quot;</span></p><p><span style="color:inherit;"><br></span></p><p><span style="color:inherit;">Here we can clearly see that when a State is marked with &quot;Do Not Exit Workflow&quot; then the record will remain in this state indefinitely and the workflow will never terminate.&nbsp; Any actions within the state will continue to execute forever, as long as they are not using the Entry or Exit triggers.&nbsp; As such, if an action is trigger On Entry, it will be executed when the record first enters this state, but then NEVER again as the record will never leave the state so re-entry is not possible.&nbsp; Alternatively, because the record will never Exit this state the On Exit trigger will never be executed either.&nbsp; However, all other Server and Client triggers are still effective if any Actions are triggered from these events.</span></p><p><span style="color:inherit;"><br></span></p><p>Lastly, if you were to add a transition to a State that is marked with the &quot;Do Not Exit Workflow&quot; checkbox then it will immediately become unchecked and also disabled so you cannot check it again as this State is no longer available for this setting.</p></div>
</div><div data-element-id="elm_Y4Omg3Eoeo31hlt8KgkqPA" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_Y4Omg3Eoeo31hlt8KgkqPA"] .zpimagetext-container figure img { width: 500px ; height: 333.33px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_Y4Omg3Eoeo31hlt8KgkqPA"] .zpimagetext-container figure img { width:500px ; height:333.33px ; } } @media (max-width: 767px) { [data-element-id="elm_Y4Omg3Eoeo31hlt8KgkqPA"] .zpimagetext-container figure img { width:500px ; height:333.33px ; } } [data-element-id="elm_Y4Omg3Eoeo31hlt8KgkqPA"].zpelem-imagetext{ background-color:#34495E; background-image:unset; border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/business-process-automation-using-flowchart-swimlane-diagram-concept-with-manager-or.jpg" width="500" height="333.33" loading="lazy" size="medium" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="color:rgb(255, 255, 255);">Many people ask why would someone use this feature in a workflow.&nbsp; The most common use case here is within an approval workflow.&nbsp; If your approval workflow contains a Rejected state, then you may want to lock the record so it cannot be edited or changed again.&nbsp; In this scenario you would apply the Lock Record action in the Rejected state and then mark the Do Not Exit Workflow box so the record ALWAYS remains in the Rejected state and ALWAYS remains locked by the workflow.&nbsp; While this is a great use case for this function it is also useful when you have a single state workflow or a state within a workflow that you want the actions in that state to consistently be triggered every time the record is accessed.&nbsp; If you apply the Do Not Exit Workflow setting then the record will remain in the State indefinitely and all actions will continue to be triggered indefinitely.&nbsp; This helps to maintain consistency of the functions on your records while avoiding the need to re-create actions or copy actions into multiple states or multiple workflows.</span></p></div>
</div></div><div data-element-id="elm_4sVcdNXckOVWz-JtX_RUEw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_4sVcdNXckOVWz-JtX_RUEw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>The most common misconception about this setting is that it is a huge drain on system resources to somehow &quot;remember&quot; what records held in what states of workflows and constantly be in a &quot;holding&quot; pattern forever.&nbsp; This is just simply not true.&nbsp; In fact, the system functions in almost the opposite way.&nbsp; When you enable the Do Not Exit Workflow setting the Current State is stored with the record when it is saved to the database.&nbsp; This record is not touched or interacted with by the system in anyway until a user tries to &quot;recall&quot; or view the record.&nbsp; In this case the record is loaded from the database and the Current State is still stored with it.&nbsp; At this point the system is able to quickly evaluate the actions within this state and perform them easily, with low impact to the over system performance.</p><p>Conversely, if one were to NOT check this box then in the same scenario the record will be stored to the database with NO reference to a workflow or workflow State.&nbsp; Then when &quot;recalled&quot; to be viewed by a user, the system must find all workflows that the records meets the criteria of and initiate them all.&nbsp; This usually will create an instance and history record for the workflow initiation and then once initiated the actions within the workflow will be evaluated and executed accordingly.</p><p>So as you can see the Do Not Exit Workflow box could avoid all this unnecessary processing of workflow initiation, instance records and extra evaluation of conditions if used in the correct context.&nbsp; In conclusion this may seem like small distinction in functionality, but these small configuration can lead to big payoffs when evaluating the performance of your system.</p><p><br></p><p>If you have questions about workflows or ANY type of customization or automation within your NetSuite ecosystem reach out to us and we would be happy to partner with you to optimize your environment.</p></div>
</div><div data-element-id="elm_fXxUU8eiLdsBAsIhsU8xUQ" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_fXxUU8eiLdsBAsIhsU8xUQ"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center "><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="mailto:info@mgbcpro.com" rel="nofollow noreferrer noopener"><span class="zpbutton-content">Contact Us</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 25 Jul 2023 21:32:01 -0600</pubDate></item><item><title><![CDATA[Workflow Instance, History and Logging]]></title><link>https://www.mavencloud.tech/blogs/post/workflow-instance-history-and-logging</link><description><![CDATA[<img align="left" hspace="5" src="https://www.mavencloud.tech/images/business-process-concept-flowchart.webp"/>When developing any automated or semi-automated process in any system, one of the hardest most tedious things can be troubleshooting incorrect results ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_DrbZDBCuQDeFdYcWr1vw-A" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_BRIwv8PZTzm3LmRRRb1F0A" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_xRimkdt4QrOehwVRrmL-sw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_TyQJMHeXTdOAdzE2sZlybw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_TyQJMHeXTdOAdzE2sZlybw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;">When developing any automated or semi-automated process in any system, one of the hardest most tedious things can be troubleshooting incorrect results or errors that occur.&nbsp; When writing script or code, debugging can be an arduous task for even the most accomplished developer.&nbsp; When using workflows in NetSuite, there is also a large element of debugging or troubleshooting that occurs throughout the development of the workflow and even after it has been deployed.&nbsp; Luckily, NetSuite has provided a few useful tools to help with this process.</p></div>
</div><div data-element-id="elm_EiDMOCBB5SkJwr_QDYepjg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_EiDMOCBB5SkJwr_QDYepjg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>In the initial setup and configuration of your workflow there are two settings you can use to enable these helpful tools.&nbsp; They are the &quot;Keep Instance and History&quot; setting and the &quot;Enable Logging&quot; setting.</p><p><br></p><p style="text-align:center;"><span style="color:inherit;"><img src="/Tue%20Jul%2025%202023-1.png" alt=""></span><br></p><p style="text-align:center;"><span style="color:inherit;"><br></span></p><p style="text-align:left;"><span style="color:inherit;">With these two settings you can implement NetSuite's backend logging capabilities to help you review what happened to the record throughout the workflow and where you may have configured an action or transition incorrectly.</span></p></div>
</div><div data-element-id="elm_BaYKV2ATLbrip3s_uBt6nA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_BaYKV2ATLbrip3s_uBt6nA"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true">Keep Instance and History</h2></div>
<div data-element-id="elm_OAr1zWJqUopp5zm0kWnpOw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_OAr1zWJqUopp5zm0kWnpOw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>NetSuite offers a few different configuration settings for this function to give developers more flexibility around when and how Instance records should be kept for records within your workflows.&nbsp; The available options are:</p><ul><li>Always - which means workflow history will always be kept under the System Notes tab of the record being affected by the workflow and saved there indefinitely.</li><li>Never - the system will log the workflow history for a record while it is actively within the workflow, but once it leaves the workflow or the workflow is canceled all instance and history records will be deleted from the database.</li><li>Only when Testing - the system will only maintain workflow history for records while the workflow release status is set to Testing, but not for any other release status.&nbsp; When the workflow is transitioned to the Released status the system will log the workflow history for a record while it is actively within the workflow, but once it leaves the workflow or the workflow is canceled all instance and history records will be deleted from the database.</li></ul><div>To explain when instance and history records we will look at an Expense Report that initiated an approval workflow.&nbsp; You can find the workflow history under the System Information subtab on any record.</div><div><span style="color:inherit;"><img src="/Tue%20Jul%2025%202023-2.png" alt="" style="width:1056.28px !important;height:308px !important;max-width:100% !important;"></span><br></div><div><span style="color:inherit;">Here you can see the record began in the INITIATE state and moved through the workflow until it reached the REJECT state, where it still currently sits as there is no DATE EXITED STATE value listed.&nbsp; This is your first step into troubleshooting workflow issues as you can quickly see if the record transitioned to the correct states per your expectations as the developer.&nbsp; You can also see the date and time the record transitioned between states which can be helpful when compared to the System Notes as you can see different field values that changed and what date or time that change </span>occurred<span style="color:inherit;">.</span></div></div>
</div><div data-element-id="elm_ZXQHbvnBDmyp54CA2w9aPA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_ZXQHbvnBDmyp54CA2w9aPA"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true">Workflow Logging</h2></div>
<div data-element-id="elm_LTmOo1LnqFS3GHRQC6fjcg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_LTmOo1LnqFS3GHRQC6fjcg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>To expand upon the wealth of information that workflow history records can provide you can also dive deeper into each action and transition executed in each state by using the Enable Logging feature.&nbsp; When this checkbox is checked the &quot;Log&quot; link will appear next to each workflow instance under the Workflow History sublist.</p><p><span style="color:inherit;"><img src="/Tue%20Jul%2025%202023-3.png" alt="" style="width:1039.99px !important;height:240px !important;max-width:100% !important;"></span><br></p><p><span style="color:inherit;">When you click on this link a popup will appear that shows every action and transition contained within that state and what condition was met to trigger each action.</span></p><p><span style="color:inherit;"><img src="/Tue%20Jul%2025%202023-4.png" alt="" style="width:1049.21px !important;height:454px !important;max-width:100% !important;"></span><span style="color:inherit;"><br></span></p><p>Here we have an enormous amount of information showing each action performed the trigger used, the condition met and even the values set by each workflow action.&nbsp; We can also see transitions and why they were triggered and in what context.&nbsp; This is incredibly helpful during the troubleshooting phase of your development to see where you might have configured something incorrectly or the logic of a condition might be a little off.</p><p>You can also toggle the &quot;Show Rejected Actions/Transitions&quot; checkbox to see actions that are setup within the workflow state, but maybe did not executed and the reason why the did not execute.</p><p><span style="color:inherit;"><img src="/Tue%20Jul%2025%202023-5.png" alt="" style="width:1057.4px !important;height:336px !important;max-width:100% !important;"></span><br></p><p>This logging is the most helpful tool for troubleshooting workflow issues and errors.&nbsp; We usually recommend that you enable logging for the initial development of workflows and also for the first few weeks after deployment of any workflow to help quickly fix any issues that may arise during the &quot;hyper-care&quot; phase after implementation.&nbsp; However, once a workflow has been running successfully for a few weeks or even a few months it might be a good idea to disable logging as the workflow instance logs and workflow logs do take up database room and require system resources to create, access and maintain.</p></div>
</div><div data-element-id="elm_8NO2MoVMlU6miTWmnu_RoA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_8NO2MoVMlU6miTWmnu_RoA"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true">Deleting Workflow Logs</h2></div>
<div data-element-id="elm_7eVN-Bf2JbXl3AIB2FoBuw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_7eVN-Bf2JbXl3AIB2FoBuw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>A very little known feature of workflows is the fact that you can delete or remove these logs and history records for workflows from the system if you feel they are no longer needed.&nbsp; This can be very helpful when performing system clean up efforts or just trying to remove unwanted &quot;junk&quot; from your system.</p><p>In your workflow if you hover over the &quot;more...&quot; link in the upper right hand corner you can select the &quot;Instance and History Records&quot; option from the drop down menu.</p><p><span style="color:inherit;"><img src="/Tue%20Jul%2025%202023-6.png" alt="" style="width:1053.6px !important;height:321px !important;max-width:100% !important;"></span><br></p><p><span style="color:inherit;"><br></span></p><p><span style="color:inherit;">In the pop up window enter the number of months in the past you would like to keep these instance and history records, or enter zero in this field to delete ALL history records for this workflow.&nbsp; Then click the delete button.</span></p><p style="text-align:center;"><span style="color:inherit;"><img src="/Tue%20Jul%2025%202023-7.png" alt="" style="width:431.9px !important;height:412px !important;max-width:100% !important;"></span><span style="color:inherit;"><br></span></p><p style="text-align:left;"><span style="color:inherit;">Upon </span>successful<span style="color:inherit;">&nbsp;completion of the deletion the pop up window will disappear and you can continue to configure your workflow as needed.</span></p></div>
</div><div data-element-id="elm_HTFY49tAmiEUHLGdRBk_Iw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_HTFY49tAmiEUHLGdRBk_Iw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>As you can see workflow history and workflow logs can be extremely helpful to troubleshoot any issues or errors that may arise from your workflow, but make sure to only use them when absolutely necessary.&nbsp; It does not help to load your system up with years worth of workflow logs when you are only experiencing a few errors or issues throughout the year.&nbsp; It would be better to turn off logging and when issues arise try to quickly enable logging and recreate the record or transaction the same way to catch the error, then disable logging again after a fix is in place.</p><p>If you appreciated this insight into workflows or would like to learn more about workflows and other NetSuite customizations be sure to subscribe to our blog or follow our <a href="https://www.linkedin.com/company/mgbcpro" title="LinkedIn page" target="_blank" rel="">LinkedIn page</a> for more great content.</p></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Fri, 21 Jul 2023 22:21:00 -0600</pubDate></item><item><title><![CDATA[Create a Service Dispatch Module with Workflows]]></title><link>https://www.mavencloud.tech/blogs/post/create-a-service-dispatch-module-with-workflows</link><description><![CDATA[<img align="left" hspace="5" src="https://www.mavencloud.tech/images/smart-car-service-diagnostics-software-concept.jpg"/>There are many great 3rd party applications that you can purchase to help you manage your service and maintenance business for your customers.&nbsp; M ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_THSgdLT4QNOcsRz_1oXDPw" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_nMMywcCMRZmFaczCIC2O3w" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_MJcBy6mGTrGtVlZ0rOOUaw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_UV1z5Ju2SmmfC3nliGwyxQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_UV1z5Ju2SmmfC3nliGwyxQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;">There are many great 3rd party applications that you can purchase to help you manage your service and maintenance business for your customers.&nbsp; Many of them provide an amazing range of functionality to can really help to make service dispatch and management much easier.&nbsp; However, there are times where these 3rd part apps are just too much and they can become overwhelming.&nbsp; Also, they may not fit into your current budget.&nbsp; This is where workflows can help you make a DIY service request/dispatch system for your customers.</p><p style="text-align:left;">In this example we are going to build a request form for your customers to use to request service.&nbsp; Then we will use workflows to schedule a service call.&nbsp; Your service tech can use the Netsuite mobile app to complete the service call and log necessary information like diagnosis, root cause, solutions and even their hours worked.&nbsp; Then we will use workflows to automatically Invoice the customer for the work performed.</p><p style="text-align:left;"><br></p><p style="text-align:left;">To start we will use a Custom Record to create a Service Request form that our customers can fill out online.&nbsp; The native NetSuite online forms are not the most aesthetically pleasing, but they get the job done.&nbsp; Plus if you have experience with HTML you can update your online form to look however you want.</p><ul><li style="text-align:left;">Create a new Custom Record type and name it &quot;Service Request&quot;.&nbsp; Then add whatever fields you want so you collect the correct information from you customer.<br>The nice thing here is that this is completely customizable to your organizations' needs, so make sure to add as much detail here as you can without overwhelming your customer with questions.</li></ul><div style="text-align:left;"><span style="color:inherit;"><img src="/Fri%20Mar%2024%202023.png" alt="" style="width:1054.7px !important;height:413px !important;max-width:100% !important;"></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Next go to the Online Forms subtab of your custom record and create a new Online form.&nbsp; Map the Online form fields to your existing custom record fields.&nbsp; Make sure that you put in help information and mark mandatory fields as needed so your customer can quickly and easily request a service call.</span></li></ul><div style="text-align:center;"><span style="color:inherit;"><img src="/Fri%20Mar%2024%202023-1.png" alt="" style="width:578.92px !important;height:523px !important;max-width:100% !important;"></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">You can use the Setup Appearance tab to do some basic formatting of you online form like colors and logos.&nbsp; Optionally, use the Custom Code subtab to upload a script file for more enhanced </span>functionality<span style="color:inherit;">.&nbsp; Lastly, be sure to check the &quot;Enable Online&quot; checkbox and copy the Publishable Form URL so you can embed it on your website or share it with your customers.</span></li></ul><div style="text-align:center;"><span style="color:inherit;"><img src="/Fri%20Mar%2024%202023-3.png" alt="" style="width:659.84px !important;height:392px !important;max-width:100% !important;"></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Now it's time to setup your first workflow. This one will be running on the Service Request custom record we built.&nbsp; This way you can use the Service Request record almost like a Case that you will &quot;walk through&quot; the process of performing the service call.&nbsp; This will be an Event Based workflow as we want the service rep to interact with it.<br>(Alternatively, if you would like to use Cases for this instead of a custom record you can do that as well.&nbsp; The cases have their own logic and automation behind them that you would have to contend with, but if that fits your business needs better it totally works with this whole concept.)</span></li></ul><div style="text-align:center;"><span style="color:inherit;"><img src="/Fri%20Mar%2024%202023-4.png" alt="" style="width:606.72px !important;height:429px !important;max-width:100% !important;"></span><br></div><div style="text-align:left;"><ul><li style="text-align:left;"><span style="color:inherit;">Next we will use State 1 as our Entry state that will hold the Service Request until a service rep can validate the request and also reach out to the customer for more information.&nbsp; Here we have added a few buttons to help the Customer Service rep walk this request through the workflow properly.&nbsp; The intent here is that they would reach out to the customer and confirm the information entered, assign this request to the correct Customer Record and then click Schedule to move to the next state.</span></li></ul><div><span style="color:inherit;"><img src="/Fri%20Mar%2031%202023.png" alt=""></span><br></div><ul><li><span style="color:inherit;">Note that we have added two </span>transitions<span style="color:inherit;">&nbsp;here, one for each button.&nbsp; This way the customer service rep can choose to move onto the next step and schedule a call OR reject this request if it is not valid.&nbsp; Either choice is just a simple click of a button for the service rep.</span></li></ul><div><span style="color:inherit;"><img src="/Fri%20Mar%2031%202023-1.png" alt=""></span><br></div><ul><li><span style="color:inherit;">Next in our Schedule call state, we will leverage the native Event record to help us effectively schedule this service while still managing our Service Techs schedule.</span><br><span style="color:inherit;">Here we have used a few native functions to help the user quickly and easily complete the scheduling task.&nbsp; &nbsp;The first step is to create an Event record where you can store the created record into a custom field on your Service Request record.&nbsp; Within the create record action we are setting many required fields like the date, customer, reminder type and other fields to help the service rep avoid data entry errors.&nbsp; Then we are using the Subscribe to Record action so that this workflow subscribes to the created Event and we can use changes to that Event record to process </span>transitions<span style="color:inherit;">&nbsp;in our current Customer Service Request workflow.&nbsp; Last we are using the Go to Record action to navigate to the Event record we created so the customer service rep can add more information to the Event.</span></li></ul><div><span style="color:inherit;"><img src="/Fri%20Mar%2031%202023-4.png" alt=""></span><br></div></div></div>
</div><div data-element-id="elm_ChI_o1g-hgB4KIEX1-WdyA" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_ChI_o1g-hgB4KIEX1-WdyA"] .zpimagetext-container figure img { width: 500px ; height: 281.17px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_ChI_o1g-hgB4KIEX1-WdyA"] .zpimagetext-container figure img { width:500px ; height:281.17px ; } } @media (max-width: 767px) { [data-element-id="elm_ChI_o1g-hgB4KIEX1-WdyA"] .zpimagetext-container figure img { width:500px ; height:281.17px ; } } [data-element-id="elm_ChI_o1g-hgB4KIEX1-WdyA"].zpelem-imagetext{ background-color:#34495E; background-image:unset; border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/pexels-photo-3184292.jpeg" width="500" height="281.17" loading="lazy" size="medium" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="color:rgb(255, 255, 255);">Within the NetSuite</span><a href="https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N2751816.html" title="documentation" target="_blank" rel="">documentation</a><span style="color:rgb(255, 255, 255);">regarding the Subscribe to Record action it states that this action is intended to be used in conjunction with the Create Record action.&nbsp; The two must be added to the WF state one after the other to make sure it functions properly.&nbsp; We have successfully testing using the Subscribe to Record action in other capacities and sequences, however, the functionality is not consistent.&nbsp; It is best to follow NetSuite's prescribed best practice and use the Create Record and Subscribe to Record one after the other, then follow with the Go to Record if you would like to redirect the user to the new record you created.&nbsp; Furthermore, the record you create using the Create Record action should be stored in a Workflow or State field to then be referenced in your Subscribe to Record action.&nbsp; We recommend using a Workflow field here to ensure it is available throughout the workflow</span></p></div>
</div></div><div data-element-id="elm_7z4SppB5-gASasquJVPYUg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_7z4SppB5-gASasquJVPYUg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><ul><li>Now that we have subscribed to the Event we can transition our Service Request record to the next state when an update to the Event occurs.&nbsp; For example, if the Service Tech marks the Event as &quot;Completed&quot; then we can use that action to trigger our Service Request to transition to the Completed state.</li></ul><div><span style="color:inherit;"><img src="/Fri%20Mar%2031%202023-5.png" alt=""></span><br></div><ul><li>Now in the Completed state we can lock the Service Request record (or perform any other actions) that are necessary.</li></ul><div><span style="color:inherit;"><img src="/Fri%20Mar%2031%202023-6.png" alt=""></span><br></div><ul><li>Overall the workflow ends up looking like this and really helps drive a consistent process for your customer service reps.</li></ul><div><span style="color:inherit;"><img src="/Fri%20Mar%2031%202023-7.png" alt=""></span><br></div><div><span style="color:inherit;"><br></span></div><div><span style="color:inherit;">You can enhance this workflow many different ways but overall it adds some much needed elements such as an online request form, service schedule management and a &quot;case-like&quot; management system of requests that you are receiving from customers.&nbsp; Some other ideas to add to this workflow are:</span></div><ul><li><span style="color:inherit;">Create another workflow based on your Event record.&nbsp; Use a Go to Record action to redirect the service rep to a Sales Order transaction so they can create a Sales Order to manage the billing of this service call.</span></li><li><span style="color:inherit;">Tie your Sales Order(s) and Invoice(s) to your Customer Service Request Record with a custom transaction body field so you can get a complete picture of the Service Request from schedule to billing</span></li><li><span style="color:inherit;">As mentioned above you can use Cases instead of a custom record for your Service Request, then you can leverage native Case functionality AND your customer can review the Case in the native Customer Portal.</span></li></ul><div>There are many more ideas and enhancements you can make to this foundational workflow and we'd love to hear about them!&nbsp; Email us or comment to let us know what you would add to this module.</div></div>
</div><div data-element-id="elm_bXI5ejLtavdOAmUHKQMhUw" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_bXI5ejLtavdOAmUHKQMhUw"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_ZfZMkAhBAfSQmtM93MQeoA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_ZfZMkAhBAfSQmtM93MQeoA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>One more thing we'd like to mention is the additional features you can unlock by using Tasks or Events in NetSuite for your Service Techs.&nbsp; Not only does this help you manage schedule and calendars easier because it has NetSuite native calendar and availability functionality, but it also works with the Employee Center AND the NetSuite Mobile App.&nbsp; Any workflow and button you deploy to a record in the native UI will also be available in the NetSuite Mobile App as a button/action item.&nbsp;&nbsp;</p><p style="text-align:center;"><img src="/ns%20mobile.jpg" style="width:336px !important;height:635.74px !important;max-width:100% !important;"><br></p><p>This way you can save on license cost and your Service Techs can utilize mobile devices while on-site to perform many functions throughout the Service Call such as:</p><ul><li>Provide detailed notes and or diagnosis codes</li><li>Enter time worked or hours needed to complete the job</li><li>Add follow up details or flag an event as for a Customer Service Rep to follow up</li><li style="text-align:left;">Also the ability to add parts used on a service call if necessary.</li></ul><div>Some of NetSuite's core functions like Activities are often the most overlooked features of NetSuite but also some of the most versatile.&nbsp; &nbsp;You can customize Tasks, Events, Notes and Phone Calls to suit many different types of needs throughout your organization.</div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Fri, 31 Mar 2023 11:31:09 -0600</pubDate></item><item><title><![CDATA[Manage Subscriptions and Recurring Invoices Using SuiteFlow]]></title><link>https://www.mavencloud.tech/blogs/post/manage-subscriptions-and-recurring-invoices-using-suiteflow</link><description><![CDATA[<img align="left" hspace="5" src="https://www.mavencloud.tech/images/subscription-business-model-concepts.jpg"/>There are many add-ons and SuiteApps you can purchase to help you manage subscriptions or automate recurring Invoices.&nbsp; These apps provide a lot ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_HyvlqD_RTr2PqiCkuoKGYQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_3JrUI-vdRyyO61NxyVRzsA" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_4QqjD5ZBSSC7jPHf6vd39Q" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_CSmpB9JRQPO3vCCiU3K_HQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_CSmpB9JRQPO3vCCiU3K_HQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;">There are many add-ons and SuiteApps you can purchase to help you manage subscriptions or automate recurring Invoices.&nbsp; These apps provide a lot of great functionality and a nice user experience, however, if your organization does not have the ability to invest in additional modules or 3rd party apps, then you can build your own subscriptions module using workflows!&nbsp; The trick is to setup some new fields on your Quotes or Sales Orders to manage the frequency of your recurring invoices.&nbsp; Furthermore, if you would like a Custom Transaction Type could also serve as the record to hold your main subscription information.</p></div>
</div><div data-element-id="elm_lGffZI8hX9z8A0pzQfqhdA" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_lGffZI8hX9z8A0pzQfqhdA"] .zpimagetext-container figure img { width: 200px ; height: 133.20px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_lGffZI8hX9z8A0pzQfqhdA"] .zpimagetext-container figure img { width:200px ; height:133.20px ; } } @media (max-width: 767px) { [data-element-id="elm_lGffZI8hX9z8A0pzQfqhdA"] .zpimagetext-container figure img { width:200px ; height:133.20px ; } } [data-element-id="elm_lGffZI8hX9z8A0pzQfqhdA"].zpelem-imagetext{ background-color:#34495E; background-image:unset; border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/young-businessman-using-laptop-with-bnpl-icon.jpg" width="200" height="133.20" loading="lazy" size="small" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="color:rgb(255, 255, 255);">If you are familiar with custom records and custom transaction types then you may prefer to create a custom transaction type to manage your subscriptions.&nbsp; If you use Estimates and Sales Orders regularly for other types of orders, then a custom transaction type can help to segment your subscriptions or recurring invoices into a different bucket so as not to confuse your users.&nbsp; This will also give you more control over reporting as you can default your custom transaction type to accrue in a different account.&nbsp; Make sure to set your custom transaction type to &quot;non posting&quot; so you do not effect your GL until the Invoice is created.&nbsp; Also, use the type of &quot;Sales Transaction&quot; so you can transform it into an Invoice using a workflow.</span></p></div>
</div></div><div data-element-id="elm_mHoMNc419hc9_VChz3CsNQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_mHoMNc419hc9_VChz3CsNQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><ul><li>To start we will create a few new Transaction Body fields to help us manage our recurring invoices.&nbsp; These should be added to the Estimate or Sales Order, whichever you would like to use to manage your recurring invoices.&nbsp; (Or you could use a custom Transaction Type if that fits your use case better.)</li><ul><li>Recurring Invoice Frequency - this will be how often (in days) an invoice gets created</li><li>Next Invoice Date - this will be used to trigger the workflow to create a new invoice.</li><li>Recurring Invoice End Date - if recurring invoices should stop at a certain point you can use this field to define an end date.</li></ul></ul><div><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-13.png" alt=""></span><br></div><ul><li><span style="color:inherit;">The next step is to setup a Saved Search that will trigger your Invoice creation.&nbsp; Setup a transaction saved search based of the transaction type of your choice and include the new Next Invoice Date field you created as part of your criteria.</span></li></ul><div><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-18.png" alt="" style="width:1047.89px !important;height:521px !important;max-width:100% !important;"></span><br></div><ul><li>Now let's setup a workflow that will create Invoices.&nbsp; For this we will use the Transform Record action.&nbsp; To start just create a workflow with the type Transaction and sub type that matches the transaction type you are working with.<br>Remember that you can only transform an Estimate or Sales Order into an Invoice.&nbsp; (Also if you setup a custom transaction type using the &quot;Sales Transaction&quot; type it can be used to transform into an Invoice)</li></ul><div style="text-align:center;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-15.png" alt="" style="width:603.8px !important;height:355px !important;max-width:100% !important;"></span><br></div><div style="text-align:left;"><ul><li style="text-align:left;"><span style="color:inherit;">Then set your workflow up as a Scheduled workflow that runs everyday, because we will use the custom field Next Invoice Date to control when recurring invoices are made so we want to check every day if any need to be made.</span></li></ul><div style="text-align:center;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-16.png" alt="" style="width:504.6px !important;height:387px !important;max-width:100% !important;"></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Create a Workflow State field that will first store the current Next Invoice Date so we can recalculate it later.</span></li></ul><div><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-19.png" alt="" style="width:1057.4px !important;height:252px !important;max-width:100% !important;"></span><br></div><ul><li><span style="color:inherit;">The first thing to do is to copy the Next Invoice Date in the Current Next Invoice date workflow field we made in the step above.</span></li></ul><div><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-20.png" alt="" style="width:1060.12px !important;height:430px !important;max-width:100% !important;"></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Now we can add our Transform Record action into State 1 of the workflow.&nbsp; The transform record action will essentially just take the Estimate and almost Make Copy of it, except the &quot;copy&quot; is an Invoice instead of another Estimate.&nbsp; You can set new values for header fields on the invoice that gets created but unfortunately you cannot change any of the line items so be sure that the Estimate you setup has the correct Line information on it.</span></li></ul><div><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-17.png" alt=""></span><br></div><ul><li><span style="color:inherit;">Add another action to the workflow to set the NEW Next Invoice Date by adding the Frequency to the workflow field that we created.</span></li></ul><div><img src="/Thu%20Mar%2023%202023-21.png" alt="" style="color:inherit;"><br></div><ul><li>Now let's setup an Estimate for our first recurring invoices.&nbsp; The Estimate will always remain in the system and be there to generate Invoices each month.</li></ul><div><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-22.png" alt=""></span><br></div><div><span style="color:inherit;"><br></span></div><div><span style="color:inherit;">There is a lot more customization that you can do with this functionality, but what we've built here can maintain the basic functionality of automated recurring Invoices.&nbsp; If you have a Payment Processing Profile setup you can also use this functionality to automatically charge the customers credit card.&nbsp; In that scenario you would want to transform the Estimate into a Cash Sale instead of an Invoice, but the concept is still the same.&nbsp;&nbsp;</span><span style="color:inherit;">Also, if you've read our blog </span><a href="https://www.mgbcpro.com/blogs/post/simple_dunning_workflow" title="post" target="_blank" rel="">post</a><span style="color:inherit;"> on Invoice collections you can utilize that workflow to make sure your Invoices are paid on time.</span></div><div><span style="color:inherit;"><br></span></div><div><div>We love to find creative ways to leverage workflows to get the best out of NetSuite without having to invest in more modules or 3rd part apps.&nbsp; The power of workflows is pretty amazing and the things you can build with them are quite impressive if you take the time to know and understand their functionality and limitations.&nbsp; If you read through our other <a href="/blogs" title="Blog" target="_blank" rel="">Blog</a> posts you can quickly realize the amazing functionality that comes built in with every NetSuite account.</div></div></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Thu, 23 Mar 2023 22:37:28 -0600</pubDate></item><item><title><![CDATA[Create a Powerful Dunning Workflow with Just One State]]></title><link>https://www.mavencloud.tech/blogs/post/simple_dunning_workflow</link><description><![CDATA[<img align="left" hspace="5" src="https://www.mavencloud.tech/images/pexels-photo-2553427.jpeg"/>There are many workflows available to help you with your collections process.&nbsp; Many can be quite complex with multiple states and a spiderweb of ]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_48Pn9q1rRAuFc55D7WbLfg" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_9i88_lm7RU6-usYjOzPFfg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_4QZhjFWOSmCVYWioojsbrw" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"> [data-element-id="elm_4QZhjFWOSmCVYWioojsbrw"].zpelem-col{ border-radius:1px; } </style><div data-element-id="elm_bxi_up5YRwC8Skk-p-uj4Q" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_bxi_up5YRwC8Skk-p-uj4Q"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;">There are many workflows available to help you with your collections process.&nbsp; Many can be quite complex with multiple states and a spiderweb of transitions.&nbsp; Your business might require the complexity in most solutions but even the simplest set of reminders can make a huge impact on your cash flow.&nbsp; Here we can use a simple one state workflow to remind your customers of their outstanding invoices and also add some other powerful tools for your internal processes as well.</p><ul><li style="text-align:left;">To start let's add 2 new fields to our Invoice to help us track some more information about our collections process.&nbsp; These will be Transaction Body fields</li><ul><li style="text-align:left;">Next Invoice Reminder Date - we will use this field to trigger our automated reminder email and also manage different timings for each email</li><li style="text-align:left;">Number of Reminder Emails Sent - this will be an incrementing tally so we can track how many times it takes us to email someone before collecting payment.</li></ul></ul><div style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-2.png" alt=""></span><br></div><ul><li style="text-align:left;">Now let's setup the Saved Search that we will use to control our automated emails.&nbsp; We will make sure that we are only considering Unpaid Invoices, as well as validating the Next Invoice Reminder Date.<br>(Notice we included an expression to look for Invoices where the Due Date is <span style="font-style:italic;">today</span> OR the Next Invoice Reminder Date is <span style="font-style:italic;">today</span>.&nbsp; This way we will send a reminder when the Invoice is due AND then continue to validate the Next Invoice Reminder Date going forward.)<br></li></ul><div style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-3.png" alt=""></span></div><ul><li style="text-align:left;">Now we will create a Scheduled Workflow based on our Saved Search.&nbsp; Start by creating a new workflow.&nbsp; Give it a name and select the Type of Transaction and Sub Type of Invoice.</li></ul><div style="text-align:center;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-4.png" alt="" style="width:631.13px !important;height:366px !important;max-width:100% !important;"></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Then setup your schedule.&nbsp; We want this to run every day as the Next Invoice Reminder Date will be used by the Saved Search to trigger when to send Invoices we don't need to worry about setting a schedule in the workflow.&nbsp; It can just run every day and find Invoices that meet our criteria.</span></li></ul><div style="text-align:center;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-5.png" alt="" style="width:512.14px !important;height:432px !important;max-width:100% !important;"></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Now in State 1 we can start to add our logic and actions.&nbsp; First, we want to add a Field in the state that will record our current number of emails sent.&nbsp; We will use this later in the other Actions we are going to setup</span></li></ul><div style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-6.png" alt=""></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Then add an action to set this new Workflow Field to be the Number of Collections Emails Sent field that we added to our Invoices.&nbsp; This will copy the number at the beginning of the workflow so we can add to it and increment it up by one at the end of the workflow.<br>(The formula we are using is a nice workaround for Invoices that have not yet had a collections email so the Number of Collections Emails field will be blank.&nbsp; Therefore a NULL value will be considered a zero so we can mathematically increment it up by one.)</span></li></ul><div style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-7.png" alt=""></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Then we will add an action to move our Next Invoice Reminder date based on the logic we want.&nbsp; This will then be used in the Saved Search we made next time the Next Invoice Reminder Date is <span style="font-style:italic;">today.</span><br>(Also in this example we will use different timing for customers that only have 1 reminder vs. customers with 2 or more reminders)</span></li></ul><div style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-8.png" alt=""></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Next we will send our Emails out to our customer.&nbsp; We will add successive Send Email actions but add conditions to each action so we are sending out different emails depending on how many reminders we've sent out for the same Invoice.&nbsp; You can also use the Number of Collections Emails Sent field to let your customer know how many times you've tried to reach them about this Invoice.</span></li></ul><div style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-9.png" alt="" style="width:1058.15px !important;height:446px !important;max-width:100% !important;"></span><br></div><ul><li style="text-align:left;">Next, we can add an action to put this customer on hold so future orders do not get added or fulfilled until payment is made.&nbsp; This step is optional but is a nice feature that you can add if it fits with your business process.&nbsp; You'll notice we are using the MGBC Set Field Value (joined record) custom action.&nbsp; This is a just one of the amazing actions we have developed as a solution to overcome the limitations that native NetSuite functionality has.</li><li style="text-align:left;">Also note that we are only setting the Credit Hold if the customer has had more than 3 reminders on a past due invoice.</li></ul><div style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-10.png" alt="" style="width:1046.74px !important;height:90px !important;max-width:100% !important;"></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Lastly, we need to recalculate how many reminder emails we've sent but adding 1 to the Workflow State field that we made as our first action.</span></li></ul><div style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-11.png" alt=""></span><br></div><ul><li style="text-align:left;"><span style="color:inherit;">Here's the how the final workflow looks.</span></li></ul><div style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Mar%2023%202023-12.png" alt=""></span><br></div><div style="text-align:left;"><span style="color:inherit;"><br></span></div><div style="text-align:left;"><div><span style="color:inherit;">Now you have a robust dunning workflow where you can control the frequency between reminder emails AND even track how many reminders it takes to receive payment.&nbsp; Lastly, if you have our <a href="/enhanced-workflow-actions" title="Enhance Workflow Actions" target="_blank" rel="">Enhance Workflow Actions</a> you can further enhance the functionality of your dunning workflow by manipulating joined records, which current NetSuite functionality does not allow.&nbsp; Let us know if you have any questions about our Enhanced Workflow Actions or need help with implementing this dunning workflow.</span></div></div></div>
</div><div data-element-id="elm_TzTSJ2Pr54y1DoqZwDzlxA" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_TzTSJ2Pr54y1DoqZwDzlxA"].zpelem-button{ border-radius:1px; } </style><div class="zpbutton-container zpbutton-align-center "><style type="text/css"></style><a class="zpbutton-wrapper zpbutton zpbutton-type-primary zpbutton-size-md zpbutton-style-none " href="/contact" target="_blank"><span class="zpbutton-content">Contact Us</span></a></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 06 Mar 2023 21:33:00 -0600</pubDate></item><item><title><![CDATA[Create Simple, No Code Integrations with Workflows]]></title><link>https://www.mavencloud.tech/blogs/post/create-no-code-integrations-with-workflows</link><description><![CDATA[<img align="left" hspace="5" src="https://www.mavencloud.tech/images/g8aaad346b21012dd3a66c79223db6c2428fcbd56fa5288bd57ac56184fae208db58811a1f32e731aaf0670795aeb0884ca561ca79213631d055acbed502b30b8_1280.jpg"/>Transfer data from NetSuite to other business applications or other areas within your NetSuite environment with SuiteFlow.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_wYD8Zan2RTGAoZ_pe1zlGg" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_SiZ1pbtmS7y_4KMeWN9DBA" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_NVyEU2M8SKG09BKNtJDvug" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_fX7VV8ZJRaG3C_IuL-lnWg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_fX7VV8ZJRaG3C_IuL-lnWg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;">While NetSuite offers an amazing suite of modules and functions out of the box there are times where a more focused application may provide features that better suit your business needs.&nbsp; These 3rd party applications are great for providing a unique and wonderful user experience for very specific functions like customer support, accounting automation or even warehousing.&nbsp; However, having these external systems can lead to siloed information or the need for duplicate data entry to keep systems in sync.&nbsp; To overcome this many businesses are integrating NetSuite with these applications to provide a more efficient workflow for users and maintain data integrity across systems.</p><p style="text-align:left;"><br></p><p style="text-align:left;">If you have a need to create a few simple tasks across different platforms then you can utilize the <a href="/enhanced-workflow-actions" title="Enhanced Workflow Actions Bundle " rel="">Enhanced Workflow Actions Bundle </a>to create simple, no-code data transfers from NetSuite to external applications.&nbsp; While this process may take a little bit of manual entry it can eliminate data entry errors, remove the need to copy data from NetSuite to another application and help maintain a consistent workflow for your data.&nbsp; The trick here is to leverage URL parameters in you workflows to pass data from NetSuite.</p></div>
</div><div data-element-id="elm_OSEvHgZsf2JGnTWAxOaxcw" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_OSEvHgZsf2JGnTWAxOaxcw"] .zpimagetext-container figure img { width: 200px ; height: 200.00px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_OSEvHgZsf2JGnTWAxOaxcw"] .zpimagetext-container figure img { width:200px ; height:200.00px ; } } @media (max-width: 767px) { [data-element-id="elm_OSEvHgZsf2JGnTWAxOaxcw"] .zpimagetext-container figure img { width:200px ; height:200.00px ; } } [data-element-id="elm_OSEvHgZsf2JGnTWAxOaxcw"].zpelem-imagetext{ background-color:#34495E; background-image:unset; border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-small zpimage-tablet-fallback-small zpimage-mobile-fallback-small hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="/images/g4cc7bca54de8a890bcb0099992015951437cc2ccdc1abfde311be8ab31bd2a95354e2d093422c1f4a52547648d5eb536e2848a41ebbc51bb50ef6c7150132acb_1280.png" width="200" height="200.00" loading="lazy" size="small" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p><span style="color:rgb(255, 255, 255);">Learning and understanding URL parameters can be an incredibly useful tool in your toolbelt to help you provide some amazing functionality with </span><span style="color:rgb(234, 119, 4);">ZERO</span><span style="color:rgb(255, 255, 255);"> scripting involved.&nbsp; URL parameters are elements inserted into the URL that can help you quickly filter, organize or even provide values for content on the web page you are viewing.&nbsp; URL parameters are placed after a &quot;?&quot; in your URL and each webpage or application has it's own restrictions or functions available to URL parameters.</span></p><p><span style="color:rgb(255, 255, 255);">For example a URL of </span><span style="color:rgb(48, 4, 234);">https://www.mywebsite.com/store/tshirts?color=blue&amp;size=large</span><span style="color:rgb(255, 255, 255);"> is navigating to the T Shirts page of www.mywebsite.com.&nbsp; Then because of the parameters the T Shirts page will be filtered to showing only T Shirts that are Blue and size Large.&nbsp; While this can be an amazingly simple tool, it is important that you fully understand the capabilities related to URL parameters and what functions can be supported, before attempting to use them in your workflows.</span></p></div>
</div></div><div data-element-id="elm_wJVQlyOLbWwpi64qoWc46A" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_wJVQlyOLbWwpi64qoWc46A"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>Now let's take a look at how you can leverage the power of URL parameters in your workflows.&nbsp; The key here is to give the user an easy and intuitive interface to guide them through the correct process to maintain consistency and accuracy.&nbsp; This is where workflows in NetSuite really shine because they provide a graphical workspace to build out your process and monitor your records as they flow through each state.&nbsp; With our Enhanced Workflow Actions bundle you can use the MGBC Go to URL action to redirect the user to any URL; both internally to other NetSuite pages OR externally to other systems.&nbsp; We have also provided you a way to dynamically source URL parameters into the redirect URL so you can pull data from the existing record and use it as part of the URL.</p><p><br></p><p>One simple example of this is to manage your Customer records between NetSuite and Hubspot, a popular CRM system.&nbsp; Do do this you would need login credentials to your HubSpot account and then generate a quick workflow to add a button to your customer records.</p><p><br></p><ol><li>Create a Customer based workflow with 2 states<br><img src="/Thu%20Feb%2023%202023-1.png" alt="" style="width:939.6px !important;height:510px !important;max-width:100% !important;"><br></li><li><span style="color:inherit;">In start state put an Add Button action Before Record Load.&nbsp; We also added a condition of &quot;Web Address is NOT empty&quot; because we are going to be using the Web Address in our custom action<br></span><img src="/Thu%20Feb%2023%202023-2.png" alt=""><br></li><li>Create a transition from your start state to State 2 that is executed upon button click<br><img src="/Thu%20Feb%2023%202023-3.png" alt="" style="width:986.4px !important;height:622px !important;max-width:100% !important;"><br></li><li>In state 2 you would add the MGBC Go to URL action, upon Entry<br><img src="/Thu%20Feb%2023%202023-4.png" alt="" style="width:1007.16px !important;height:329px !important;max-width:100% !important;"><br></li><li>In the parameters of the Go to URL set the URL for a new HubSpot company and add the url field from NetSuite as Parameter 1 in the URL.&nbsp; This will dynamically source the Web Address from the current customer record into the new Company record created in HubSpot.<br><img src="/Thu%20Feb%2023%202023-5.png" alt="" style="width:855.43px !important;height:361px !important;max-width:100% !important;"><br></li><li>Also be sure to add the correct URL parameter and syntax for dynamically sourcing values at the end of the HubSpot URL.&nbsp; (Remember that URL parameters are always after the &quot;?&quot; in the URL.<br><img src="/Thu%20Feb%2023%202023-6.png" alt=""><br><br></li><li>You can also setup the Redirect Type as a Popup Window, New Tab or Current Tab so provide an even better user experience.<br><img src="/Thu%20Feb%2023%202023-7.png" alt=""><br><br></li><li>Now let's test our workflow with a new customer that we would like to also sync into HubSpot.&nbsp; We can enter the Customer record in NetSuite with minimal information then use our new sync feature to copy data into HubSpot and provide more detailed information there for our CRM requirements.<br><img src="/Thu%20Feb%2023%202023-8.png" alt=""><br></li><li>Now if we click our new Sync to Hubspot button a popup window opens showing our pre-filled form for adding a new customer.<br><div style="text-align:center;"><span style="color:inherit;"><img src="/Thu%20Feb%2023%202023-10.png" alt="" style="width:344px !important;height:556.82px !important;max-width:100% !important;"></span></div></li></ol></div>
</div><div data-element-id="elm_ndEmMoW240wDkebqZZm7TQ" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_ndEmMoW240wDkebqZZm7TQ"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_6owKinY4RjXMeu9634EWXw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_6owKinY4RjXMeu9634EWXw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>You can also perform a similar function with email as well.&nbsp; You can quickly &quot;integrate&quot; your email account with NetSuite by using the &quot;mailto:&quot; URL.&nbsp; This will allow you to open up your default email pre-populated with a To address, Subject and even Body message.&nbsp; Also, because you are using the MGBC Go to URL action you can dynamically source the To Address, Subject and/or Body of the email from data already on the current record in NetSuite.</p><ol><li>First, create your workflow on whatever record type meets your business use case.&nbsp; (For this example, we will use another 2 state workflow with a button to transition between states)<br><img src="/Thu%20Feb%2023%202023-11.png" alt=""><br></li><li>Upon Entry of the second state add the MGBC Go to URL action and define the URL and parameters.<br>You can use &quot;mailto:[1]?subject=[2]&quot; as the URL and [1] will represent any email address field on your current record, while [2] can be any text field like the Transaction ID or Memo; or use a formula to concatenate multiple pieces of information together.<br><img src="/Thu%20Feb%2023%202023-12.png" alt="" style="width:1019.9px !important;height:474px !important;max-width:100% !important;"><br></li><li>Now when your button is clicked your default email provider is opened with the To: and Subject line already pre-filled based on your NetSuite data.<br><div style="text-align:center;"><img src="/Thu%20Feb%2023%202023-14.png" alt="" style="width:518.92px !important;height:376px !important;max-width:100% !important;"></div></li></ol><div style="text-align:center;"><br></div><div style="text-align:left;">Now while these are just two very simple examples of how you can use the Go to URL action, it is easy to see how these two features working together can provide some very powerful automation with ZERO code written.</div><div style="text-align:left;"><br></div><div style="text-align:left;"><span style="color:inherit;">As a note of caution, using URLs and URL parameters for external systems can be a little tricky to understand as each individual system has their own requirements and limitations.&nbsp; These are not well documented and can take a significant amount of trial and error to get working sometimes.&nbsp; It is always best to try out these URLs manually with a text editor like Notepad before attempting to automate this through a workflow.</span><br></div></div>
</div><div data-element-id="elm_M0wRzogfc84ol4gE689NbQ" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_M0wRzogfc84ol4gE689NbQ"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_gbF_xYe6HGcTkPWnUqEZ2w" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_gbF_xYe6HGcTkPWnUqEZ2w"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>While using URLs and URL parameters for external systems can be useful, it is MUCH easier to utilize this functionality within NetSuite itself!&nbsp; NetSuite supports a HUGE range of URL parameters and you can create some really amazing functions by moving data between different record types and even from records into saved searches.&nbsp; Some of our favorite functions are:</p><ul><li>Create linked records like User Notes, Messages, Phone Calls or custom records with pre-filled form data</li><li>Navigate to saved search results with pre-filtered data.</li><li>Generate almost any printable PDF from ANY record or Saved Search PDF Template</li><li>Automatically export data to Excel or add an &quot;Export to Excel&quot; button to records</li><li>Create records or transactions that are currently not supported by workflows</li></ul><div><div>There are so many more possibilities for this functionality and a whole new world of automation opened up for workflows in general.&nbsp; Please let us know if you would like to know more about this custom action or our Enhanced Workflow Actions bundle can help your users get more out of NetSuite please email us at <a href="mailto:info@mgbcpro.com?subject=Go%20to%20URL%20Custom%20Action" title="info@mgbcpro.com" rel="nofollow noreferrer noopener">info@mgbcpro.com</a> or fill out this <a href="/contact" title="form" rel="">form</a>.&nbsp; Or if you are already using the bundle, we would love to hear from you how you are using this Go to URL action to enhance your workflows.</div></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Thu, 23 Feb 2023 16:56:29 -0600</pubDate></item><item><title><![CDATA[Automate your Entire Sales Conversion Workflow]]></title><link>https://www.mavencloud.tech/blogs/post/automate-your-entire-sales-conversion-workflow</link><description><![CDATA[<img align="left" hspace="5" src="https://www.mavencloud.tech/images/pexels-photo-327540.jpeg"/>Use workflows to help your sales team manage their leads and convert MORE sales.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_95g0EzFOSFKuhjAkpjrVBg" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_nsj-JqxLTPSkgrDUbg_7NQ" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_hrOiYTVqRcmFaIGk6khWAA" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_qrxfT7T2ReC7ZKOAr8umxQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_qrxfT7T2ReC7ZKOAr8umxQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;">We all know that NetSuite provides a fairly robust CRM module right out of the box.&nbsp; You can manage Leads, Prospects, Statuses, Probabilities and Activities fairly easily to keep record of how your sales process is going.&nbsp; However, tying all these aspects together can end up being a manual and sometimes tedious process.&nbsp; Making sure to properly log activities and follow ups while still remembering to update lead statuses and budgets can be a daunting task.&nbsp; Not to mention you want your valuable sales team focusing their efforts on connecting with prospective customers NOT managing system data.&nbsp;&nbsp;</p><p style="text-align:left;"><br></p><p style="text-align:left;">This is where NetSuite workflows can provide a HUGE advantage.&nbsp; With workflows you can automate tasks and provide a consistent proven process for your sales team to nurture each lead to it's fullest potential.&nbsp; Using workflows to create tasks, send emails, set reminders and manage the process is pretty straight forward with native functionality.&nbsp; However, what happens when you need to go BEYOND native functionality and connect actions across records within your system?</p><p style="text-align:left;"><br></p><p style="text-align:left;">This is where the <a href="/enhanced-workflow-actions" title="MGBC Enhanced Workflow Actions" target="_blank" rel="">MGBC Enhanced Workflow Actions</a> bundle can supplement what is already possible and make it even more powerful!&nbsp; Using our prebuilt, fully configurable functions you can overcome all sorts of limitations and provide your sales team with the seamless sales workflow they have been dreaming of.</p><p style="text-align:left;"><br></p><p style="text-align:left;">As just one example of this functionality we will leverage the new Set Field Value (joined record) action to manage the lead to customer status through activities like Tasks.</p><p style="text-align:left;"><br></p><p style="text-align:left;">To do this we will start with a simple 2 state workflow.&nbsp;</p><p style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Feb%2002%202023.png" alt=""></span><br></p><p style="text-align:left;">The first state will capture new Tasks as they are created and provide the sales rep with a button to easily mark it completed when they have finished their Initial Discussion with the Lead.</p><p style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Feb%2002%202023-1.png" alt="" style="width:1041.5px !important;height:366px !important;max-width:100% !important;"></span><br></p><p style="text-align:left;"><span style="color:inherit;"><br></span></p><p style="text-align:left;">Upon clicking the button the workflow will transition to the Completed state where we have included the MGBC Set Field Value (joined record) action.</p><p style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Feb%2002%202023-2.png" alt="" style="width:1053.27px !important;height:441px !important;max-width:100% !important;"></span><br></p><p style="text-align:left;"><span style="color:inherit;"><br></span></p><p style="text-align:left;">With this action we are able to automatically move the Lead into the Prospect state AND update the probability (which automatically recalculates your sales forecast) by simply completing their Task.</p><p style="text-align:left;"><span style="color:inherit;"><img src="/Thu%20Feb%2002%202023-3.png" alt=""></span><br></p><p style="text-align:left;"><span style="color:inherit;"><br></span></p><p style="text-align:left;">Now sales managers can map out an entire sales conversion process of Tasks, Phone Calls and Follow Ups using native functionality, then using our custom actions ENHANCE the user experience by automating all the tedious system maintenance.</p></div>
</div><div data-element-id="elm_VRFgdd8FCHdJvjkwdufyFQ" data-element-type="divider" class="zpelement zpelem-divider "><style type="text/css"> [data-element-id="elm_VRFgdd8FCHdJvjkwdufyFQ"].zpelem-divider{ border-radius:1px; } </style><style></style><div class="zpdivider-container zpdivider-line zpdivider-align-center zpdivider-width100 zpdivider-line-style-solid "><div class="zpdivider-common"></div>
</div></div><div data-element-id="elm_aBAK48rMoM9oRPydU8eZ0w" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_aBAK48rMoM9oRPydU8eZ0w"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>This is just one very simple example of how powerful workflows can be, especially when you enhance them with custom actions that help you rise above the limitations of native functionality.&nbsp; There are so many other possibilities available to you with our 9 other custom actions as well.</p><p><br></p><p>For example, use the Pop Up with Input Prompt action to help your sales reps define and re-define the customers budget throughout the sales process without having to remember to go back and update the customer record.&nbsp; Simply provide a pop up window asking for the customers new budget number and when completed the new budget can be automatically updated right from the Task completion process, while simultaneously moving that Lead further through the sales workflow.&nbsp; The use cases for all these actions within the sales process alone, are almost limitless.</p><p><br></p><p>If you need help defining your sales conversion workflow, or would like to hear more about how our Enhanced Workflow Actions bundle can help you manage your sales process, please email us at <a href="mailto:info@mgbcpro.com?subject=I%27d%20like%20to%20know%20more%20about%20the%20Enhanced%20Workflow%20Actions%20Bundle" title="info@mgbcpro.com" rel="nofollow noreferrer noopener">info@mgbcpro.com</a> OR head to our website <a href="/enhanced-workflow-actions" title="www.mgbcpro.com" rel="">www.mgbcpro.com</a> and check out our solutions page.</p></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Wed, 25 Jan 2023 16:34:00 -0600</pubDate></item><item><title><![CDATA[Make Expense Sublist Fields Mandatory]]></title><link>https://www.mavencloud.tech/blogs/post/approval_workflow_popup_window1</link><description><![CDATA[<img align="left" hspace="5" src="https://www.mavencloud.tech/images/gbdf654f36b7868da58872b41aec77567851b4269623e960f481c4e6923d50c4fcb6142610f6bdf0ecd592303900cdb38876ce4f6a170e4ea0785c1e87f21eb1f_1280.jpg"/>How you can use the MGBC Button with Input Prompt action to enhance your approval workflows]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_hX7XCDE5ShSxfqcKqL973w" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_MkBbdgjDQGqlWV5NEB4zmg" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_CbC17FArScqIWgRdTKncfg" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_rXt0ybImR5amQzdVRn7_yw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_rXt0ybImR5amQzdVRn7_yw"].zpelem-text { background-color:#34495E; background-image:unset; border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p><span style="color:rgb(255, 255, 255);">Native workflows can only help users interact with the Items Sublist on transactions.&nbsp; However, there is often times a need to manipulate other sublists like the Expenses sublist on Purchase Orders, Vendor Bills or Expense Reports.&nbsp; With our </span><a href="/enhanced-workflow-actions" title="enhanced workflow actions" rel="">enhanced workflow actions</a><span style="color:rgb(255, 255, 255);">you can make transaction column fields mandatory on ANY sublist,</span></p></div>
</div><div data-element-id="elm_oVlUoOQkR-0CUmZV3IwLvA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_oVlUoOQkR-0CUmZV3IwLvA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>To utilize the MGBC Set Field Mandatory (any sublist) custom action you just need to gather a few parameters from the record you are manipulating with your workflow.&nbsp; You will need to now the following information:</p><ul><li>The internal id of the field you would like to set as mandatory</li><li>The internal id of the sublist your field is contained in</li></ul><div>To find these values it is recommended to use the Records Catalog under Setup &gt; Records Catalog.&nbsp; Here you can find the internal id's for all record types and many other elements on those records.</div><div><div>You can also find other tips on finding the required internal IDs of objects in your environment in our <a href="https://support.mgbcpro.com/portal/en/kb/articles/how-to-find-netsuite-record-field-and-object-internal-ids" title="Knowledge Base" target="_blank" rel="nofollow noreferrer noopener">Knowledge Base</a>.</div></div><div><br></div><div><span style="color:inherit;"><img src="/Sat%20Dec%2003%202022.png" alt="" style="width:1024.46px !important;height:518px !important;max-width:100% !important;"></span><br></div><div><span style="color:inherit;"><br></span></div><div><ul><li>One client we worked with had trouble with the department field not being set properly on Journal Entries by bookkeepers on their accounting team.&nbsp; It was easy to overlook so they needed to set it as mandatory so it could not be forgotten.&nbsp; However, they did not want this restriction on other users such as the CFO or Controller.</li><li>To do this we created a new workflow and set it to the Transaction record type and Journal subtype.</li></ul><div><span style="color:inherit;"><img src="/Sat%20Dec%2003%202022-1.png" alt="" style="width:946.07px !important;height:620px !important;max-width:100% !important;"></span><br></div></div><div><span style="color:inherit;"><br></span></div><div><ul><li><span style="color:inherit;">Next open up the state in your workflow and click the New Action button<br><img src="/Sat%20Dec%2003%202022-2.png" alt="" style="width:1022.28px !important;height:332px !important;max-width:100% !important;"><br></span></li><li><span style="color:inherit;">Choose the MGBC Set Field Mandatory action from the list.<br><img src="/Sat%20Dec%2003%202022-4.png" alt="" style="width:715.92px !important;height:248px !important;max-width:100% !important;"><br></span></li><li><span style="color:inherit;">Set the Trigger to Before Record Load.</span><br><span style="color:rgb(226, 82, 29);">It is recommend you always use Before Record Load with this custom action.</span><br><img src="/Sat%20Dec%2003%202022-5.png" alt="" style="width:1009.68px !important;height:527px !important;max-width:100% !important;"><br></li><li>In the parameters section we will enter <span style="color:rgb(48, 4, 234);">department</span> as the Field ID (which is the internal id of the Department field) and<span style="color:rgb(48, 4, 234);"> line</span>&nbsp;as the sublist because the Journal Entry contains the Lines sublist.<br><img src="/Sat%20Dec%2003%202022-7.png" alt=""><br></li><li>We will also add a condition of User Role = Bookeeper so this field is only mandatory when the user is logged in under the Bookeeper role.<br><img src="/Sat%20Dec%2003%202022-6.png" alt="" style="width:1012.2px !important;height:375px !important;max-width:100% !important;"><br></li><li>Now when we go to enter a Journal Entry under the Bookeeper role you can see the Department column is flagged as mandatory.<br><img src="/Sat%20Dec%2003%202022-8.png" alt="" style="width:1009.7px !important;height:653px !important;max-width:100% !important;"><br></li></ul><div>This action can provide much needed regulation of how data is entered and managed within the system so your financial reports always contain the correct information.&nbsp; And you can see that with a few simple steps this control is easily available and completely configurable to your business requirements.</div></div></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 14 Nov 2022 22:03:49 -0600</pubDate></item><item><title><![CDATA[Capture Rejection Reasons in Approval Workflows]]></title><link>https://www.mavencloud.tech/blogs/post/approval_workflow_popup_window</link><description><![CDATA[<img align="left" hspace="5" src="https://www.mavencloud.tech/rejected.jpeg"/>How you can use the MGBC Button with Input Prompt action to enhance your approval workflows]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_bqz8fKK-Q1qcOIYwPjqR6Q" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_cmzbSJnZQ6qQnaOimftz-A" data-element-type="row" class="zprow zprow-container zpalign-items- zpjustify-content- " data-equal-column=""><style type="text/css"></style><div data-element-id="elm_dI91hP1FSWu9tnFJBk4PSQ" data-element-type="column" class="zpelem-col zpcol-12 zpcol-md-12 zpcol-sm-12 zpalign-self- "><style type="text/css"></style><div data-element-id="elm_w1QZPg3YSgKKERUkubS4Kw" data-element-type="text" class="zpelement zpelem-text "><style></style><div class="zptext zptext-align-center " data-editor="true"><p>Approval workflows can be a great way to add much needed processes and regulations into your organization.&nbsp; They can provide a level of oversight that is not only critical for maintaining a lean operation but also to make sure that all levels of the business are aware of the right things happening throughout.&nbsp; The beauty of SuiteFlow and Approval Routing within NetSuite is you can customize your approval workflows to provide as much or as little regulatory oversight as your business needs to operate efficiently and effectively.&nbsp; Not only can you leverage native approval Suitelets in cases where you have enabled approval routing for certain records, but you can also define exactly what actions need to be taken at what point in time; and who should be taking said action.&nbsp; This all works wonderfully in NetSuite until you get to the REJECTION. Here is where native functionality can start to fall apart with native functionality.</p></div>
</div><div data-element-id="elm_D8AlzqyaPb-Bei-jcPA-Uw" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_D8AlzqyaPb-Bei-jcPA-Uw"] .zpimagetext-container figure img { width: 500px ; height: 333.33px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_D8AlzqyaPb-Bei-jcPA-Uw"] .zpimagetext-container figure img { width:500px ; height:333.33px ; } } @media (max-width: 767px) { [data-element-id="elm_D8AlzqyaPb-Bei-jcPA-Uw"] .zpimagetext-container figure img { width:500px ; height:333.33px ; } } [data-element-id="elm_D8AlzqyaPb-Bei-jcPA-Uw"].zpelem-imagetext .zpimage-text, [data-element-id="elm_D8AlzqyaPb-Bei-jcPA-Uw"].zpelem-imagetext .zpimage-text :is(h1,h2,h3,h4,h5,h6){ color:#FFFFFF ; } [data-element-id="elm_D8AlzqyaPb-Bei-jcPA-Uw"].zpelem-imagetext{ background-color:#34495E; background-image:unset; border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="left" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-left zpimage-size-medium zpimage-tablet-fallback-medium zpimage-mobile-fallback-medium hb-lightbox " data-lightbox-options="
            type:fullscreen,
            theme:dark"><figure role="none" class="zpimage-data-ref"><span class="zpimage-anchor" role="link" tabindex="0" aria-label="Open Lightbox" style="cursor:pointer;"><picture><img class="zpimage zpimage-style-none zpimage-space-none " src="https://images.unsplash.com/photo-1517664946321-87d2e16ebaa6?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=Mnw0NTc5N3wwfDF8c2VhcmNofDF8fHJlamVjdHxlbnwwfHx8fDE2Njg0ODI4MTI&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" width="500" height="333.33" loading="lazy" size="medium" data-lightbox="true"/></picture></span></figure><div class="zpimage-text zpimage-text-align-left " data-editor="true"><p>Rejection reasons and response text are some of&nbsp; the most requested functions for effective approval workflows within NetSuite.&nbsp; There are many other <span style="color:rgb(45, 180, 112);">workarounds</span> you could perform to accomplish a similar result, but all can be clunky and/or tedious for the users.&nbsp; Many rely on a &quot;mandatory&quot; field that must be filled in prior to displaying the Approve or Reject button.&nbsp; This does have the intended effect but can leave the approver <span style="color:rgb(45, 180, 112);">scratching their heads </span>as to what they can do for the next step.&nbsp; Without clear instructions, it can be hard to understand what is holding them up from completing their approval.</p><p>It is also common to use a custom record for the approver to enter a rejection reason. However, this too can be a <span style="color:rgb(45, 180, 112);">clunky experience</span> as they are redirected away from the current transaction and could quite easily just close the window without providing a reason or any additional input.&nbsp; Furthermore, once the response text is entered it can be difficult to find their way back to the original transaction to confirm their decision was processed correctly.</p></div>
</div></div><div data-element-id="elm_wibMD1sxc6TMgg562mcLEg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_wibMD1sxc6TMgg562mcLEg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>Using our <a href="/products" title="Enhanced Workflow Action bundle" rel="" style="color:rgb(48, 4, 234);">Enhanced Workflow Action bundle</a> you can quickly create that much needed functionality to collect a reason for whatever decision is being made.&nbsp; Actually, this custom action can be used within ANY workflow deployed to ANY record type within your environment.&nbsp; The beauty of our Enhanced Workflow Action bundle is that you are only limited by your imagination.&nbsp; You can provide rich, engaging workflows on custom record types, custom transactions, native transactions, entity records or even items.</p></div>
</div><div data-element-id="elm_uRpebTojRYmmfNzQSP6eaA" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_uRpebTojRYmmfNzQSP6eaA"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true">Configuration</h2></div>
<div data-element-id="elm_8z4MtHarioF7pp-JrlUPjQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_8z4MtHarioF7pp-JrlUPjQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>To begin collecting responses to decisions within your workflows you can follow these simple steps:</p><ol><li>In the Pending Approval state of your workflow remove the native Add Button action and replace it with the <span style="color:rgb(48, 4, 234);">MGBC Button with Input Prompt</span> custom action.<br><img src="/Mon%20Nov%2014%202022.png" alt="" style="width:1064.9px !important;height:424px !important;max-width:100% !important;"><br></li><li>In the parameters section of the custom action define the following parameters</li><ol><li><span style="color:rgb(48, 4, 234);">Button Label </span>- This is the label displayed on the &quot;Reject&quot; button on your transaction</li><li><span style="color:rgb(48, 4, 234);">Popup Window Message</span> - This is the text you want displayed in the pop up window.&nbsp; This will direct the user as to what input is being requested.</li><li><span style="color:rgb(48, 4, 234);">Field to populate</span> - this is any field on your current transaction where you would like to store the response text that the user inputs into the pop up window. (just enter the field ID of the field you want populated)</li><li><span style="color:rgb(48, 4, 234);">Input Received Validation Checkbox</span> - this is a way for you to confirm that the user actually entered a response and didn't just click Cancel or close the window.&nbsp; You can use a custom field or a workflow field to capture this value.&nbsp; (just enter the field ID of a checkbox field)<br><img src="/Mon%20Nov%2014%202022-1.png" alt="" style="width:1006.73px !important;height:351px !important;max-width:100% !important;"><br></li></ol><li>Lastly, now that we are capturing a &quot;validation&quot; that input text was properly entered using our Input Received Validation Checkbox you can use that value to trigger other actions OR a transition to the correct state.&nbsp; On the Transitions tab create a transition to the Rejected State when your Input Received Validation Checkbox = T.&nbsp; Then your transaction will only be marked approved when you are sure the user has entered a rejection reason.<br><img src="/Mon%20Nov%2014%202022-2.png" alt="" style="width:1048.66px !important;height:330px !important;max-width:100% !important;"><br></li></ol></div>
</div><div data-element-id="elm_NRrJTPSWTs-dOGyzWGz--A" data-element-type="heading" class="zpelement zpelem-heading "><style> [data-element-id="elm_NRrJTPSWTs-dOGyzWGz--A"].zpelem-heading { border-radius:1px; } </style><h2
 class="zpheading zpheading-style-none zpheading-align-left " data-editor="true">Review</h2></div>
<div data-element-id="elm_RMRHnKbw8ue8I6k0S3FdZg" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_RMRHnKbw8ue8I6k0S3FdZg"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>You can see how easy it can be to setup these types of prompts throughout your system to make sure that you are capturing all the correct data at the correct time.&nbsp; Furthermore, because we are storing the rejection reason on each transaction record as they are moving through the workflow you can use these messages in other areas of SuiteFlow!&nbsp; For example, why not capture the rejection reason using the MGBC Button with Input Prompt action and then use that reason in a native Send Email action so the requestor knows why their request was rejected?&nbsp;&nbsp;</p><p><br></p><p>As you can see <span style="color:rgb(234, 119, 4);">the sky is the limit</span>, when it comes to what can be done with this fully configurable action that not only solves a long-standing need within approvals, but can provide much needed enhancements to ALL your workflows throughout ALL your processes in the business.</p><p><br></p><p>Let us know how you are using the MGBC Button with Input Prompt custom action in your environment OR ideas you have to leverage this in other workflows and areas throughout your organization.&nbsp; Lastly, click the button below to find out more on our Enhanced Workflow Actions and how you can leverage all 10 custom actions in your account to automate even the most complex business processes.</p></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Mon, 14 Nov 2022 22:03:49 -0600</pubDate></item></channel></rss>