Browse Guides

Recurring Billing Profiles (Import Recurring Invoice Lines)
Reading mode
Copy Link
Link Copied!
Print
Feedback
This guide has multiple versions available:
<div><div><div><div><div><style>p { margin: 0; }span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left:0; padding-left:5px;}blockquote blockquote{ border-color: #00bcd4; color: #00bcd4;}blockquote blockquote blockquote{ border-color: #43a047; color: #43a047;} table.grid{ border-collapse: collapse;} table.grid td, table.grid th { border: 1px solid #ddd;} .fr-fic.fr-dib{ display: block; margin: 5px auto;}.fr-fic.fr-dib.fr-fir{ text-align: right; margin: 5px 0 5px auto;}.fr-fic.fr-dib.fr-fil{ text-align: left; margin: 5px auto 5px 0;}.fr-fic.fr-dii{ float: none; margin: 5px auto;}.fr-fic.fr-dii.fr-fil{ float: left; margin: 5px auto;}.fr-fic.fr-dii.fr-fir{ float: right; margin: 5px auto;}img.fr-dib.fr-fir { margin-right: 0; text-align: right;}img.fr-dib.fr-fil { margin-left: 0; text-align: left;}img.fr-dib { margin: 5px auto; display: block; float: none;}img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC;}img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc;}img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;}</style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><style> p { margin: 0; } span.fr-emoticon.fr-emoticon-img { background-repeat: no-repeat !important; font-size: inherit; height: 1em; width: 1em; min-height: 20px; min-width: 20px; display: inline-block; margin: -0.1em 0.1em 0.1em; line-height: 1; vertical-align: middle; } span.fr-emoticon { font-weight: normal; font-family: "Apple Color Emoji", "Segoe UI Emoji", "NotoColorEmoji", "Segoe UI Symbol", "Android Emoji", "EmojiSymbols"; display: inline; line-height: 0; } blockquote { border-left: solid 2px #5e35b1; color: #5e35b1; margin-left: 0; padding-left: 5px; } blockquote blockquote { border-color: #00bcd4; color: #00bcd4; } blockquote blockquote blockquote { border-color: #43a047; color: #43a047; } table.grid { border-collapse: collapse; } table.grid td, table.grid th { border: 1px solid #ddd; } .fr-fic.fr-dib { display: block; margin: 5px auto; } .fr-fic.fr-dib.fr-fir { text-align: right; margin: 5px 0 5px auto; } .fr-fic.fr-dib.fr-fil { text-align: left; margin: 5px auto 5px 0; } .fr-fic.fr-dii { float: none; margin: 5px auto; } .fr-fic.fr-dii.fr-fil { float: left; margin: 5px auto; } .fr-fic.fr-dii.fr-fir { float: right; margin: 5px auto; } img.fr-dib.fr-fir { margin-right: 0; text-align: right; } img.fr-dib.fr-fil { margin-left: 0; text-align: left; } img.fr-dib { margin: 5px auto; display: block; float: none; } img.fr-bordered { box-sizing: content-box; border: solid 5px #CCC; } img.fr-shadow { box-shadow: 10px 10px 5px 0px #cccccc; } img.fr-rounded { border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; -moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box; } </style><p><strong><span style="font-size: 11pt;">In this guide we will cover:</span></strong></p><p><span style="font-size: 11pt;"><strong>-&nbsp;</strong></span><strong>What are Recurring Billing Profiles?</strong></p><p><span style="font-size: 11pt;"><strong>- How to create a billing profile&nbsp;</strong></span></p><p><span style="font-size: 11pt;"><strong>- Importing Recurring Invoice Lines</strong></span></p><p><strong><span style="font-size: 11pt;">- Worked Example</span></strong></p><p><br></p><p><strong><span style="font-size: 14pt;">What are Recurring Billing Profiles?&nbsp;</span></strong></p><p><span style="font-size: 11pt;">Recurring Billing Profiles are used when importing recurring invoices lines into Halo from a csv file (spreadsheet). When importing lines each row in the csv will represent an invoice line and each column will represent which recurring invoice field the data needs to be imported into. Recurring Billing Profiles allow you to map the names of the columns in your csv file (spreadsheet) to the corresponding fields in Halo. This is useful when exporting recurring invoice lines from one platform, and importing them into Halo.&nbsp;<br></span></p><p><br></p><p><strong><span style="font-size: 14pt;">How to create a Billing profile&nbsp;<br></span></strong></p><p><span style="font-size: 11pt;">In this example, we will look at how Billing Profiles are configured &amp; how they allow you to update existing recurring invoices. Your recurring invoice must already exist in order for you to be able to import lines into it. The first step is to configure a Billing Profile that will be used to map XLS columns to fields in Halo.</span></p><p><br></p><p><span style="font-size: 11pt;">Navigate to Configuration &gt; Billing &gt; Recurring Billing Profiles.</span></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijg2MmNmZWU2LTE5ZjQtNDIyMC04ZTE4LTZkZjUyODNmN2ViYSJ9.P5IhOE5MPXAyqIaNVbBg3SDgOLg-f2pl4kHgQdIX7Cs" class="fr-fic fr-fil fr-dib" width="570" style="width: 572px; height: 368.378px;" height="368"></p><p><span style="font-size: 10pt;"><strong>Fig 1. Billing Profile Configuration Option.</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">In here, you will have an option to View/Edit XLS/CSV Profiles for Recurring Invoice Lines- this is where you set up your import profiles (via the &#39;New&#39; button in the top RHS).</span></p><p><br></p><p><span style="font-size: 11pt;">When creating a billing profile, you will be presented with a &#39;mappings table&#39;:</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjkyODViYmQ3LWEzM2EtNDFjYy04MDkzLThkNjAxZjM2MmFkYyJ9.6X6aPdNpN67HG9V1kb0Ibh03f-4Zlm6gVKFTxbIi7sw" class="fr-fic fr-fil fr-dib" width="1258" height="613"></span></p><p><span style="font-size: 10pt;"><strong>Fig 2. Creating a new Billing Profile.</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">The profiles will be explained further below. The two settings that are displayed above the field mappings table are important to understand. The setting &quot;When lines are not matched create new lines&quot; if lines are not matched, which is based on the mappings that have &quot;Is a matching field&quot; set to yes, then with this setting enabled, there will be new lines created on the recurring invoice.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">The force_new option will make a new line for the row on your import, regardless of matching. This is acheived by creating a column header called &#39;force_new&#39; and then setting the value of the rows to &#39;true&#39;.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Each import profiles can be set to &quot;Import all lines as one time charge&quot;. This is for the lines added to the recurring invoice that are to be invoiced for that period and then made inactive in the next period.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">The idea of this mapping table is to add a series of records into the table, where each record details the column header of the import spreadsheet you will be using &amp; the data that the column contains.</span></p><p><br></p><p><span style="font-size: 11pt;">For example, perhaps I would like to update the quantity of certain recurring invoice lines on respective recurring invoices. For this, I would be concerned with the following data:</span></p><p><br></p><ul><li style="font-size: 11pt;">Who&#39;s Invoice needs updating?</li><li style="font-size: 11pt;">What line needs updating?</li></ul><p><span style="font-size: 11pt;">Assuming the combination of Invoice + Invoice line is unique, you may well find a similar output to:</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImI0OWU5ZDg5LTA0ZmItNGZkNi05YWJkLWY0NDMzM2UyOWIxYyJ9.qSwfmaY6Om02FZnPiAG_q0b-oHNYjxwtz7gEa_LFuT4" class="fr-fic fr-fil fr-dib" width="708" height="226"></span></p><p><span style="font-size: 10pt;"><strong>Fig 3. Import spreadsheet.</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">With the import sheet formatted similar to <strong>Fig 3</strong>, you would want a Billing profile in Halo as:</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjUxZDQ1NGFiLWY0NjgtNGVmMi05ZjRjLWQ3OTQwNjlkNjVjMCJ9.Fj-ZFjbxmwEak2T7Bnszcjwiel7YBvDJBeHgY9KHEo8" class="fr-fic fr-fil fr-dib" width="1137" height="656"></span></p><p><span style="font-size: 10pt;"><strong>Fig 4. Billing Profile, to match that of Fig 3.</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Notice how &#39;Customer Name&#39; and &#39;Product Code&#39; are specified as Matching Fields - this means that, upon importing, Halo will check to see if it can find a Recurring Invoice for the specified customer, with said Recurring Invoice containing a line with the Given Product Code. If found, the quantity for the matched line will be updated accordingly. There is a checkbox for &quot;When lines are not matched create new lines&quot; this will mean that new lines will be generated if they do not match previous lines. We can also force recurring invoice lines by adding a column header &#39;force_new&#39; and setting the row values of the column to &#39;true&#39;</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 14pt;"><strong>Importing Recurring Invoice Lines</strong></span></p><p><span style="font-size: 11pt;">Now you have created your Billing Profile, you can use this to update Recurring Invoice line quantities.</span></p><p><br></p><p><span style="font-size: 11pt;">In Configuration &gt; Billing &gt; Recurring Billing Profiles, you&#39;ll find a button to &#39;Import Recurring Invoice Lines&#39;.</span></p><p><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImNmMzEyOWZjLTYzNDQtNGQ3MS05NWFhLTA4MmVmYmE0YTIyMCJ9.IUTNyXIPzYXVPRKus7Vqh-bW-BTQXP6zFj8wmTgSk6o" class="fr-fic fr-fil fr-dib" width="893" style="width: 895px; height: 326.392px;" height="326"></p><p><strong>Fig 5. Import Recurring Invoice Lines.</strong></p><p><br></p><p><span style="font-size: 11pt;">You can also import recurring invoice lines from the recurring invoice section of the &#39;Invoices&#39; module, using the menu in the top right hand side of the page.&nbsp;</span></p><p><br></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYwODBhZTAyLTg4ZTMtNGMwYS1hNGI5LWNhZjYwNmRmZjcyZiJ9.k2mdWSP6oq-XwEUJdOqMxQnkvdH0FgTTux20mw9wfSg" class="fr-fic fr-fil fr-dib" width="1531" style="width: 1533px; height: 437.573px;" height="438"></span></p><p><br></p><span style="font-size: 10pt;"><p><strong>Fig 6. Import recurring invoice lines from the invoicing module.</strong></p></span><span style="font-size: 11pt;"><p><br></p></span><p><br></p><p><span style="font-size: 11pt;">Upon clicking this, you are presented with the option to select from the relevant billing profile (you may get spreadsheets from different systems, which use different naming conventions for similar columns: Client Vs Customer, for example. In this case, you would create multiple billing profiles for these different systems and use the relevant profile per import):</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijg3MGNhN2E2LWZjNTUtNDQxZC05OWY0LTFmOGFmMGQzNjNiOCJ9.hBJn6qz3SdKTev6rqsNo2iZdqTe9XePKvvfiGoS9SWg" class="fr-fic fr-fil fr-dib" width="620" height="208"></span></p><p><span style="font-size: 10pt;"><strong>Fig 7. Selecting your billing profile to use when importing Recurring Invoice Lines.</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">Once you have selected the relevant Billing Profile, you will be presented with the Import Preview screen, where you can select the import spreadsheet you will be using.</span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">You may find that some of your import rows fail.</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjIzZTI5M2RiLTQ3ZDAtNDk4MC1hMTE2LTJhYTQ3N2NmMzkxOCJ9.kPSve1thO1Kp4Z5HDF4fc3LMKf9Ws3bdyiABuGWPNuQ" class="fr-fic fr-fil fr-dib" width="1693" height="544"></span></p><p><span style="font-size: 10pt;"><strong>Fig 8. Result of importing Recurring Invoice Lines, based on our Example Billing Profile.</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">If lines fail, then the &#39;failure message&#39; will be returned in the browsers developer tools, which you can access via pressing f12 in the browser:</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6Ijk0ZmE4YTBmLTVmMDgtNDgyZS05ZjQ2LWUyY2MwMzNiYTNjOCJ9.j32F2JZaqlTk3P2sHgkLq8I0iuLkOCpqpDPrrAq1g8A" class="fr-fic fr-fil fr-dib" width="1128" height="847"></span></p><p><span style="font-size: 10pt;"><strong>Fig 9. Viewing the console in your browser.</strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 14pt;"><strong>Worked example- Import for a Recurring Invoice Line</strong></span></p><p><span style="font-size: 11pt;">As an example, the following columns have been added to the billing profile:</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjJhMTI3ZDBmLTU2NzQtNGEwOS04NDk2LWQ0MDg4MzBjZDI5NCJ9.gLkWOtG5Cr94n3Mv8BpXo8pIO27hMXh5aJZArF8FrP8" class="fr-fic fr-fil fr-dib" style="width: 1179px;"></span></p><p><span style="font-size: 10pt;"><strong>Fig 10. Example billing profile.<br></strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">The Recurring Invoice ID can be found in the URL of the browser&#39;s page. The import spreadsheet included the following:</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjVmYjZkZjVhLTk1MzgtNDBhOS04MDJlLWQ3NGNhNDIxZmEyYSJ9.1rdsDl90jh9V_YSLUoVSXN_Cfzu6YqHR1M4ayYL3jYA" class="fr-fic fr-fil fr-dib" style="width: 1278px;"></span></p><p id="isPasted"><span style="font-size: 10pt;"><strong>Fig 11. Import spreadsheet with relevant columns.<br></strong></span></p><p><span style="font-size: 11pt;"><br></span></p><p><span style="font-size: 11pt;">The Recurring Invoice now has a new line on it for the line that has been added via the import spreadsheet.</span></p><p><span style="font-size: 11pt;"><img src="https://halo.haloservicedesk.com/api/attachment/image?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6ImMxODNkZWYzLTkzMGEtNDMyYy05NjZmLTQwZWE1YWY4OTEyMiJ9.Zmiy6XVUq7RDAMd8UXntC3s_CwTcF1iH5jy40AE3VxM" class="fr-fic fr-fil fr-dib" style="width: 1339px;"></span></p><p><span style="font-size: 10pt;"><strong>Fig 12. Invoice following import.</strong></span></p></div></div></div></div></div>
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.