<?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/tag/automation/feed" rel="self" type="application/rss+xml"/><title>MavenCloud - Blog #automation</title><description>MavenCloud - Blog #automation</description><link>https://www.mavencloud.tech/blogs/tag/automation</link><lastBuildDate>Fri, 23 Jan 2026 01:33:47 -0800</lastBuildDate><generator>http://zoho.com/sites/</generator><item><title><![CDATA[Send Emails to Dynamic Recipient Lists]]></title><link>https://www.mavencloud.tech/blogs/post/send-emails-to-dynamic-recipient-lists</link><description><![CDATA[Combine the power of saved searches, custom fields and workflows to elevate your communication with your Customers and Vendors!]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_5X1n4_srSVaJZcVagQ_nTQ" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm__-b13W4HRF-lEXKOeNTdbg" 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_LKq5KuyIT365TA4cXlM6Yw" 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_JYlwrb_gQbSx1g9Qhx-U4A" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_JYlwrb_gQbSx1g9Qhx-U4A"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p style="text-align:left;">One of the most common frustrations or complaints we receive in NetSuite is that native email functionality send emails to the main &quot;E-mail&quot; field on entity records.&nbsp; And the main E-mail field cannot hold more than 1 email address.&nbsp; This is very limiting to businesses as usually there are many different contact points in an organization that would want to be notified about different events with orders or transactions.&nbsp; This limitation can be somewhat overcome with workflows using the Send Email action as you have more flexibility in the parameters of the action to send emails to multiple recipients.&nbsp; There are a few &quot;hacks&quot; that work fairly well to give users the ability to add multiple email addresses on to Customer or Vendor records and then send emails to them, but most include adding a few different email address fields onto the entity record for different departments within the organization.&nbsp; You can also create an Email Address custom field and add it to the workflow, then change the field type to Free Text which will then allow you to add multiple comma separated addresses into the field, but yet still be used in a workflow.&nbsp; All of these are good options but can sometimes pose a problem of form clutter or workflow maintenance.</p></div>
</div><div data-element-id="elm_NyN6FC-UNSOOk3CbpDeRXQ" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_NyN6FC-UNSOOk3CbpDeRXQ"] .zpimagetext-container figure img { width: 500px ; height: 313.73px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_NyN6FC-UNSOOk3CbpDeRXQ"] .zpimagetext-container figure img { width:500px ; height:313.73px ; } } @media (max-width: 767px) { [data-element-id="elm_NyN6FC-UNSOOk3CbpDeRXQ"] .zpimagetext-container figure img { width:500px ; height:313.73px ; } } [data-element-id="elm_NyN6FC-UNSOOk3CbpDeRXQ"].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/email-marketing-concept-1.jpg" width="500" height="313.73" 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);">NetSuite custom fields are configured with a predefined &quot;data type&quot; so data can be easily validated while users are entering it.&nbsp; For example, if you select Integer Number then only integers can be entered into the field vs. selecting Decimal Number which allows decimals.&nbsp; One field type is Email Address which validates that the entered text is at least in the format of a valid email address.&nbsp; It also limits the user to only entering one email address.&nbsp; Alternatively, a Free Text field will allow any text so users can leverage this field type to enter multiple email addresses separated by a comma or semi-colon.&nbsp; Switching between these field types can provide different functionality in different situations so it is good to know which field type you need while first configuring your custom field.&nbsp; It is also very important because when you change field types ALL data entered into that field is erased so be sure to backup your data in an Excel file or by other means before changing field types.</span></p></div>
</div></div><div data-element-id="elm_nDh4ymsv6GS-AxzWc6ZR8g" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_nDh4ymsv6GS-AxzWc6ZR8g"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>One great trick we've deployed many times is to combine the power of saved searches with workflows to get an easy to manage system for adding, removing and changing the recipients for emails.&nbsp; This customization is fairly easy to setup and leverages many native features so you know it will remain stable throughout future releases.</p><p>The idea here is to use the Contact records associated with the entity to keep an up to date list of contacts and what transactions they want to be notified of.&nbsp; To start we will create a custom list called &quot;Email Group&quot;.&nbsp; This will help us categorize contacts into logical groups for sending emails.&nbsp; (You can also leverage the native &quot;Role&quot; field on contacts for this as well if you prefer).</p><p><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023.png" alt="" style="width:1051.8px !important;height:405px !important;max-width:100% !important;"></span><br></p><p><br></p><p>Next we will create a custom field on the contact record that we can use to select what group each contact should be a part of.</p><p><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023-2.png" alt=""></span><br></p><p><span style="color:inherit;"><br></span></p><p><span style="color:inherit;">Now we can add our contacts associated with our customer and assign them the proper email group</span></p><p><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023-3.png" alt="" style="width:1054.5px !important;height:340px !important;max-width:100% !important;"></span><span style="color:inherit;"><br></span></p><p><span style="color:inherit;"><br></span></p><p><span style="color:inherit;">The next step is to create a saved search of contacts and make it a summary search so we can use it to source the value of the transaction body field.&nbsp; In the criteria we want to exclude Inactive contacts, but include contacts with the Order Notifications email group.</span></p><p><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023-4.png" alt="" style="width:1038.64px !important;height:463px !important;max-width:100% !important;"></span><span style="color:inherit;"><br></span></p><p><span style="color:inherit;"><br></span></p><p><span style="color:inherit;">Then our results tab will include one summarized field using the NS_CONCAT function.&nbsp; This will concatenate all the results of the search into a single comma separated field value.</span></p><p><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023-5.png" alt="" style="width:1056.8px !important;height:480px !important;max-width:100% !important;"></span><span style="color:inherit;"><br></span></p><p><span style="color:inherit;"><br></span></p><p><span style="color:inherit;">Lastly, don't forget to give your saved search a filter so the system knows how to filter the results to get only the contacts applied to the correct company/customer.</span></p><p><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023-6.png" alt="" style="width:1046.15px !important;height:395px !important;max-width:100% !important;"></span><span style="color:inherit;"><br></span></p><p><span style="color:inherit;"><br></span></p><p><span style="color:inherit;">Now let's create a custom Transaction Body field that will hold the results of our saved search.&nbsp; Make sure to UNCHECK the store value checkbox so the value is dynamically sourced whenever the record is loaded.&nbsp; We used a Long Text field type just in case there were a lot of unique email addresses to be notified.</span></p><p><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023-8.png" alt="" style="width:1028.2px !important;height:540px !important;max-width:100% !important;"></span><br></p><p><span style="color:inherit;"><br></span></p><p><span style="color:inherit;">Also we need to define the saved search we created in the Validation &amp; Defaulting subtab.&nbsp; Remember to choose what field on the transaction should be used to filter your results.&nbsp; Since the Available Filter in your saved search was based on the Customer field, we should choose the same field in our custom field configuration</span></p><p style="text-align:center;"><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023-9.png" alt="" style="width:656.8px !important;height:313px !important;max-width:100% !important;"></span><span style="color:inherit;"><br></span></p><p style="text-align:center;"><span style="color:inherit;"><br></span></p><p style="text-align:left;"><span style="color:inherit;">Now our Sales Order form will dynamically source ALL email addresses that are tagged with the &quot;Order Notifications&quot; email group.&nbsp; And these addresses will automatically be filtered to only the contacts associated with the Customer defined on the transaction.</span></p><p style="text-align:left;"><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023-10.png" alt="" style="width:1055.2px !important;height:357px !important;max-width:100% !important;"></span><span style="color:inherit;"><br></span></p><p style="text-align:left;"><span style="color:inherit;"><br></span></p><p style="text-align:left;"><span style="color:inherit;">Then in your workflow you can add a Send Email action and assign the new transaction body field as part of the </span>recipients<span style="color:inherit;">.&nbsp; Note how we are using the CC Address parameter within the action and using the field ID of our new transaction body field to define the addresses to be copied.&nbsp; This is a great way to circumvent the restrictions placed on trying to select a field from the list in the From Field parameter.&nbsp; We have tested using this method in the Free Form Address field and the workflow will return an error.&nbsp; However, using the field ID in either the CC or BCC fields seems to work just fine</span><span style="color:inherit;">.</span></p><p style="text-align:center;"><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023-15.png" alt="" style="width:455.32px !important;height:312px !important;max-width:100% !important;"></span><br></p><p style="text-align:left;"><span style="color:inherit;">Since an email does require a Primary </span>Recipient<span style="color:inherit;">&nbsp;you do need to define a recipient in one of the fields other than the CC or BCC.&nbsp; You can use a native field as pictured above OR you can put in a static address of purchaseorders@mycompany.com.&nbsp; This way all communication emailed out of NetSuite is stored in a shared inbox for your company to review if needed.</span></p></div>
</div><div data-element-id="elm_J-crP4RBqnD02vZvvQxk7Q" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_J-crP4RBqnD02vZvvQxk7Q"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>The power of this functionality comes with the ease of maintenance for our users.&nbsp; For instance if Curtis Johnson were to leave the company and we need to add a new contact, it is as simple as managing the native Contact list on our Customer record.&nbsp; Curtis Johnson can be inactived and a new contact created with the same email group.&nbsp; Or if the accounting team wants to be made aware of new orders place, then they can easily receive the &quot;Order Notifications&quot; tag.</p><p><img src="/Tue%20Aug%2015%202023-13.png" alt="" style="color:inherit;width:1052.05px !important;height:293px !important;max-width:100% !important;"></p><p><br></p><p>Now when the next order is placed they will all be notified via email.</p><p><span style="color:inherit;"><img src="/Tue%20Aug%2015%202023-14.png" alt="" style="width:1051.64px !important;height:344px !important;max-width:100% !important;"></span><br></p><p><br></p></div>
</div><div data-element-id="elm_HPFq33AjXLIgg1efpsa0wA" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_HPFq33AjXLIgg1efpsa0wA"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>If you would like to learn more about the Send Email action you can read our <a href="https://www.mgbcpro.com/blogs/post/Send-Email-Action" title="blog post" target="_blank" rel="">blog post</a> specifically on this topic.&nbsp; Also if you would like help with or have questions about leveraging the customizability of NetSuite to build no-code automation in your environment please <a href="mailto:info@mgbcpro.com" title="reach" rel="nofollow noreferrer">reach</a> out.</p></div>
</div></div></div></div></div></div> ]]></content:encoded><pubDate>Tue, 15 Aug 2023 10:19:29 -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[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><item><title><![CDATA[Build Your First Workflow]]></title><link>https://www.mavencloud.tech/blogs/post/build_your_first_workflow</link><description><![CDATA[<img align="left" hspace="5" src="https://www.mavencloud.techhttps://images.unsplash.com/photo-1550751827-4bd374c3f58b?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=Mnw0NTc5N3wwfDF8c2VhcmNofDExfHx0ZWNobm9sb2d5fGVufDB8fHx8MTY2ODkwMjI3OA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080"/>Workflows in NetSuite can be an extremely power tool to help your business manage processes and eliminate tedious tasks. Learn the basics of created a workflow with this simple example.]]></description><content:encoded><![CDATA[<div class="zpcontent-container blogpost-container "><div data-element-id="elm_3BOIFYeNRmqE6J7DFOwN-w" data-element-type="section" class="zpsection "><style type="text/css"></style><div class="zpcontainer-fluid zpcontainer"><div data-element-id="elm_z6ipjRrSSM-Whn6b1NrcUQ" 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_G6mC4y3TS-GH8UCbuvWSPQ" 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_R_9yNAWBTRiLJmIWWQXgVQ" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_R_9yNAWBTRiLJmIWWQXgVQ"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-center " data-editor="true"><p>Workflows in NetSuite can be an extremely powerful tool to help your business manage business processes and maintain data integrity.&nbsp; Users at almost any level can leverage workflows to perform simple automation tasks, complex approval matrices or even larger data updates.&nbsp; With just a little &quot;playing around&quot; and reading NetSuite's documentation, building your first workflow is not as daunting as it seems.&nbsp; Here we will walk through the steps we take to put together a basic approval workflow.&nbsp; However, these basics are a great foundation to build upon to step into larger more complex workflows.</p></div>
</div><div data-element-id="elm_qfnBqLUWG2C_3TdoGvavyg" data-element-type="imagetext" class="zpelement zpelem-imagetext "><style> @media (min-width: 992px) { [data-element-id="elm_qfnBqLUWG2C_3TdoGvavyg"] .zpimagetext-container figure img { width: 500px ; height: 333.33px ; } } @media (max-width: 991px) and (min-width: 768px) { [data-element-id="elm_qfnBqLUWG2C_3TdoGvavyg"] .zpimagetext-container figure img { width:500px ; height:333.33px ; } } @media (max-width: 767px) { [data-element-id="elm_qfnBqLUWG2C_3TdoGvavyg"] .zpimagetext-container figure img { width:500px ; height:333.33px ; } } [data-element-id="elm_qfnBqLUWG2C_3TdoGvavyg"].zpelem-imagetext{ background-color:#226A87; background-image:unset; border-radius:1px; } </style><div data-size-tablet="" data-size-mobile="" data-align="right" data-tablet-image-separate="false" data-mobile-image-separate="false" class="zpimagetext-container zpimage-with-text-container zpimage-align-right 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-1581094289810-adf5d25690e3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=Mnw0NTc5N3wwfDF8c2VhcmNofDExfHxzb2Z0d2FyZSUyMHRlc3Rpbmd8ZW58MHx8fHwxNjY4OTg1NjE2&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><span style="color:rgb(255, 255, 255);">One of the nice things about workflows is you can still &quot;play around&quot; with them even if you don't have a SANDBOX account.&nbsp; With the </span><span style="color:rgb(234, 119, 4);">Testing</span><span style="color:rgb(255, 255, 255);"> status your workflow will only be triggered for you, so any other user will not be effected by a workflow that you are still working on.&nbsp; It is highly recommended that you use a SANDBOX account whenever possible, but if you don't have one available the Testing status is a very nice second option.&nbsp; The other options for statuses are Released, Not Initiating and Suspended.&nbsp; While Not Initiating and Suspended may seem like duplicate options, there are&nbsp;intricacies&nbsp;that are useful and important to understand.&nbsp; The Released status probably goes without explanation, but that will make your workflow effective for ALL users and ALL records that meet the criteria in your configuration.&nbsp; The Not Initiating status will stop the workflow from initiating for any NEW records created, however, existing records will continue through the workflow as it is setup.&nbsp; Suspended means that all records will stay in the current state they are in and not initiate new records OR transition existing records to new states in the workflow.</span><br></p></div>
</div></div><div data-element-id="elm_xxYtjiBoFFpZiFvJQRQejw" data-element-type="text" class="zpelement zpelem-text "><style> [data-element-id="elm_xxYtjiBoFFpZiFvJQRQejw"].zpelem-text { border-radius:1px; } </style><div class="zptext zptext-align-left " data-editor="true"><p>Now that we understand how to test and deploy workflows let start setting up an approval workflow for Expense Reports.&nbsp; Another nice feature NetSuite provides is you can leverage native fields and G/L impacting settings, while still building a completely customized workflow.&nbsp; Under Setup &gt; Accounting &gt; Accounting Preferences go to the Approval Routing tab.</p><p><span style="color:inherit;"><img src="/Sun%20Nov%2020%202022.png" alt="" style="width:598.61px !important;height:281px !important;max-width:100% !important;"></span><br></p><p>Then enable the Approval Routing feature for the transaction(s) of your choice.&nbsp; Once enabled we can begin to build our workflow.</p><ul><li>Start by navigating to Customization &gt; Workflows &gt; Workflow &gt; New and give your Workflow a name.<br><img src="/Sun%20Nov%2020%202022-1.png" alt="" style="width:1011.48px !important;height:335px !important;max-width:100% !important;"><br></li><li>Then in your workflow configuration select the Type as Transaction and the Sub Type as Expense Report.<br><img src="/Sun%20Nov%2020%202022-2.png" alt="" style="width:1049.88px !important;height:445px !important;max-width:100% !important;"><br></li><li>Next we want to choose Event Based as the initiation type and mark the Create and View/Edit checkboxes.&nbsp; This means the workflow will initiate when a new Expense Report is created OR when it is Viewed and/or Edited.<br><img src="/Sun%20Nov%2020%202022-3.png" alt="" style="width:1023.28px !important;height:368px !important;max-width:100% !important;"><br></li><li>Here you can also set specific criteria (either condition based or by creating a Saved Search with the criteria you want) on the Expense Reports that should trigger the workflow.&nbsp; For example if you only want approval for Expense Reports created in a specific subsidiary, then set that subsidiary in the Condition field.&nbsp; You can also define a Trigger Type that will define when in the process of creating a storing a record the workflow will trigger.&nbsp; These additional options can get complex so I usually try to leave these as &quot;open&quot; as possible.&nbsp; These types of restrictions on the overall workflow can conflict with conditions within the workflow on specific actions.&nbsp; I try to leave the overall workflow configuration as unrestricted as possible and then use conditions within the actions, transitions and states to manage these specific scenarios.<br><img src="/Sun%20Nov%2020%202022-4.png" alt="" style="width:1045.29px !important;height:397px !important;max-width:100% !important;"><br></li><li>Now click the Save button and your workflow will be saved and the workspace will be opened with one Initial State pre-populated.<br><img src="/Sun%20Nov%2020%202022-5.png" alt="" style="width:1055.08px !important;height:362px !important;max-width:100% !important;"><br></li><li>Your first state will be the Initiate state, which will be like an intake state for new Expense Reports and here you can start to perform initial actions and filter all Expense Reports into the correct subsequent states.&nbsp; Double click on State 1 and then Click the New Action button.<br><img src="/Sun%20Nov%2020%202022-6.png" alt="" style="width:1060.12px !important;height:319px !important;max-width:100% !important;"><br></li><li>In the Actions list select the Set Field Value action.&nbsp; Then choose the Approval Status field as the field to set the value of.&nbsp; And set a static value of Pending Approval.<br><img src="/Sun%20Nov%2020%202022-7.png" alt="" style="width:1051.26px !important;height:353px !important;max-width:100% !important;"><br></li><li>Next we will choose the Entry selection for Trigger On as we only want the status to be set when the record first enters the state, NOT every time it is Viewed or Edited.&nbsp; Here is where you can add conditions for each action that gives you more control over how your workflow interacts with Expense Reports, rather than putting overall conditions on the workflow itself.<br>For more information on Workflow Triggers, Event Types and Contexts read our <a href="https://www.mgbcpro.com/blogs/post/workflow_triggers_eventtypes_context" title="post" rel="">post</a> about how to use these parameters most effectively.<br><img src="/Sun%20Nov%2020%202022-9.png" alt="" style="width:1072.08px !important;height:419px !important;max-width:100% !important;"><br></li><li>Click Save on this action.&nbsp; Then select New Action and select the Add Button Action.&nbsp; In the parameters set the Button Label as &quot;Submit for Approval&quot;.&nbsp; We will also use the Before Record Load trigger so the button is added while the record is loaded from the database.<br><img src="/Sun%20Nov%2020%202022-10.png" alt="" style="width:1064.48px !important;height:458px !important;max-width:100% !important;"><br></li><li>The Save Record First checkbox can provide nice functionality for the users.&nbsp; If you check this box the &quot;Submit for Approval&quot; option will be added to the Save &amp; menu at the top of the Record.&nbsp; (For example there is Save, Save &amp; Print, etc.&nbsp; If you check the Save Record First button, there will now be an option for Save &amp; Submit for Approval)<br><br>Give this state a name and Save it<br><img src="/Sun%20Nov%2020%202022-11.png" alt=""><br></li><li>Now let's add another state into the workflow so we can make a transition to it, by clicking the New State button.<br><img src="/Sun%20Nov%2020%202022-12.png" alt=""><br></li><li>Double click on the initiate state and then click on the New Transition button</li></ul><div><span style="color:inherit;"><img src="/Sun%20Nov%2020%202022-13.png" alt=""></span><br></div><ul><li>Select State 1 as the state to transition to the select the Submit for Approval button under the Execute on Button drop down.&nbsp; Now your Expense Report will remain in the INITIATE state until someone clicks the submit button, upon which it will transition to the next state.<br><img src="/Sun%20Nov%2020%202022-14.png" alt=""><br></li><li>Now double click on your State 1 and lets add 2 set field value actions just like we did before.</li><ul><li>The first is to set the Approval Status field to Pending Approval on Entry<br><img src="/Thu%20Dec%2001%202022.png" alt=""><br></li><li>The second is to set the Next Approver field to the Employee's supervisor on Entry.&nbsp; To get the Employee's supervisor use the Field Join section in the parameters to get to the Employee record and grab their supervisor.<br><img src="/Thu%20Dec%2001%202022-1.png" alt=""><br></li></ul><li>​Next we will add 2 buttons.&nbsp; (1 for Approve and 1 for Reject).&nbsp; Also remember to add a condition to your Add Button actions so they only appear of the current user is the Next Approver.&nbsp; This way only the employee assigned to the Next Approver field can see the Approve or Reject buttons.<br></li></ul><div><span style="color:inherit;"><img src="/Thu%20Dec%2001%202022-2.png" alt="" style="width:1053.3px !important;height:390px !important;max-width:100% !important;"></span><br></div><div><ul><li><span style="color:inherit;">The next step is to add 2 new States (1 for Approve and 1 for Reject) to the workflow and 2 new transitions to the appropriate state.</span><br><span style="color:rgb(227, 63, 8);">Here is a great place to insert the MGBC Pop Up with Input Prompt custom action so collect a rejection reason.&nbsp; See our related</span><a href="https://www.mgbcpro.com/zcms/blogs/post/approval_workflow_popup_window" title="Blog Post" rel="" style="color:rgb(48, 4, 234);">Blog Post</a><span style="color:rgb(227, 63, 8);"> about capturing rejection reasons.</span><br></li></ul><div><span style="color:inherit;"><img src="/Thu%20Dec%2001%202022-3.png" alt="" style="width:1067.58px !important;height:352px !important;max-width:100% !important;"></span><br></div></div><div><span style="color:inherit;"><br></span></div><div><ul><li><span style="color:inherit;">Open your APPROVED state and add a Set Field Value Action to set the Approval Status to &quot;Approved&quot;<br><img src="/Thu%20Dec%2001%202022-4.png" alt="" style="width:1074.76px !important;height:423px !important;max-width:100% !important;"><br></span></li><li><span style="color:inherit;">Also open your REJECTED state and add a Set Field Value Action to set the Approval Status to &quot;Rejected&quot;<br><img src="/Thu%20Dec%2001%202022-5.png" alt=""><br></span></li><li><span style="color:inherit;">Lastly, it is recommended that you use the Do Not Exit Workflow checkbox on both Approved and Rejected states so the transaction does NOT re-enter the workflow after approved and show up with a new &quot;Submit for Approval&quot; button.&nbsp; This was the transaction will always remain in the Approved (or Rejected) state until you make a new Transition to move it into a different state.&nbsp;</span></li></ul><div><span style="color:inherit;"><img src="/Thu%20Dec%2001%202022-6.png" alt="" style="width:1083.45px !important;height:367px !important;max-width:100% !important;"></span><br></div></div><div><span style="color:inherit;"><br></span></div><div><ul><li><span style="color:inherit;">Now we have finished the basic structure of the workflow and can move it to Released status when testing is completed.</span></li></ul></div><div><span style="color:inherit;"><img src="/Thu%20Dec%2001%202022-7.png" alt="" style="width:1067.25px !important;height:475px !important;max-width:100% !important;"></span><span style="color:inherit;"><br></span></div><div><span style="color:inherit;"><br></span></div><div><span style="color:inherit;">This is a very basic example of a workflow but the steps outlined above can be easily expounded upon to create more complex functionality, multiple approval levels and even re-approval loops to meet any business requirement.&nbsp; If you are new to workflows try to follow these steps through to build out your first one.&nbsp; Or if you are&nbsp; very experienced with workflows hopefully you found a few tips you might not have know before.&nbsp; If you have any questions or would like more information about how workflows can help your business click the button below to contact us and let us know how we can help.</span></div><div><span style="color:inherit;"><br></span></div></div>
</div><div data-element-id="elm_G7-ITam5RDa5ywSExOB4rA" data-element-type="button" class="zpelement zpelem-button "><style> [data-element-id="elm_G7-ITam5RDa5ywSExOB4rA"].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>Mon, 25 Jul 2022 15:36:00 -0500</pubDate></item></channel></rss>