# Analytics - Filter and export your data
Source: https://docs.upflow.io/en-us/analytics/good-to-know/analytics-filter-and-export-your-data
Filter your Upflow Analytics view by date range, workflow, country, account manager, or custom fields, then export the data to CSV or Excel.
Your [Analytics list view](https://app.upflow.io/organization/-/analytics) allows you to monitor and filter your personalized data and export it to a CSV/Excel file.
## Filtering Analytics
Use the filter button on the top right corner of the page to display specific data based on:
* A date range, up to 24 months
* Owners
* Workflow names
* Countries
* Languages
* Customer ratings
* Saved payment methods
* Saved payment methods status
* Customer [Custom fields](/en-us/core-entities/others/import-and-create-custom-fields-into-upflow)
* Text fields are not supported as Analytics filters
* Invoice custom fields are not yet available as Analytics filters
***
👉 The filters are cumulative. Have a try; apply several at once!
***
## Create new reports
Once filters are applied, or widgets are edited, save this customization as a new report to find it easily next time!
## Exporting Analytics
Download the data you want to look into in two clicks.
Hover over the graph you are interested in exporting (with or without applied filters) to display an *Download* button. Select your favorite format, and voilà!
***
👉 The applied filters will be reflected in the exported data.
***
# Discrepancies between Upflow and my billing/accounting software
Source: https://docs.upflow.io/en-us/analytics/good-to-know/discrepancies-between-upflow-and-my-billingaccounting-software
Diagnose mismatches between Upflow and your accounting software: foreign exchange, unsent invoices, future-dated invoices, and sync issues.
Are you seeing discrepancies between Upflow and your billing/accounting software? There are various reasons that can explain it.
## Foreign exchange
Upflow uses the current spot rate for all the existing transactions to compute the organization's balance in a single currency. It doesn't rely on historical FX rates.
This could explain minor differences between Upflow and your source system.
It might be particularly acute when there is a high variability between the organization's currency and the underlying invoices' currencies.
**How to test it**
* Look at a customer with invoices in a currency different from your org currency that have a discrepancy.
* Check the underlying entities that aggregate to the balance
* If none is missing, it means the issue is related to FX.
## Unsent invoices
When sending your invoices from Upflow, they are imported into Upflow as Unsent by default and excluded from the analytics (learn more: [Send invoices from Upflow](/en-us/collection-and-collaboration/send-invoices-from-upflow/overview)).
**How to test it**
In your Invoices list view, [check if you have any Unsent invoices](https://app.upflow.io/organization/-/invoices?page=0\&filters=%7B%22status%22%3A%7B%22in%22%3A%5B%22UNSENT%22%5D%7D%7D).
## Invoices in the future
Upflow dashboard and analytics will not take into account invoices that are issued in the future, as it would create discrepancies between current and historical analytics.
**How to test it**
Check your invoices list view and [identify invoices issued in the future](https://app.upflow.io/organization/test-bank-of-armorica-yhasix2t1-/invoices?page=0\&filters=%7B%7D\&sort=%7B%22field%22:%22issuedAt%22,%22order%22:%22DESC%22%7D).
## Synchronisation issue
One reason for a mismatch in the amount can be a synchronization issue. In that case,
* We might be missing an invoice or payment in the source system, or
* We might have missed a deletion, leaving the entity in Upflow.
This should be rare, as we rely on "fix" payments to ensure the balance in Upflow always matches the source system.
Please submit a Support request at the top right, along with the following information:
| Field | Explanation | Your information |
| - | - | - |
| Your Upflow organization name | Essential, especially if you have several organizations in Upflow or use a name that is different from your domain. | |
| Your accounting/invoicing tool | E.g., NetSuite, Xero, Chargebee. | |
| Where do you see this discrepancy in Upflow? | E.g., Main Dashboard, Analytics > Billing Cohorts, Customer detail page. | |
| The Upflow URL link to the unsynchronized customer(s) | Head to the customers' detail page(s), copy their URL, and paste it here. | |
| Description of the error you are encountering | E.g., "This invoice has been paid in my system but appears as unpaid in Upflow," or "This invoice doesn't exist in my invoicing system." Provide context: when it was done in your system, with which process, and any related/linked references. | |
📌 Finally, attach to the request screenshots of the relevant references from your invoicing tool.
# Multi-currency conversion in Upflow
Source: https://docs.upflow.io/en-us/analytics/good-to-know/multi-currency-conversion
How Upflow converts multi-currency amounts to your organization's default currency using daily fixer.io rates, and how to read the breakdown.
In Upflow, you have an organization default currency, which displays the amounts whenever there is an aggregation (Organization outstanding amount, customer outstanding amount, etc.).
We do this by taking the rate from [fixer.io](http://fixer.io/), and by refreshing it daily.
We use today's rate across all currency conversions. Upflow historical analytics are based on today's rate and might differ from analysis using historical FX rates.
Additionally, when the displayed amount contains several currencies, we will display a breakdown of each currency and the converted amount.
# Unapplied amounts in Analytics
Source: https://docs.upflow.io/en-us/analytics/good-to-know/unapplied-amounts-in-analytics
Understand how unapplied payments, refunds, and credit notes affect your outstanding amount, DSO, and aging balance across Upflow analytics.
## Unapplied amounts
Unapplied amounts are payments, refunds or credit notes that have been issued, but have not yet been applied to an invoice. This can happen for a number of reasons, such as:
* The payment was received before the invoice was created
* An excess payment was received and not refunded
* A credit note was issued and will be applied to a future invoice
Outstanding amount is the total that is owed by your customers, so any unapplied amount will reduce the outstanding amount:
💡 **Outstanding = Due + Overdue - Unapplied**
## Benefits of reducing unapplied amounts
Unapplied amounts can have a number of impacts on your business, including:
* **Improved cash flow forecast:** Unapplied amounts can lead to incorrect analysis and forecast of your cash flow, making it more difficult to manage your business.
* **Improved customer service:** Unapplied amounts can lead to confusion and frustration for your customers. By reducing unapplied amounts, you can improve customer service and satisfaction.
* **Reduced administrative costs:** Unapplied amounts can increase your administrative costs, as you have to spend time tracking them down and applying them to invoices. Reducing unapplied amounts can reduce your administrative costs, freeing up your time and resources.
* **Improved financial reporting:** Unapplied amounts can make it difficult to get an accurate picture of your financial health. By reducing unapplied amounts, you can improve your financial reporting and make better decisions about your business.
## Unapplied amounts in analytics
Historically in Upflow, unapplied amounts were not included in Analytics but were included in outstanding amounts calculations: for example on the homepage and customer list view. This led to inconsistencies between totals, underlying data, and analytics metrics such as the DSO.
Our latest logic aligns all calculations according to the definition: Outstanding = Due + Overdue - Unapplied.
| **Upflow App** | **Include Unapplied** | **Comment** |
| - | - | - |
| Homepage: Outstanding Amount | ✅ | By definition: Outstanding = Due + Overdue - Unapplied |
| A drilldown is available on unapplied amount | | |
| Homepage: DSO | ✅ | Including unapplied in DSO calculation will reduce the DSO |
| Homepage: At-risk rate | ❌ | At risk is related to billing cohorts, which are based on invoices. These exclude unapplied amounts |
| Homepage: Aging Balance | ✅ | Shows as striped bar charts |
| Analytics: DSO | ✅ | Included in the outstanding amount used to calculate DSO |
| Analytics: Collection Effectiveness Index | ✅ | Included in the outstanding amount used to calculate CEI |
| Analytics: Cash collection | ✅ | Included as part of payments, credit notes and refunds |
| Analytics: Billing cohorts | ❌ | Billing cohorts are based on invoices and so exclude unapplied amounts |
| Analytics: Aging balance | ✅ | Shows as striped bar charts |
| Analytics: Payment mix | ✅ | Included in payments |
| Analytics: A/R Financials Summary | ✅ | Included in the “unapplied” column. |
## Aging balance and unapplied amounts
### How are unapplied amounts associated to each bucket?
By definition, unapplied amounts are not associated to an invoice and so cannot be precisely aged. However, it is common across the ERP industry (NetSuite, QBO) to “assume” that the age of an unapplied amount is equal to the age of the underlying transaction, as of today.
💡 **Example:** Today is the 28th of November, a credit note of \$1,000 issued on the 1st of November would be 27 days old. It is associated to the bucket **1-30 days**. An unapplied payment issued today would be 0 days old, and associated to the **due** bucket.
In Upflow’s homepage this translates to a negative value in the aging balance bar chart, with a striped color coding that helps identify it.
In the analytics reports, the historical aging balance widget also has a striped, negative unapplied amount for each month.
*![]()
*
## Unapplied amounts - globally in the Upflow app
You can have a quick view on unapplied amounts in:
#### The Customers list view
Add the **Amount unapplied** column to your default view or save it as a new one.
#### The Payments list view or Credit notes tab
Filter unapplied amounts or add it as a column:
#### The customer detail page
Hover your mouse over the tooltip next to the balance:
# At-risk rate
Source: https://docs.upflow.io/en-us/analytics/homepage/at-risk-rate
Track the share of invoices that go 90+ days past due with Upflow's at-risk rate — a leading indicator for write-offs and collection effectiveness.
At Upflow, we consider outstanding invoices to be at-risk when they are 90-days past due. After that, the probability of getting paid drastically decreases, and you need to prepare for some write-off. It's therefore really important to closely monitor the invoices that venture into this danger zone.
On your dashboard, you will be able to see the at-risk rate which is the percentage of your billed invoices in a given month that is left unpaid after 90 days.
This graph is actually a reversed measure of the paid \<90 days column of your billing cohorts.
Any questions, suggestions? [Get in touch](mailto:support@upflow.io)!
# How does Upflow calculate your DSO?
Source: https://docs.upflow.io/en-us/analytics/homepage/dso-calculation
Learn how Upflow calculates your DSO using the Countback method, including which invoices and payments feed the formula and how to break it down.
Your operations come at a cost—monitor your DSO (Days Sales Outstanding) to ensure they’re not put at risk by low liquidity.
This metric indicates the average number of days needed to collect your accounts receivable. The lower, the better: if your Sales are cashed in quickly, you can reinvest them in your activity. Compare your performance with your Best Possible DSO to spot areas of improvement, and set a target to incentivize your teams to reduce the discrepancy!
As with all widgets, the DSO is subject to global Analytics filters and can be moved around, resized, or duplicated. Its results are exportable. Click on any value’s name in the legend to hide it or display nothing but.
It shows the evolution of
* your DSO (calculation detailed below)
* your Best Possible DSO—displayed when the widget isn’t broken down, it shows what your debtors days would be had you been paid on time
…both compared with your target DSO. Update it from the widget management button in the top-right corner!
By default, a high-level summary appears on your Homepage and the widget—in your Account receivables dashboard.
For more granularity, break down the widget. Split it per workflow, Account manager… and even custom fields (including those imported from your source system)! Select up to 10 values. Filters are not cumulative (you cannot break down your DSO per account manager AND workflow): those selected last apply.
## Calculation
On Upflow, your DSO is calculated following the Countback method (read [our blog article](https://upflow.io/blog/reduce-dso/dso-calculation-formula) to understand our decision!).
💡 The DSO is re-calculated in real-time. It is based on
* Invoices (all but drafts, voided, unsent, and written off—including disputed ones)
* DSO— AR are your outstanding amount (due + overdue invoices)
* Best Possible DSO—AR are your due amount (no overdue invoices as they’re paid on time)
* Payments and credit notes (unapplied amounts are not taken into consideration)
Using the Countback method, one subtracts a set period’s gross sales (turnover) from their Account receivables and reports the result as the previous period’s AR. They move back in time, repeating the operation until the turnover exceeds the reported account receivables.
The DSO equals the duration (in days) of all periods where the turnover was higher than the account receivables, summed up with the last period’s DSO pro rata (reported AR/gross sales \* period’s number of days).
💡 To simplify: Account receivables are the sum of past periods’ gross sales. Deducing them one period at a time leads to the moment
## Example
Suppose one wants to calculate their DSO on the first day of April, with the following monthly turnover and £19,000 worth of Accounts receivable.
* In March, the AR exceeded the turnover.
* the whole period (31 days) contributes to the DSO
* the gross sales are deducted from the account receivable and reported to February
* In February, the reported AR (March’s £19K - £11K) exceeded the turnover.
* the whole period (28 days) contributes to the DSO and is added to March’s days
* the gross sales are deducted from the account receivable and reported to January
* In January, the turnover exceeds the reported AR (February’s £11K - £1K)
* the period’s DSO pro-rata contributes to the DSO
→ 31 + 28 + 3.1 = 62.1 days
# Cost savings calculator
Click ***Cost savings*** to open a sidebar detailing the monthly return on investment of reducing your DSO. 💡 Expand the widget for more visibility It translates into an amount, based on
* your Sales (previous month’s by default)
* your WACC (20% by default)
* your DSO (previous month’s by default)
* your target DSO (BPDSO + 5 days by default)
Update your DSO and target DSO from the Sidebar, or click **More details** and adjust your Sales and WACC to obtain more accurate predictions.
The graph compares your DSO with your projections and objective to provide the financing costs you would save on unpaid invoices, late payments, etc.
The different amounts are calculated as follows:
* **Current financing cost of DSO (monthly)** =
(Monthly Sales \* Current DSO / 30) \* (WACC/12)
* **Target financing cost of DSO (monthly)** =
(Monthly Sales \* Target DSO / 30) \* (WACC/12)
* **Savings (monthly)** =
Current financing cost of DSO (monthly) - Target financing cost of DSO (monthly)
Refresh your dashboard to return to default values, or save it to access your updated information in a click and share them with your team.
# Schedule dashboards by email
Source: https://docs.upflow.io/en-us/analytics/saved-reports/schedule-dashboards-by-email
Schedule Upflow analytics dashboards to be emailed to you or your team daily, weekly, or monthly to keep finance stakeholders informed automatically.
Send yourself or your team dashboards on weekly or monthly basis and use these as reminders or reports for your finance team.
## How does it work?
From your Analytics tab, you have access to four default dashboards, accessible from the top left:
And the ability to create custom ones if needed.
In both defaults and customs, you can filter your data on specific information (top right of the page).
## Schedule your report email
Head to the dashboard of your choice (defaults or custom). Then at the top right, click the calendar icon:
Add your team's email addresses or yours in the dedicated field, select the recurrence, the time\*, then click Schedule!
\*the time you select will be based on your organization timezone (Settings > Company > bottom of the page). The format is 24 hours.
### Recurrence/Frequency
You have three options: daily, weekly, monthly. The time options will be available accordingly:
### Questions
**How many report emails can be scheduled per dashboard?**
You can define one automatic schedule per dashboard.
**Who can access this feature?**
Any users with an Admin role or a Finance position.
# Aging balance
Source: https://docs.upflow.io/en-us/analytics/widgets/aging-balance
Visualize how your receivables age over time with the Upflow aging balance widget, broken down by due, overdue brackets, and unapplied amounts.
Take a look at how your collection state evolved with the Aging balance widget, highlighting where you were at different points in time. Learn how your strategy impacted your collection over different periods and adjust it accordingly.
Each bar represents the amounts you were due at the end of each period (including disputed invoices), broken down into aging buckets (due, overdue for less than 30 days, 30 to 60 days, 60 to 90 days, more than 90 days). As well as unapplied amounts (learn more on their impact [here](/en-us/analytics/good-to-know/unapplied-amounts-in-analytics)).
**When does an invoice become overdue?** An invoice is counted as **Due** on its due date, and moves to **Overdue** starting the day after — that is, once it is at least 1 calendar day past its due date. An invoice whose due date is today still sits in the **Due** bucket.
Hover your mouse over the period you are interested in to display the breakdown. Note the amounts are always shown in your organization default currency. There is no breakdown by currencies today.
### Aging balance calculation
* For each period, the amounts are calculated for the end of the period, i.e. the end of the last day.
* For an ongoing/current period, it is calculated as of now (today).
* Future issued invoices are excluded from all analytics.
* When you apply filters to your Analytics report/dashboard, it will be calculated accordingly. The last period will correspond to the end date of the filter, which could be in the past. This is the best way to obtain the aging balance as of a date in the past.
## Use the aging balance widget
### Main dashboard
From your Upflow main dashboard, you will see a direct view of your aging balance, per bracket.
Click one to be redirected to the filtered invoices for more details, and export them if needed. To this view, you can filter further or rearrange the columns and save it!
### Analytics view
Filter your data from the dashboard’s filter button to focus on your interest (Date range, Country, Owners, Workflows, Custom fields…).
Hover your mouse over the widget to display the actions menu allowing you to export the widget’s (filtered) data.
| Action | Screenshot |
| - | - |
| Display from absolute numbers to relative values. |
|
| Break down the data per customer/invoice fields. |
|
| Remove one of the buckets by clicking its name in the legend. |
|
| Move the widget around, expand or reduce its size. |
|
| Remove, duplicate, export the widget, or copy the link to share it with a teammate. |
|
## FAQ/Good to know
#### When clicking the aging bucket, the total of invoices doesn't match the bucket's amount.
When applied Credit Notes have an issue date in the future, they will impact the Aging balance calculation.
This widget logic excludes applied transactions (payments, credit notes, refunds) with an issue date in the future. On the other hand, pre-computed invoice fields (status, aging bucket…) used by the list view take into account those future transactions.
# Billing cohorts
Source: https://docs.upflow.io/en-us/analytics/widgets/billing-cohorts
Compare invoice collection speed across monthly cohorts in Upflow to spot trends in payment behavior and measure improvements in your dunning process.
As a modern finance leader, you know how important it is to measure your company's financial performance so that you can improve your financial position and better forecast future cash flows.
## What is a billing cohort?
In essence, a billing cohort tracks groups of invoices that were issued in the same month.
The fundamental idea behind billing cohort analysis is to compare different billing cohorts with one another: for example, you may want to compare the percentage of invoices issued in May 2019 that were paid in under 30 days to those that were issued in September 2019 and that were paid within the same amount of time.
If you've been improving your collection efficiency, then the percentage of invoices paid in 30 days that were issued in September should be higher than those that were issued in May.
The best way to visualize this data is by using a 2 by 2 matrix:
Here, each row represents a different month of billing (a cohort), and each column represents the cumulative percentage of invoices that were paid within a certain time period. So here, for example, we can see that in December, we issued \$7M in invoices and 55% of those were paid within 60 days of issuance.
Of course, you should adjust time buckets based on your business and your payment terms.
## How to read a billing cohort?
There are two ways to read a billing cohort:
* **Left-to-right** : this tells you how quickly the invoices in a given month were paid. The numbers are cumulative so they'll always increase, but they should get to 100% quickly. In fact, in an ideal world, the 30-day bucket should be at 100%.
* **Bottom-to-top** : this allows you to understand how the speed at which you get paid evolves over time. For example, in the example above, in August, 24% of invoices were paid within 30 days, and in March of the following year, 18% of invoices were paid within the same amount of time. This means that you're becoming less efficient at collections and that it's probably time to make some process changes.
## What is the exact calculation methodology?
* **Sales/Invoiced amounts** : We sum the total amount of all the invoices billed during the corresponding months (based on the issue date)
* *We exclude any draft invoices that you may have (NetSuite only)*
* *Written off invoices remain part of the Sales and are accounted as loss so they are displayed in the cohorts*
* **Collected percent** : We divide the value of Payments + Credit Notes received corresponding to these invoices by the Sales
* **Unpaid** : we subtract what has been paid (payments + credit notes) from the Sales.
👉 Multiple currencies are converted to the organization’s base currency. [Here's how Upflow converts your multiple currencies in your platform](/en-us/analytics/good-to-know/multi-currency-conversion).
# Cash forecast
Source: https://docs.upflow.io/en-us/analytics/widgets/cash-forecast
Project incoming cash from your receivables in Upflow, based on historical billing-cohort collection patterns and your upcoming sales numbers.
*Note: Cash forecast and Cash Flow are different as we are looking at cash coming in from your Account Receivables. To get a complete view of your Cash Flow you should also look at your Account Payables, Inventory etc.*
## How does the cash forecast model work?
We aggregate all the invoices in batches per month and based on your collection speed (displayed in your *billing cohort*; read from left to right), we estimate how much cash is likely to come in, in the next few months.
*Note: we are assuming invoices are sent on the same date, at the beginning of the month. If you have a very low number of invoices that constitute most of your Revenue, the estimates might not be as accurate.*
The idea is to assume the collection from previous months. For instance, looking at the chart below we can assume that the average collection for the first month of each cohort is an average of 86%, 73%, and 91%, so around 83%. We assume that at the end of the first month of the cohort of Nov 2021 we will have collected 83% of what has been billed this month. We follow the same reasoning to calculate the cash coming in for the 2nd month of October's cohort, and so on.
## Why not use the DSO?
The [DSO](/en-us/analytics/homepage/dso-calculation) is an average measure of your collection. We want to provide you with a more aggregated way of computing the cash coming in compared to an invoice-based projection.
For instance: if you send an invoice on the first of November for \$100 with an average DSO of 45 days, you could expect to be paid on the 15th of December. However, if you are not paid on the 15th or before, projecting the cash attached to this invoice is very complicated, as you are still likely to be paid but the timing is unknown.
## FAQ
* **I don't know all or some of my upcoming sales numbers, will I be able to use the cash forecast feature?**
Yes, you can input the numbers you know! We can also assume it's 0, but you will still be able to see how much cash will be coming in from your past sales.
* **The projected sales numbers are disappearing after I refreshed my page or go somewhere else, is this normal?**
Yes. For now, the numbers you input are not stored in Upflow. If you feel like they should, please [let us know](mailto:support@upflow.io)!
# Collection effectiveness index
Source: https://docs.upflow.io/en-us/analytics/widgets/collection-effectiveness-index
Measure how much of what could be collected was actually collected with Upflow's CEI widget, a seasonality-resilient complement to DSO.
Assess how efficient your collection strategy is over time, tracking its evolution with the CEI widget. Completing your DSO (which measures your average payment delays), the CEI compares the amounts cashed in against those that could have been collected within a given period.
While your DSO is impacted, should your sales be subject to factors such as seasonality, your CEI offers a robust measure of your collection’s performance. Monitor its evolution and react quickly if the curve suddenly goes down!
## A little bit of math
This CEI is obtained by dividing what you have collected over a period of time by what you could have collected.
Let’s imagine you obtained the following results for your August sales and want to measure the period’s CEI.
What you have collected (numerator)
🎓 Add up the amounts that were available to collect during the period… €**200** \[Outstanding amount at the end of the previous period (July)] ➕ €**100** \[Amount billed during the period (August)] **→ €300 was collectible**
***
## …before withdrawing €**140** \[The outstanding amount at the end of the period (August)] **→ €300 - €140 = €160 was collected**
## What you could have collected, given this period’s performance (denominator)
🎓 Here, you start by withdrawing €**40** \[Cash collected from the amount billed during the period (August)] from €**100** \[Amount billed during the period (August)] **→ an extra €100 - €40 = €60 could have been collected in August**
***
## …before adding it to your Outstanding amount at the end of the previous period (July). **→ €200 + €60 = €260 could have been collected**
## And now we divide!
(200 + 100 - 140) / (200 + 100 - 40) = 160 / 260 = 62%
## Your dashboard's features
Filter your data from the dashboard’s filter panel to focus on your interest (Country, Account manager, Custom fields…).
Hover your mouse over the widget to display the actions menu allowing you to export the widget’s (filtered) data.
# Email open rate significant drop
Source: https://docs.upflow.io/en-us/analytics/widgets/email-open-rate-significant-drop
Troubleshoot a sudden drop in dunning email open rate by checking your DNS records and domain verification in Upflow's Deliverability settings.
A steep and sudden drop in the email open rate usually suggests an issue with your DNS configuration and tracking, although this may not be evident automatically.
If you see this occurs, go to your ***Account Settings*** > click on ***Deliverability*** :
Then click on ***Verify your domain*** :
All records should display a green checkmark / ***Verified*** status.
If **Invalid**, this would in fact confirm an issue with the DNS setup resulting in the email open rate drop:
## Open tracking is disabled
If the **Action emails open rate** widget shows **Email open tracking is disabled** instead of a chart, your organization has turned off email open tracking. Upflow no longer measures the open rate in that case.
* If you are an admin, click **Go to email tracking settings** and turn on **Track email opens**.
* If you are not an admin, ask an administrator to turn on open tracking.
See [Email tracking settings](/en-us/collection-and-collaboration/emails/sending-emails#email-tracking-settings) for details.
If you need any additional assistance from our Support team, please don't hesitate to [contact us](/en-us/essentials/get-started/contact-our-support-team).
# Follow performed actions month by month
Source: https://docs.upflow.io/en-us/analytics/widgets/follow-performed-actions-month-by-month
Monitor collection activity month over month in Upflow with the Actions analytics widget, broken down by emails, calls, letters, and account manager.
With our *Actions* graph from your *[Analytics tab](https://app.upflow.io/organization/-/analytics)* , you can follow more closely performed actions month by month:
* Action type: manual or automatic emails, calls, simple or registered letters;
* How many;
* Evolution over the last 12 months;
* Use our date range filter to go further in time;
* [Filter and export this data](/en-us/analytics/good-to-know/analytics-filter-and-export-your-data).
**This feature helps you to:**
* See the time saved by these actions on your collection process;
* Monitor the activity of the team as financial manager or monitor own performance;
* Have a quick overview of the distribution of each action by type, especially for automatic actions;
* Improve your workflows thanks to precise data.
Do you want to see the number and type of actions performed by one or more account managers? A specific workflow? Other criteria? It's possible!
Find out more in our detailed FAQ article: [Analytics - filter and export your data](/en-us/analytics/good-to-know/analytics-filter-and-export-your-data). 🎉
Any questions, suggestions? [Get in touch](mailto:support@upflow.io)!
# Payment mix
Source: https://docs.upflow.io/en-us/analytics/widgets/payment-mix
Analyze the month-on-month breakdown of payments received in Upflow by method (card, ACH, SEPA, check) to spot trends and optimize processing costs.
Checks will take longer to process than automatic payments, while cards come at a cost. These affirmations do not come as a surprise to you; but can you be as confident when it comes to each method's return on investment? Take a look at our breakdown to identify trends, offer the right solutions to your customers or anticipate a migration effort.
## What information will I find?
Go to your **[Analytics](https://app.upflow.io/organization/-/analytics)** tab to review your payment mix.
It indicates the month-on-month evolution of your payments per method.
Hover your mouse over any bar to display the detail of the chosen period in your organization's default currency; apply filters of your interest and export the data for ulterior exploitation.
## Payment mix additional features
From this widget, you can display results in numbers or percentage, review the data on a quarterly, monthly, or weekly frequency.
As well as see a breakdown of payment on multiple conditions:
Click "Payment method (source)" for more insights, if some of your payment methods are missing from the default displayed values.
# Copy a workflow from one organization to another
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-basics/copy-a-workflow-from-one-organization-to-another
Duplicate a proven Upflow workflow into another organization with one click, then adjust or assign it to customers without rebuilding it from scratch.
Your analytics show a workflow was proven efficient? Effortlessly reinvest the time and creativity put into designing and testing it out across multiple organizations!
Head to your [Workflow list view](https://app.upflow.io/organization/-/workflows), and click on the “**...** ” at the end of the line of the one you want to replicate. Click on **Copy to another organization** and select the one you want to add it to.
Once duplicated, you can either adjust your workflow or assign it to your customers as is from your other organization(s).
## Important
When copying a workflow from an organization to another, you must take into account:
* Action assignees/senders: if the selected users (specific profiles) do not exist in the receiving organization, the action templates will need to be updated there.
* Email recipients: same as above. If you use a custom contact position as recipient, and the latter does not yet exist in your receiving organization, you will need to update it there.
* Custom fields: when using collection tags in your action templates, your custom fields are available in the list. When using custom field collection tags in your templates, please note that you must re-insert them in the receiving organization.
* First, check the custom fields are available in this other organization settings.
* Then head to your workflows, and check your templates to update the field tag there.
***
👉 Please note it is now separate from the original, and changes applied to one will not affect the other!
***
# Customer-level workflow trigger
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-basics/customer-level-workflow-trigger
Set how Upflow assigns customer-level workflows on sync, when the first dunning action fires and how often follow-ups repeat based on the oldest invoice due date.
When synced for the first time in Upflow, your customers can be assigned to a workflow or no workflow. It can be the one set as “default” or a specific workflow if a [smart rule](/en-us/collection-and-collaboration/smart-rules/smart-rules) is in place. You can pause them as needed or unassign the workflow from the customer.
When setting it up, you decide:
* [The logic that carries the workflow](/en-us/collection-and-collaboration/workflows-basics/workflows-first-action-logic)
* When the first action should be triggered
* How often are its actions executed
The intervals of these actions are based on an invoice’s due date. ⤵️
## Default workflow
When imported for the first time, your customers can be assigned to a workflow based on your configuration.
1 - If you set up a Default workflow, all new customers will be assigned to it when synced for the first time, unless they match a dedicated smart rule (2).
| You can change the default workflow at any time, to an empty workflow for example, by clicking the three dots of another and selecting it: | Or remove the default option. Then all new synced customers will be imported with "No workflow" in case you'd need a specific assignments and ensure the sent communication is correct: |
| - | - |
|
|
|
2 - You can set up [Customer Smart Rules](/en-us/collection-and-collaboration/smart-rules/customer-smart-rules) to ensure a dedicated workflow is assigned to any new synced customers.
## The carrying invoice
You can assign one workflow per customer.
As a result, if a customer has several invoices falling in your workflow’s criteria, they will all be addressed at once, depending on the tags used in your templates. See [how to customize your action templates](/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter).
The interval between its actions is based on the carrying invoice, which is the oldest unpaid invoice of your customer.
If the customer has multiple invoices with the same due date, the carrying invoice will be the one with the highest total.
## Carrying invoice status transfer
* As soon as your carrying invoice is paid, if your customer has other outstanding invoices, the oldest one will inherit the status.
* If an older invoice is uploaded to Upflow after a workflow has started, it will also steal the spotlight and become the carrying invoice. Therefore, it'll restart the workflow based on this invoice's due date and the workflow logic.
## Triggers
Your actions are triggered by a delay you define following the carrying invoice’s due date. This delay is calculated straightforwardly and can be overruled by settings or context.
For example, if your customer enters the workflow for the first time, with a carrying invoice that is 17 days overdue. If we look at the following workflow\...
...all actions that are less than the invoice age will be sent, respecting only the workflow's minimum contact delay:
From the 1st reminder to the 4th at least, will be sent respecting only a 5-day delay (+weekends) between each reminder sent. Instead of 7 days between the 1st and 2nd, for example.
### What does it look like on the customer's end?
Each email reminder sent from Upflow will generate a new email thread in the customer's inbox for more visibility.
Do you have any questions? Please Submit a request at the top of this article.
# Default reply recipient - configure your reminders' Reply-to
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-basics/default-reply-recipient-configure-your-reminders-reply-to
Choose who receives replies to email reminders sent from Upflow by setting the Reply-to recipient on each workflow, either the sender or a custom address.
When configuring email reminders, you define a sender your customers will receive their reminders from. You can also choose whether the sender should follow up shall they decide to reply; or to have their answer sent to a custom e-mail address.
This is defined at a workflow level.
Tick ***Email Sender*** to have the replies of your customers sent to the address of the user:
* who sent the reminder (manual email)
* designated as the sender (automatic email)
Maybe you have a team member (not necessarily an Upflow user) handling all of the follow-ups, or want a group of users to receive them, so nothing falls into the cracks? In this case, tick ***Custom address*** to have your customers’ replies sent to a reminder redirected there.
***
❗Please note the address is not created by populating this field and should exist in your Users section!
***
Go further by importing your customers’ replies to Upflow and displaying them on their Timeline, where you can follow up!
# Invoice-level workflow trigger
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-basics/invoice-level-workflow-trigger
Drive dunning at the invoice level in Upflow by configuring trigger logic, first action timing and follow-up cadence based on each invoice's due date.
Reflecting our [customer-level workflows](/en-us/collection-and-collaboration/workflows-basics/customer-level-workflow-trigger), this article explains how to set up and manage invoice-level workflows. While customer-level workflows track collection efforts at the account level, invoice-level workflows allow you to follow up on individual invoices.
As for customer-level workflows, when setting it up, you decide:
* The logic that carries the workflow: standard or contextual
* When the first action should be triggered
* How often are the actions executed
Here as well, the interval of these actions is based on the invoice's due date.
# Invoice-level carrying invoice
If you're familiar with our customer-level collection process, you know that your workflows are triggered based on what we call the carrying invoice.
In invoice-level collection, the carrying invoice is the one triggering the reminders. Regardless of the customer's other outstanding invoices.
## Triggers
The logic is the same. Your actions are triggered by a delay you define following the invoice's issue and/or due date. However, this trigger can be overruled by the workflow minimum contact delay.
Let's take the following example - if the invoice enters the workflow for the first time, being 17 days overdue...
...all actions that are less than the invoice age will be sent, respecting only the workflow's minimum contact delay:
From the 1st reminder to the 4th at least, will be sent respecting only a 5-day delay (+weekends) between each reminder sent. Instead of 7 days between the 1st and 2nd, for example.
## Manage your collection and assign the proper workflows
### Workflow Assignment
You can create one or multiple dedicated invoice-level workflows based on your needs. You can automate the invoice-level workflow assignment using our [Invoice Smart Rules](/en-us/collection-and-collaboration/smart-rules/invoice-smart-rules), based on predefined conditions.
#### Creating and assigning workflows
Navigate to the "Workflows" section and click on "Create Invoice Workflow" to begin configuration. Initially, consider setting emails as manual until the workflow aligns with your requirements and assignments are finalized.
### Default workflow setting
Marking an invoice workflow as "Default" ensures it's automatically assigned to every new invoice imported into Upflow.
If you choose not to set a default workflow, new invoices will be imported without an assigned workflow.
This option is useful if you plan to use multiple workflows and prefer to assign them in bulk based on specific invoice attributes.
### Double level of communication
#### Avoiding Duplication
Ensure that your customers aren't simultaneously assigned to a customer-level workflow to prevent overlapping communications. This separation helps maintain clarity and prevents redundant reminders.
If you wish to keep both levels of collection, we recommend to adapt each of their content.
#### Main collection: Invoice level
If you want the main collection to be at the invoice level, while keeping some communication at the customer level, ensure that invoice and customer actions don't repeat themselves. Adapt the tags you use in each collection level to avoid duplicates. Adapt also the triggers to avoid spamming your customers.
**Tailored Communication:** When designing your invoice-level reminders, emphasize fields related to the specific invoice. For example, your initial reminder template might include:
Additionally, consider sending pre-due date reminders to notify clients of upcoming due dates
#### Main collection: Customer level
But you could also want to keep your main communication at the customer-level, while sending one specific reminder at the invoice level when it's almost due, or just overdue.
In that case, create an invoice level workflow, with only one reminder **before the due date** :
### Your invoice level workflow fields
#### Responsibility and sender details
You can replicate your existing configuration regarding who is responsible for sending reminders and the designated sender. For instance, the group Cash Collectors can be assigned as responsible parties, and the sender's profile can be set to a specific team member\* or an alias:
\*Both a specific member or a verified alias can be set as default sender for automated emails. For manual emails, only a verified alias can be. If you set another member than your own profile for manual emails, the latter will be sent from your email address.
### Assigning invoice workflows
#### Bulk assignment to invoices
Go to the Invoices list view, select all due, not due, and disputed invoices by checking the box in the "Number" column. Click on the blue link at the top right to select all relevant invoices. Then, choose Actions > Assign a Workflow and select the appropriate workflow.
#### Unassign customer workflows
To prevent duplicate reminders, and if you wish to do a full invoice level collection, then we recommend unassigning workflows at the customer level.
Head to the Customers list view, select all customers, and choose Actions > Assign a Workflow > select "No Workflow." This update may take a few minutes, depending on the number of customers.
#### Refreshing and Monitoring
After making these changes, refresh your browser to ensure all updates are applied. Head to the Actions list view, "All" or "To-Do" tab to view actions for each invoice based on the new workflow. As a reminder, manual actions will be displayed in the To-do, while both manual and automatic will be in the All tab.
### Pause the invoice collection
You can pause the collection of an invoice at any point. It can be done directly from the invoice's detail page, from the dedicated button:
If you still use collection at the customer level in addition to invoice level, pausing an invoice collection will not pause the customer's! You must then head to the customer's detail page to pause it as well.
You can also do so, when entering a promise to pay on the invoice:
#### Important Note
Transitioning from customer-level to invoice-level collection means that clients will enter the first reminder stage of the invoice workflow, even if they're currently at a later stage (e.g., the 5th reminder) in the customer-level workflow. Except if you choose a contextual logic in your invoice workflows. However, here a customer that was at the 3rd step, might enter the invoice-level 6th step if the invoice is old.
Any questions or feedback? [Submit a support request](https://support.upflow.io/hc/en-us/requests/new)!
# Send collection reminders with a parent/children hierarchy
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-basics/parent-children-hierarchy-reminders
Configure Upflow dunning workflows to chase parent customers, child entities or both, depending on your billing setup and the structure of your customer hierarchy.
Depending on your billing tool and internal organization, you might have a customer hierarchy such as parent/children or group/entities. And depending on your processes or specific use cases, you might need to chase only the parent, only the children, or both.
Before digging into the different solutions, you must know that the children/entities data is by default available at the parent's level: parent customer page, parent portal, included in the parent's collection tags (invoice references, amounts).
## 1 - Send reminders at the parent level only
Here, you will want to ensure the "children" are assigned to "No workflow". You can identify them from the Customers list view, by searching the parent name and add the filter "Type = Standard". Then select them all, click Actions > Assign a workflow > No workflow.
And then, ensure the parent is assigned to an active workflow, based on your needs and process.
→ You can keep the reminders at the parent level manual (no automation) to update the data before sending the emails if need be (to ensure it only highlights the parent's invoices references, or amounts).
## 2 - Send reminders at the children level only
Same idea as above, but reversed. Ensure the parent is assigned to "No workflow", and assign an active workflow to the children. They can be assigned to the same workflow or different ones.
→ The reminders at the children level will only mention and display the child's data. It won't show the parent's or the other children's.
## 3 - Send reminders at both levels
With this option, we highly recommend to assign a different workflow to the parent and children, to avoid duplicate reminders, especially if the contacts are shared.
As mentioned in the first point, don't forget the parent will also show by default the children's invoices and amounts.
Any questions or feedback? Please, [submit a Support request](https://support.upflow.io/hc/en-us/requests/new)!
# Recipient fallback
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-basics/recipient-fallback
Choose what happens on a workflow when none of the recipients configured on an action exist on a customer: fall back to the main contact, or leave the action as a manual task.
Each action in a workflow is configured to reach one or more recipients (for example the main contact, or a group). When the action is prepared for a customer, sometimes none of them exists on that customer.
The **Recipient fallback** setting decides what to do in that case. It is configured at the workflow level and applies to every automated action in that workflow.
## Where to find it
Open the workflow and go to its settings header. **Recipient fallback** sits next to **First action logic**.
Two options are available:
* **Main contact**
* **None**
## Main contact
When none of the recipients configured on an action exist on the customer, the action falls back to the customer's **main contact** and sends the action to that contact.
**Main contact** is the default. Keep this option if you always want a reminder to go out, even when the workflow's targeted contacts are missing on the customer.
## None
With **None**, the action does **not** fall back to the main contact. If an automated email would have no recipient, it isn't sent. The action becomes a **manual task** in the assignee's *Actions to do* list.
Choose **None** when your customers' main contacts are unreliable (for example on CRM-synced customers where the main contact is a generic mailbox or an incorrect person), and you would rather have a human pick the right recipient than send to the main contact by default.
## Related
* [Sending automatic actions](/en-us/collection-and-collaboration/workflows-customize-your-collection/sending-automatic-actions)
* [Workflow's first action logic](/en-us/collection-and-collaboration/workflows-basics/workflows-first-action-logic)
# Workflow last action specificity
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-basics/workflow-last-action-specificity
Learn how the final action of an Upflow workflow loops at your defined contact delay to keep chasing aged invoices, and how task-type actions behave differently.
When you are setting up your workflow, you decide how many actions you will need to plan: +100 days, +200 days or even +500 days so that you always have an action to be carried out for old invoices.
The last action in your workflow will repeat itself and come up again every X days depending on what you have decided in your workflow settings regarding the minimum contact delay. This will continue until your customer pays their carrying invoice.
Note that if the last action is a Task, it will not disappear from your To Do list if you *ignore* it, when an email or letter would based on your minimum contact delay.
We advise you to pause your customer's collection if you wish for the task to disappear from your list for a certain amount of time.
Any more questions? Submit a Support request at the top of this article.
# Workflow's first action logic
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-basics/workflows-first-action-logic
Understand how Upflow picks the first dunning action when a workflow is assigned, with standard or contextual logic based on the oldest invoice due date.
In the structure of your workflow, you have the option of choosing the logic of your first action. This will determine which workflow action your customer will enter according to the due date of their oldest invoice.
## Standard logic
By choosing the **standard** logic, *your customer will automatically enter at the first action of your workflow* , regardless of the due date of their oldest invoice. Let’s take the following workflow as example:
Once the first action is sent, the contact delay will be applied for the trigger time between the first and second action. Here, the second action will be sent 8 days after the first one.
For each customer, the sequence of actions will be based on the carrying invoice. Once the carrying invoice is paid, the sequence will start over from the beginning, on a new carrying invoice.
**Note:** given a new carrying invoice (no actions have ever been executed on that carrying invoice), the first action will depend on the status of the invoice. If the invoice is due, then the action will be "Invoice almost due"; however, if the invoice is overdue (no matter how old it is), the action will be "1st reminder".
### Here are two use cases for the Standard logic:
#### **Your customer John Smith has 4 overdue invoices:**
Invoice A - 2 months overdue Invoice B - 5 weeks overdue Invoice C - 3 weeks overdue Invoice D - 3 days overdue
Mr Smith is at the 4th reminder of the workflow. **He decides to pay Invoices B and C.**
The carrying invoice is still Invoice A, the workflow keeps going as planned, and will send the 5th reminder when it's supposed to be triggered.
#### **Your customer John Smith has 4 overdue invoices:**
Invoice A - 2 months overdue Invoice B - 5 weeks overdue Invoice C - 3 weeks overdue Invoice D - 3 days overdue
Mr Smith is at the 4th reminder of the workflow. **He decides to pay Invoice A which is the carrying invoice.**
Then invoice B becomes the new carrying invoice and the workflow will start over at the 1st reminder.
## Contextualized logic
*This logic takes into account the due date of your customer's oldest invoice*. Let's take the following workflow structure as an example:
If your customer's most overdue invoice is 18 days old, he will enter the dunning plan at the 3rd action, which is the action closest to the due date of the invoice.
The fact that workflows always start at the beginning can sometimes be an issue for our customers. For example, a customer can have an invoice that's been due for 15 days to become the carrying invoice (e.g. once the previous carrying invoice is paid).
This causes actions to be out of context, and the tone of voice to be off, given the age of the invoice. This is why we propose contextual actions. This new logic will allow the first action of the sequence to be the closest past action.
**Note** : This logic only affects the way we determine the first action. Subsequent actions will always be generated in order. Once the carrying invoice is paid, the workflow won’t necessarily go back to the 1st reminder. But to the reminder closest to the due date of the new carrying invoice.
Even if you change the workflow logic, if a customer has an ongoing collection, the logic will stay standard until the carrying invoice is paid. When a new carrying invoice will start the collection, the contextual logic will be applied.
### Here are two use cases for the Contextual logic:
#### **Your customer John Smith has 3 overdue invoices:**
Invoice A - 24 days overdue → carrying invoice
Invoice B - 17 days overdue
Invoice C - 12 days overdue
Mr Smith is at the 5th reminder of the workflow. **He decides to pay Invoice B.**
The carrying invoice is still Invoice A, the workflow keeps going as planned and will send the 6th reminder when it's supposed to be triggered.
#### **Your customer John Smith has 3 overdue invoices:**
Invoice A - 24 days overdue → carrying invoice
Invoice B - 17 days overdue
Invoice C - 12 days overdue
Mr Smith is at the 5th reminder of the workflow. **He decides to pay Invoice A.**
The carrying invoice is now Invoice B, the next reminder will be the 3rd as it’s the closest to the invoice in the past.
## Changing the workflow logic
Note that changing the workflow logic will impact the customers at different levels.
All customers that are already in a collection process will stay on the initial logic. Only customers that have not received a reminder yet will be moved to the new logic.
#### Example 1
Your customer received two reminders for their carrying invoice A on the Standard logic. You change the logic to Contextual. This customer will stay on course, as if the logic hasn't changed.
#### Example 2
Your customer received reminders in the past, but has no outstanding invoices today, or a new one was issued, but has not received a reminder yet. The latter is waiting to be performed.
You change the workflow's logic. The new logic will then be applied.
## What happens if I forget to send or complete a manual action?
All actions planned before the due date expire when the invoice is due.
All actions planned after the due date will never expire. The only ways to proceed to the next action are to execute it or ignore it by clicking on “Ignore” in the Actions list view.
## Restarting the workflow
### Unexpected restart
When deleting templates in a used workflow can sometimes send customers back to the workflow first action, even if they were already in the middle of it. We recommend not deleting templates if this is the case, or check if any customer has this template as "last sent action", or pending (to be manually performed). Then perform it or move them to the next action sooner than expected.
### Manually restart a customer's workflow
Today, there's no feature or button allowing to manually restart an ongoing workflow for a customer.
The best route is to create a new workflow or duplicate an existing one. Rename it, edit your templates, and once ready, assign your customers to it. If you went with a duplicated version and do not need the initial workflow, we recommend to check if the latter:
* isn't used in smart rules - if it is, update the rule(s)
* isn't assigned to customers anymore
Then, you can go to your workflows list and delete it.
#### What happens when I change the assigned workflow back and forth?
Let's say your customer is assigned to workflow A, and received Reminders 1 & 2 from it.
A. You assign them to workflow C. No action is **sent** from it.
B. You assign them to workflow C. One action is triggered, but "Ignored" (clicked the button).
C. You assign them to workflow C. One action is **sent** from this workflow.
In all three scenarios, as long as the workflow is still running on the same carrying invoice, once you assign them back to Workflow A, they go back to where they were, meaning Reminder 3.
Do you have any questions? Don’t hesitate to [get in touch](https://support.upflow.io/hc/en-us/requests/new)!
# Action types - Collection Reminders
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/action-types-collection-reminders
Mix emails, calls, SMS, tasks and letters in Upflow workflows, choose between automatic and manual actions, and escalate your dunning cycle for better recovery results.
When managing your Actions to create the perfect communication with your customers, define the type of each reminder you want to send through your cash collection cycle. Combine multiple channels to serve your goals—escalating from emails to phone calls—and get better results!
You will be able to choose between automatic and manual actions. The first type will roll in the background with nothing else but their setup to do, while the second requires their assignee to complete them.
| Screenshot | Step |
| - | - |
|
| Set this from any Workflow's configuration panel, either by clicking on an existing action or creating one from scratch. |
|
| Select your preferred type from the eponymous field. |
|
| Select whether it should be automated or not (when available). |
Actions will be triggered and/or sent out following the conditions you defined and your organization's settings:
* Trigger- time elapsed (in days) since the carrying invoice's issue/due date
* Minimum contact delay- time elapsed since the execution of the workflow's previous action
* [Schedule](https://app.upflow.io/organization/-/settings/company)- Your desired time of the day for automatic actions to be sent
Refer to this [dedicated article to learn more about automatic actions](/en-us/collection-and-collaboration/workflows-customize-your-collection/sending-automatic-actions).
#### Important for both manual and automatic actions:
Note that if the trigger between two actions is less than the minimum contact delay, the latter will be the one applied. For example, there is a 3-day delay between Action 1 and Action 2, while the minimum contact delay is 5 days. Then, Action 2 will be triggered 5 days after Action 1, not 3 days.
### Manual actions
Displayed on their assignee’s Actions tab from their due completion date, these actions must be validated or skipped. The workflow remains stuck at this step until then. They can be entirely reviewed and updated from a type change to a content update, including document attachments or notes logging.
❗Even as an admin, if you are not an action’s assignee, you will neither see it on the actions list nor be able to complete it from the customer’s details.
| **Type** | **Description** | **To populate** | **Trackable** |
| - | - | - | - |
| **Emails** | Set up like their automated version, you can choose the sender via the **From** field. Select your profile or an alias. |
- Recipient(s)
- CCed/BCCed address(es)
- Title
- Message
| Per recipient:- Sending
- Reception
- Bounced / failed
- Opening
|
| **SMS** | With a higher opening rate than emails, they enable a less formal contact as thoroughly tracked. This feature comes with [fees](/en-us/collection-and-collaboration/sms/sms-reminders-pricing). | - Message
- Sent to the main contact only
| - Sending
- Reception
- Failure
- Opening
|
| **Calls** | Calls work as reminders. They do not allow you to phone from your organization but display a script for their assignees to complete with their notes. | | |
| **Letters** | Formalize the conversation tone. You can also send registered letters — for past due notices, for instance. This feature comes with [fees](/en-us/collection-and-collaboration/letters/postal-reminders-pricing). | | - Sending
- Reception
- Failure
- Return to sender
|
| **Tasks** | Destined to the action’s assignee and not the client. The former are reminded of the expected behavior (limit access to a service, notify another team…) and can log their feedback before completing. | | |
💡 Review your completed actions and measure their efficiency from their list, your customers’ and invoices’ timelines, or the dedicated Analytics widget!
Do you still have a question? [Submit a Support request](https://support.upflow.io/hc/en-us/requests/new)!
# Aliases
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/aliases
Create dedicated email aliases in Upflow settings to power a fully white-labeled portal experience for your customers when they pay or interact with you.
The alias feature allows you to use specific email addresses to offer a fully white-labeled portal experience to your customers.
# Managing your alias
## Creating an alias
To create an alias, head over to your [Settings > Aliases section](https://app.upflow.io/organization/-/settings/aliases).
Click on “Add alias” and fill out the different fields. The email address domain must be the same as the one configured in your [Deliverability section](https://app.upflow.io/organization/-/settings/domain/dns). If you add an address with a different domain, the payment notifications will be sent from [notifications@upflow.io](mailto:notifications@upflow.io).
Once added, this email address will receive a confirmation email from [no-reply@upflow.io](mailto:no-reply@upflow.io:):
The alias will be marked as unverified until you click on the confirmation email. You can resend the verification email if you did not receive it.
Once you click on the email's link, you will be redirected to the following page, and can then "Continue to Upflow".
### Verified alias
Once redirected from the email to Upflow, your alias is verified, and you can start to use it.
You can create as many aliases as you want and create several aliases for the same email address.
Note: if the alias doesn't show as Unverified (orange), the alias is then active and available to use.
## Editing an alias
Only the display name and email signature can be updated once an alias has been created.
## Deleting an alias
You can delete an alias, but if it’s used on the payment receipt, you will need to use another alias before deleting it.
# Use an alias for your email reminders
Please note that aliases are by default suggested in the "From" field (sender), but not in the To fields (main recipients, cc/bcc). You can however manually enter the email address, and press enter. Then save your email template.
## Automatic emails
Once an alias is verified, you can use it to send automated email reminders. Go to your workflows and select the alias as the sender of an automated action:
If the alias is unverified, you will see a note and won't be able to select it.
## Manual emails
Like for automatic emails, you can select the alias as the sender directly from your workflows. When accessing the pending manual email from your Actions list view or when selecting the template, the sender will be automatically set up on the alias. You can change it if needed.
As you send a manual email, you can also select which alias to use as the Sender:
The signature will be used for both manual and automatic emails. Your customers' replies will go to the alias email address, except if you selected another email address in the workflow ["Reply to" section](/en-us/collection-and-collaboration/workflows-basics/default-reply-recipient-configure-your-reminders-reply-to).
## Emails sent via alias
In your customers' timelines, you will be able to see who performed the action. If an alias was used, you will be able to identify it from the “From” section when you expand the email. You can also hover your mouse over the initials at the action's right.
In the list of all actions, you will only be able to see who performed the action.
## Payments-related notifications
You can configure an alias for [branded notifications originating from your customer portals](/en-us/customer-portal/customer-portal/overview).
*Do you have any questions?[Contact our Support](/en-us/essentials/get-started/contact-our-support-team)!*
# Collection tag inserter
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter
Personalize Upflow reminders with dynamic tags that pull invoice references, amounts and customer details into each follow-up, then organize your dunning at scale.
Managing collections effectively is essential for maintaining a healthy cash collection, and our **Collection Tag Inserter** is designed to simplify this process. This feature enables you to apply meaningful, actionable tags to your **collection reminders**, helping you organize and streamline your follow-ups with ease.
## Why use tags?
Tags are incredibly helpful for managing your workflow. With the Collection Tag Inserter, you can focus on what matters most, saving time and reducing the risk of missed payments.
While setting your actions, include tags in your templates. Each tag will return a specific value when the action is triggered.
| For instance, this template… 👇 | …becomes this action 👇 |
| - | - |
|
|
|
## Insert tags in your action templates
Access your Workflows list view and either select an existing workflow or create a new one.
Then click on the action you wish to update and follow these steps:
### Step 1 - Add a tag by typing `/`
### Step 2 - Search for a tag by typing it in the editor.
The tags are ranked by usage within our base. Your customer and invoice custom fields are available on the list.
Once selected, you can easily identify what part of your content is a tag:
####
💡 Certain tags are provided with an information tooltip:
#### You can also add a hyperlink:
| 1 - Type your text in the email body and highlight it | 2 - Click on the hyperlink symbol on the right: | 3 - Add your URL and click Submit: |
| - | - | - |
|
|
|
|
This is what it'd look like in the email template:
#### Add bold, italic or underline your text and tags:
💡 HTML options available in our previous version won't be available per se. However, you can now directly apply bold, italic or underlined format by using your keyboard. Highlight your text, then:
* For bold, press **Cmd b** or **Ctrl b** ;
* For italic, press **Cmd i** or **Ctrl i** ;
* To underline, press **Cmd u** or **Ctrl u**.
→ Or use the tools at the bottom of the email body:
### 3 - Don't forget to save!
Once you've updated your template, remember to click **Save**. Then, you can proceed to the next action.
## What tags are available?
| **Display Name** | **Description** |
| - | - |
| Organization name | Name of the organization that is used to send the reminder (Settings > Company). |
| User name | For manual emails, it will display the full name of the user sending the email. |
| For automatic emails, it will display the full name of the user/alias selected as Sender. | |
| Owner first name | First name of the owner. If there are several we take the first one assigned. |
| Owner last name | - |
| Owner full name | Full name of the owner. If there are several, we take the first one assigned. |
| Owner email | Email of the owner. If there are several we take the first one assigned. |
| Today | Date of the day (MM/DD/YYYY) the reminder is sent. |
| Main contact full name | |
| Main contact first name | |
| Main contact last name | |
| Main contact email | |
| Customer name | Name of your customer, as displayed in Upflow. |
| Customer portal link | Link to the customer portal. |
| Parent customer name | If you use customer hierarchies, the name of the parent/group customer. |
| Parent customer portal link | If you use customer hierarchies, link to the parent/group customer portal. |
| Customer external Id | Id of your customer in your source system. |
| Customer outstanding amount | When the email is sent (=due+overdue-unapplied). |
| Customer due amount | - |
| Customer overdue amount | - |
| Customer unapplied amount | Payments, refunds or credit notes unapplied to other references (invoice, payment). |
| Due invoice number list | List of the due invoice references. Comma-separated. |
| Overdue invoice number list | List of overdue invoice references. Comma-separated. |
| Outstanding invoice number list | List of all due + overdue invoice references. Comma-separated |
| Carrying invoice number | The oldest unpaid invoice of the customer at the time. |
| Carrying invoice title | Title of the collection’s carrying invoice. |
| Carrying invoice link | Download link for the carrying invoice PDF. This link has a default validity of 25 days. Learn more [here](/en-us/customer-portal/customer-portal/my-customers-portal-links-validity). |
| Carrying invoice issue date | |
| Carrying invoice due date | |
| Carrying invoice total amount | |
| Carrying invoice outstanding amount | |
| Carrying invoice expected amount | |
| Carrying invoice days since issue date | Number of days since the invoice was issued. |
| Carrying invoice days to issue date | Number of days until the issue date. |
| Carrying invoice days to due date | Number of days until the carrying invoice is due. |
| Carrying invoice days since due date | Number of days since the carrying invoice is due. |
| Last reminder date | The date when the last collection action was executed. |
| `{custom_field.label}` | Your custom fields will be available as option as well. |
#### Dedicated tags for Stripe billing and Chargebee integrations only:
| Stripe customer portal link | Link redirecting to your customer’s [***Stripe Portal***](https://stripe.com/docs/customer-management). |
| - | - |
| Chargebee manage payment sources link | Link redirecting to the customer’s Chargebee's Manage payment sources page |
| Chargebee collect now link | Link redirecting to the customer’s [***Collect Now***](https://support.chargebee.com/support/solutions/articles/254747-what-is-the-difference-between-collect-now-and-record-now-options-at-the-invoice-level-#:~:text=Solution-,Collect%20Now,-%3A%0A%0AThis%20option) page |
## Note
* The tags are available in collection reminders, [billing emails](/en-us/collection-and-collaboration/send-invoices-from-upflow/overview-legacy) and [action campaigns](/en-us/collection-and-collaboration/run-your-collection/action-campaigns).
* The tag inserter is not yet available in the Actions To do list.
* The date and amount related tags format will be based on the customer's billed currencies. Learn more [here](/en-us/upflow-configuration/your-user-profile/ui-language).
* If the customer has an unapplied balance in a different currency than their billed one, the unapplied amount will be displayed next to their outstanding balance when using the "Customer outstanding amount" collection tag. While if it's in the same currency, it'll be included in the amount displayed.
## Conclusion
The Collection Tag Inserter allows you to streamline your collections process by automatically adding relevant tags to your collection reminders. This feature helps you to automate your collection reminders' personalization, based on specific criteria.
Do you have any questions, or feedback? [Contact our Support team](/en-us/essentials/get-started/contact-our-support-team)!
# Customize Collection Reminders
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/customize-collection-reminders
Tailor each step of an Upflow workflow by adjusting reminder names, recipients, tone and content, escalating from soft email follow-ups to legal involvement.
Chances are you will not involve your Finance director from the very beginning of your cash collection journey ; let alone start reminding your customers of their pending invoices via postal letters, or directly reach out to their Legal team. You might also want to personalize the content of your communications with information related to the due amount, names, or simply *the* appropriate tone. Configure these variants to create a communication adapted to each step.
To do so, jump on the workflow you want to adjust, and click on the action you want to improve. It will display an edition panel on the right half of your screen where you can configure the following elements from.
## Bespokable variants
The name helps you identify the action and will be displayed on your Workflow’s dashboard, your Actions list; the customer or invoice timelines, but it will not be visible to your customers.
An action's assignee (who can differ from the customers' Owners!) is responsible for completing the manual actions. You can add as many assignees as you want to be chosen from your teammates, individual people, specific roles (Finance users, for example), or [groups](/en-us/upflow-configuration/your-teams-access/create-user-groups).
The trigger defines the moment an action is executed/triggered based on the carrying invoice's due or issue date. Note that [triggers can be overruled](/en-us/collection-and-collaboration/workflows-basics/customer-level-workflow-trigger)!
An action type is your collection reminder channel. This last choice will display a template or a script of what is to be shared with your customer. You can choose to automate it or keep if manual. Only emails, sms, and letters can be automated.
### Billing templates
If you send your invoices from Upflow, your workflows will contain an additional step at the top of the list. This template will have a dedicated field, called "Delay", so you can choose if the invoice must be sent on issue date, before or after the issue date:
The rest of the billing template will work as actions' detailed below.
## Action templates
### Emails
#### Sender
Define whose address the action will be sent from. You can choose any user from your list, not necessarily the owner. It can also be a users' group, as long as you’ve created a member with the group’s email (no need to log in with it!). Or an alias.
❗ If you haven’t set your DNS, the *From* field of your recipient will display the chosen member’s name along with a generic address ([**reminders@upflow-mail.com**](mailto:reminders@upflow-mail.com)).
#### Recipients
Pick the right interlocutor(s) among your customers’ contacts and your team members,
; or add an external email address (❗don’t forget this will be applied across all the accounts this workflow is assigned to).
Note that only the selected users will receive this email template. If they are not available at the customer level, the email will fall back to the Main contact.
➡️ Learn more on positions: [Positions](/en-us/core-entities/contacts/your-upflow-contacts).
You also have the option to include all contacts on file for each customer to receive the email reminders:
💡 If the right email address lives in a custom field — for example a billing contact synced from your ERP — you can pick that field as the recipient instead. See [Send emails to a custom field address](/en-us/core-entities/contacts/custom-field-email-recipients).
#### Subject
Last but not least, type in your action’s content! Start with customizing your email Subject.
#### Content
Then, the content:
You can use our [collection tag inserter](/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter) for more personalization.
#### Attach invoices
From your [workflow](https://app.upflow.io/organization/-/settings/workflows) templates, for your automatic and manual actions, you can select which invoices you wish to attach by default to your email reminders:
The option is by default "None". You can update it at any times and save.
It can also be a different option per email reminder within the same workflow, or depending on the workflow.
Read more about attachments [here](/en-us/collection-and-collaboration/workflows-customize-your-collection/add-attachments-to-my-emails).
Do not forget to ***Save*** your work!
### Calls
For a phone call, select the recipients, and draft a script to be followed or read through by your action’s assignee. Read more [here](/en-us/collection-and-collaboration/live-calls/live-calls-from-upflow).
### Tasks
Right down the steps your team must follow at this stage of your customer collection.
### Letters
Personalize the content of your letter, and attach the invoices you wish to sent along.
Read more [here](/en-us/collection-and-collaboration/letters/send-postal-reminders).
💡 If you are happy with an Action, you can ***Duplicate*** it (it will be fully updatable, of course). And no worries, any outdated Action can also be *Deleted*!
Do you still have a question? [Submit a Support request](https://support.upflow.io/hc/en-us/requests/new)!
# Sending automatic actions
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/sending-automatic-actions
Automate emails, SMS and letters across your Upflow workflows so they trigger on the scheduling time set for your organization, freeing your team from manual sends.
You can set up various types of actions within your workflows: emails, calls, SMS, tasks, and letters. It also applies when you [Send Invoices From Upflow](/en-us/collection-and-collaboration/send-invoices-from-upflow/overview-legacy).
For emails, SMS, and letters, you can send them automatically and save some time.
## How does it work?
### When are automatic communications sent?
* All the automatic actions are sent daily depending on your [organization's scheduling time](https://app.upflow.io/organization/-/settings/company).
* It is by default 8:30 AM (24h format).
* At that time, the system will look at all the communications that should be sent and do it.
* The communications only happen on business days (Monday to Friday).
### How do you set up automatic communications?
Hit the checkbox to *Send automatically* when available (email, letter, sms).
Select which sender should be used to send the communication. You can use specific users, groups (all or assigned), or the owners\*. If there are several owners, we will use the one assigned first to the customer.
If you wish for automatic emails to be sent from a generic or group email address, we recommend creating and using a dedicated [Alias](/en-us/collection-and-collaboration/workflows-customize-your-collection/aliases).
*\*Both a specific member or a verified alias can be set as default sender for automated emails. For manual emails, only a verified alias can be. If you set another member than your own profile for manual emails, the latter will be sent from your email address.*
*Don't forget to save the action, and you are done.*
## How to identify automatic communications?
You can see the differences across the app: in the customer's timeline, the actions list views, the workflows.
#### From your customers' timelines
The automated communications are identified with a lightning icon.
To see what sender is used, you can expand the message content in the timeline and look at the "From" field.
#### From the Actions list view > All section
From there, you can filter on the Trigger: Automated.
You will see the automatic actions that will be sent and the ones that have already been sent.
You can also visually identify them thanks to the little A on the envelope icon.
Note that automatic actions will not be displayed in your Actions To do list, as they do not require manual attention, unless the customer's contacts are missing or invalid.
#### In the Analytics
You can see the automatic actions in the [Team activity dashboard](https://app.upflow.io/organization/-/analytics?dashboard=teamActivity).
*Note that the billing emails are not **yet** included in this analytics widget.*
### Troubleshooting:
#### Can I send a scheduled automated email/action in advance?
If an automated action (email/letter) is scheduled for later for a customer, but you'd like for it to be sent immediately, head to your Actions list view > All tab ([see here](https://app.upflow.io/organization/-/actions-list?page=0\&filters=%7B%22state%22%3A%7B%22in%22%3A%5B%22TODO%22%5D%7D%7D\&search=)).
There, filter on "Action state contains To do" + "Customer contains *customer name*".
Select the action, click the Actions button at the top right > then Perform. The action status should move from To do to Done.
#### Why was the email sent from a different sender than the one set in the workflow?
If your workflow email template is configured to send from a specific group / user (i.e. "Owners" or "Cash Collectors (owners)"), but the email is ultimately sent from another profile (often the organization owner), it usually means that the configured sender couldn’t be identified at the moment the email was generated.
**Fallback logic**
When the configured sender can’t be found, Upflow falls back to **Finance users**.
Example: the workflow email is meant to be sent from **Owners**, but the customer had **no owner** when the email was sent → fallback applied → sender becomes **a finance user / the organization owner**.
#### Why is my automatic email displayed in my Actions to do list?
It can happen for an email reminder, initially planned as automatic, to be displayed in a user's to do list. This is related to the customer's contacts: either missing or invalid.
Here's what to check
1. Check the pending action's name and the related workflow.
2. Go to the workflow and check the action's recipients fields: is it meant for the main contact? All? A specific position?
3. Then check the customer's contacts, specific position if needed. → Does the customer have no contacts? → Is the necessary contact marked as invalid?
4. Correct the customer's contact(s) for the email's automation to be regenerated. The email will then be sent the following business day.
If none of the configured recipients exist on the customer, the workflow's [Recipient fallback](/en-us/collection-and-collaboration/workflows-basics/recipient-fallback) setting decides what happens: **Main contact** sends the email to the customer's main contact, while **None** leaves the action as a manual task with an in-app callout asking you to pick a recipient.
Do you still have a question? [Submit a Support request](https://support.upflow.io/hc/en-us/requests/new)!
# Test your email templates
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/test-your-email-templates
Send a preview email to yourself from any Upflow workflow action to validate content, formatting and dynamic tags before reminders go out to your customers.
While configuring or optimizing your collection process, send yourself a test email to see how emails sent via Upflow look. Use it to refine the content and formatting of your emails.
## Test an email template
In the workflow section, hit the Send a test email button from any email action template.
Select which customer you would like to use to fill in the tags. The email will use the Main contact information to fill in contact-related tags. It will not include Cc or Bcc.
You will then receive the corresponding email in your inbox, regardless of the template set up sender (alias, for example). This email doesn’t impact your workflows, nor can it be seen in the timeline or the actions performed.
## Test an email campaign
You need to send an [email campaign](/en-us/collection-and-collaboration/run-your-collection/action-campaigns) to one or multiple customers and see how it'll look on the receiving end?
Once you configured your email campaign, click *Send test email* to see how it'll look like, before sending the campaign to your customers.
It needs a bit more customization? Update it! It looks good? Send you email actions!
# Ask Upflow AI
Source: https://docs.upflow.io/en-us/essentials/get-started/ask-upflow-ai
Ask Upflow's AI assistant questions about your receivables, customers, actions, and collections from anywhere in the app, with answers based on your own data.
Ask Upflow is an AI assistant built into the app. Ask it a question in plain language and it answers from your own Upflow data and from the Upflow documentation. It is available to all organizations, with no setup required.
## Open the assistant
Click the **Upflow AI** button in the bottom-right corner of any page. The assistant opens in a panel docked above the button, so you can keep working while you chat. The panel stays open as you navigate between pages.
From the panel header you can:
* **Expand** the panel to fill the page for longer conversations, or shrink it back down.
* **Start a new chat** or reopen a past conversation from the history picker. You can search your past conversations by title.
* **Close** the panel. Your conversation is saved, so you can pick it up where you left off.
## What you can ask
Ask anything about your receivables, customers, actions, and collections. For example:
* "Who are my top debtors?"
* "What is my aging breakdown?"
* "Why has our DSO gone up?"
* "Which due actions should I prioritize?"
* "How do invoice workflows fire?"
The assistant looks up your invoices, customers, payments, workflows, analytics, and more to build its answer. Questions about how Upflow works are answered from the Upflow documentation. Each answer links to its sources so you can verify it.
## Data access
The assistant is read-only. It can look up and report data, but it cannot create, change, send, or delete anything in your account. It is scoped to your organization and your permissions, so it only sees what you already see.
## Rate the answers
Under each answer you can:
* Mark it as a **Good answer** or **Bad answer**. Your feedback helps improve the assistant.
* **Copy** the answer as markdown.
* **Try again** to regenerate the answer.
# Contact our Support team
Source: https://docs.upflow.io/en-us/essentials/get-started/contact-our-support-team
Reach Upflow's Support team by emailing support@upflow.io or by submitting and tracking your requests from the Contact Support form in your profile.
If you can't find the answer to your question and need assistance from our Support team, you can:
* Directly contact [support@upflow.io](mailto:support@upflow.io)
* Submit and track your support requests from your profile\* which we recommend :)
#### \*To do so, click on “Contact Support” at the top right of the page:
You will see this page:
Once on the Request form page, you can simply submit your request, or first create/access your Profile to track all your Support requests.
Choose an email address and password, or use Google SSO.
Please note that this profile is **independent** from Upflow, and can't be accessed with your usual Upflow credentials.
Now, you can access your Profile or your existing requests by clicking on your name.
If our Documentation [here](https://docs.upflow.io/en-us/essentials/get-started/contact-our-support-team) isn't enough to help answer your question(s), please share as many details in your request as possible, with examples, so our team has as much context as possible and can assist you at best.
#### When looking at your existing requests, you can see different statuses:
* **Open:** We received your request and are investigating. We are doing our best to get back to you quickly and efficiently.
* **Awaiting your reply:** We replied to you and updated your ticket. We might need more information from you, or confirmation that everything is working as expected.
* **Solved:** Your ticket was resolved.
If you need to continue on a solved request or the issue is happening again, you can reopen it or create a follow-up:
* Solved less than four days ago: you can add comments that will reopen the thread for our team
* Solved more than four days ago, you can create a follow-up request
# 🚀 Upflow Onboarding Guide - Introduction
Source: https://docs.upflow.io/en-us/essentials/get-started/onboarding-guide-introduction
Walk through Upflow's six-step onboarding journey, from initial setup to go-live, with most teams completing the full configuration in a few days to weeks.
Welcome to Upflow! This guide will walk you through your configuration from setup to go-live.
⏱️ Most teams complete this over **just a few days or at most a few weeks.**
## 📍 How to use this guide
* Focus on **one step at a time**
* Each step includes tasks to complete, key decisions, and validation
* Some steps are **blocking** — don’t skip ahead
* 🆘 If you get **stuck** at any step:
* refer to your **onboarding checklist**
* [Ask AI](https://docs.upflow.io/en-us)
[**Contact the support team**](https://support.upflow.io/hc/en-us/requests/new)
## 🧭 Your Progress
| Step | Topic | Est. Time |
| :- | :- | :- |
| **Step 1** | [🔌 Sign up & sync your data](/en-us/essentials/get-started/step-1-sign-up-sync-data) | 30–60 minutes (+ time for the initial sync to complete) |
| **Step 2** | [👥 Manage your team](/en-us/essentials/get-started/step-2-manage-your-team) | 30–60 minutes |
| **Step 3** | [⚙️ Configure your settings](/en-us/essentials/get-started/step-3-configure-your-settings) | 1-2 hours |
| **Step 4** | [💳 Collect online payments](/en-us/essentials/get-started/step-4-collect-online-payments) | 30-60 minutes |
| **Step 5** | [📝 Configure workflows & automation](/en-us/essentials/get-started/step-5-configure-workflows) | 2–4 hours |
| **Step 6** | [🚀 Go live (and final checks)](/en-us/essentials/get-started/step-6-go-live) | 30–60 minutes |
**Tip:** Follow along with your onboarding checklist and check each step as you go. If you have not received a dedicated onboarding checklist, please get in touch.
👉 Let's get started: [**Step 1 - Sign up & sync your data**](/en-us/essentials/get-started/step-1-sign-up-sync-data)
# 🔌 Step 1 — Sign up & sync your data
Source: https://docs.upflow.io/en-us/essentials/get-started/step-1-sign-up-sync-data
Connect your billing or ERP system to Upflow so customers, invoices, and contacts become visible — the first step of the onboarding before going live.
**Goal:** Connect your billing or ERP system so your customers, invoices, and contacts are visible in Upflow.
⏱️ **Estimated time:** 30–60 minutes (+ time for the initial sync to complete)
### Before you start
**Upflow starts in Test Mode.** Test Mode is a safe onboarding state that prevents anything from being sent to your customers while you're still setting everything up. Manual actions are blocked, automation can't be enabled, and a banner stays visible so it's always clear you're in a safe state. You'll exit Test Mode in Step 6 when you're ready to go live.
Learn more: [Test Mode](https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/test-mode#test-mode)
### Actions
* Sign up and connect your integration
* Validate that your data has synced correctly
* (Optional) Connect your CRM (Salesforce or HubSpot)
* (Optional) Connect your bank account for Cash Application
### Connect your integration
Head to the [sign up page](https://app.upflow.io/signup) and select your integration. Follow the setup guide for your system:
* [NetSuite](/en-us/integrations/netsuite/connect)
* [Sage Intacct](/en-us/integrations/sage-intacct/connect)
* [QuickBooks Online](/en-us/integrations/quickbooks/connect)
* [Stripe Billing](/en-us/integrations/stripe-billing/overview)
* [Chargebee](/en-us/integrations/chargebee/connect)
* [Pennylane](/en-us/integrations/pennylane/overview)
* [Xero](/en-us/integrations/xero/connect)
* [Zuora](/en-us/integrations/zuora/connect)
* [Upflow API](/en-us/technical-documentation/api/integrating-with-the-upflow-api)
Don't see your integration? Contact [Upflow Support](https://support.upflow.io/hc/en-us/requests/new).
**One important note for multi-entity setups:** if you use subsidiaries (NetSuite, Sage Intacct, Xero), create one Upflow organization per subsidiary.
### Connect your CRM (Optional)
Upflow connects to Salesforce or HubSpot to both import data into Upflow (contacts, account owners, custom fields) and export collections data back to your CRM for wider team visibility.
* **Salesforce** — see the full setup guide: [Connecting Salesforce to Upflow](/en-us/integrations/salesforce/connect)
* **HubSpot** — see the full setup guide: [Connecting HubSpot to Upflow](/en-us/integrations/hubspot/connect)
*Using a different CRM? Reach out to our team to explore your options.*
### Connect your bank account for Cash Application (Optional)
Cash Application matches incoming bank transactions to your open invoices, so payments are reconciled without manual work. To do this, Upflow needs regular access to your bank transactions — the recommended way is a **bank feed**, which imports them automatically every day through **Plaid**.
* Go to **Settings > Cash Application**, click **Add bank or account**, and authenticate through your bank's secure login.
* Transactions import at least once per day, and duplicates are filtered out automatically.
* Plaid supports over 12,000 institutions. If yours isn't listed, you can import transactions from a CSV file instead.
See the full setup guide: [Connect your bank account for automatic transaction import](/en-us/cash-application/bank-feed/connect-your-bank-account-for-automatic-transaction-import)
### Validation — Required to continue
Once your integration is connected, confirm the following before moving on:
* Customers, invoices, and contacts are visible in Upflow
* Data is syncing correctly
* No major gaps or inconsistencies in amounts, due dates, or contact details
* (Optional) If you connected a bank account, transactions are importing and appear in Cash Application
Do not move forward until your data looks right. Everything in Steps 2–6 depends on the accuracy of what's synced here.
👉 Next: [**Step 2 — Manage your team**](/en-us/essentials/get-started/step-2-manage-your-team)
# 👥 Step 2 — Manage your team
Source: https://docs.upflow.io/en-us/essentials/get-started/step-2-manage-your-team
Add team members to Upflow with the right roles and assign account managers to customers before configuring workflows and automation in later steps.
**Goal:** Add your team to Upflow and make sure everyone has the right access before you configure workflows and automation.
⏱️ **Estimated time:** 30–60 minutes
## Actions
* Add your team members with the right role and position
* Assign account managers to their customers (can also be done before Step 5)
## Key decisions
* **Who owns collections day-to-day?** This determines who gets assigned as action assignee in your workflows — get this right before you configure them in Step 5.
* **Does everyone need to see all customers, or should visibility be restricted?** Account Managers with a Member role can only see their assigned customers. If your sales or CS team is involved in collections, this matters.
* **How will you assign users to customers?** Manual assignment works for small teams or one-off changes. For larger teams, consider a CSV upload, Smart Rules, or Salesforce if it's your source of truth for account ownership.
### Add your team
Invite the team members who will collaborate in Upflow. Each user needs both a **role** (what they can configure) and a **position** (what data they can see).
You must invite users to each Upflow organization separately in a multi-entity setup.
The table below shows how roles and positions combine to define what a user can do and see:
| | **Assignee** | **Admin** | **Member** |
| :- | :- | :- | :- |
| Manage settings, integrations, workflows | ✓ | ✓ | — |
| Perform collection actions | ✓ | ✓ | ✓ |
| Complete assigned tasks | ✓ | ✓ | ✓ |
| Transfer organization ownership | ✓ | — | — |
| **Position** | **Who sees what** | **Notes** |
| :- | :- | :- |
| Finance User | All customers | May be used as a fallback assignee for actions and notifications — expect more notifications for this position. |
| Account Manager | Assigned customers only (if Member role) | If given Admin role, sees all customers. Best for sales or CS teams involved in collections. |
| Accountant | All customers | Similar to Finance User but not involved in collections. |
**How to add a user:**
You can add users without inviting them to sign into Upflow — useful if you want to assign ownership before your team is onboarded.
### Assign users to customers
If your sales or CS team is involved in collections, assign them to their customer portfolio so they only see what's relevant to them. This is especially important for **Account Managers with a Member role** — without assignment, they won't see any customers.
You can do this now or before Step 5, but it must be done before workflows go live.
| Option | Best for |
| :- | :- |
| [Manual bulk assignment](https://docs.upflow.io/en-us/core-entities/customers/assign-users-or-workflows-to-your-customers#1-manually-and-in-bulk) | Initial setup or one-off changes — filter customers, select them, then use Actions → Assign users |
| [Manual customer-level](https://docs.upflow.io/en-us/core-entities/customers/assign-users-or-workflows-to-your-customers#2-manually-from-the-customer-detail-page) | Individual corrections from the customer detail page |
| [CSV upload](https://docs.upflow.io/en-us/core-entities/customers/assign-managers-and-workflows-via-csv) | Large initial imports, especially if ownership can't be pulled from your integration |
| [Smart Rules](https://docs.upflow.io/en-us/collection-and-collaboration/smart-rules/smart-rules-assignment-best-practice#smart-rules-assignment-best-practice) | Ongoing automation based on customer properties or custom fields |
| [Salesforce](https://docs.upflow.io/en-us/integrations/salesforce/import-data#salesforce-account-assignee) | When Salesforce is your source of truth for account ownership |
Users must exist in Upflow before they can be assigned to customers, even if they haven't been invited to sign in yet.
### Validation — Required to continue
* All users are added with the correct role and position
* Account Managers are assigned to their customers (or scheduled before Step 5)
* At least one user is set up to own workflow actions in Step 5
👉 Next: [**Step 3 — Configure your settings**](https://docs.upflow.io/en-us/essentials/get-started/step-3-configure-your-settings)
# ⚙️ Step 3 — Configure your settings
Source: https://docs.upflow.io/en-us/essentials/get-started/step-3-configure-your-settings
Set up company identity, verify your email domain, configure replies import and aliases — the essential settings required to run collections in Upflow.
**Goal:** Configure the essential settings to run collections in Upflow.
⏱️ **Estimated time:** 1–2 hours
## Actions
* Configure company identity (logo, details, currency, communication timing)
* Verify your email domain
* Set up replies import and email alias
* Review and customize the customer portal
* Add custom fields for segmentation and workflow logic
* Decide which communication channels you will use
## Key decisions
* **Who owns your DNS setup?** Deliverability requires changes to your email domain. Identify your IT/Security/Ops contact before you start.
* **Will you send invoices from Upflow?** This changes how customers receive invoices and adds a Billing template to your workflows.
* **What custom fields do you need?** Define the customer attributes that will drive segmentation, routing, and reporting (e.g. customer tier, region, account owner, contract status) before you configure workflows.
* **Which channels will you use?** Calls and postal letters require additional setup. Decide upfront so you don't have to revisit this section later.
### Company — Required
Set your organization identity and defaults used across Upflow. These details appear anywhere Upflow shows your brand or generates customer-facing content — emails, the customer portal, and document outputs.
* Add your **logo**
* Fill in your **company details**
* Set your **default currency**
* Set the time **automatic communications** will be triggered
Learn more: [Sending automatic communications](https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/sending-automatic-actions#when-are-automatic-communications-sent)
### Deliverability — Required
Allow Upflow to send emails using your own domain. This is essential for your emails to land in your customers' inboxes and look like they're coming from you — not a third-party tool.
Add the required [**DNS records**](https://docs.upflow.io/en-us/collection-and-collaboration/emails/sending-emails-configure-your-domain) in your domain management tool (copy/paste values from Upflow), or connect your [**SMTP server**](https://docs.upflow.io/en-us/collection-and-collaboration/emails/connect-to-a-custom-smtp-server).
This step requires support from whoever manages your email domain (IT/Security/Ops). Start the conversation early — this is the most common reason onboarding gets delayed.
Learn more: [Sending emails](https://docs.upflow.io/en-us/collection-and-collaboration/emails/sending-emails)
### Import emails and aliases — Required
**Email import** captures customer replies directly in Upflow so your whole team has a shared, end-to-end view of every conversation — no more digging through individual inboxes.
Use [Import your customers' replies automatically](https://docs.upflow.io/en-us/collection-and-collaboration/emails/import-your-customers-replies-automatically#import-your-customers-replies-automatically) to route replies into Upflow. If you use Gmail, the [Gmail integration](https://docs.upflow.io/en-us/collection-and-collaboration/emails/gmail-email-import-beta#import-customer-emails-automatically-with-gmail-integration-beta) is the easiest way to get set up.
**Aliases** let teammates send from shared addresses (e.g. finance@, collections@, legal@) while keeping all activity tracked in Upflow. Add a signature so emails look like they're genuinely coming from your team.
Learn more: [Aliases](https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/aliases#aliases)
### Invoicing — Recommended
Enable [sending invoices from Upflow](https://docs.upflow.io/en-us/collection-and-collaboration/send-invoices-from-upflow/overview#send-invoices-from-upflow) to manage all invoicing and collections communications from one place. Once enabled, a **Billing template** will appear in your customer-level workflows — this is the message customers receive every time a new invoice is available.
While in test mode, you'll need to manually mark invoices as sent. Once you go live, you can manage these from your To Do list. The guide below shows how:
You can also enable [payment receipts](https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/sending-payment-receipts-to-your-customers#sending-payment-receipts-to-your-customers) to be sent automatically to customers after payment is confirmed.
### Custom fields — Recommended
[Import and create custom fields](https://docs.upflow.io/en-us/core-entities/others/import-and-create-custom-fields-into-upflow#import-and-create-custom-fields-into-upflow) to keep important customer context structured, filterable, and reportable — rather than buried in notes.
Common examples: **Customer tier, Account owner, Contract status, Region, Collection strategy**
Define these before configuring workflows in Step 5 — your workflow segmentation will depend on them.
### Customer portal — Recommended
Customize your [customer portal](https://docs.upflow.io/en-us/customer-portal/customer-portal/overview) so it reflects your brand and gives customers access to the right features — invoices, dispute submission, payment options.
*Some portal customizations depend on your plan.*
### Calls — Recommended
Enable [calls](https://docs.upflow.io/en-us/collection-and-collaboration/live-calls/live-calls-from-upflow#live-calls-from-upflow) to use Upflow as your outbound dialer. Call recordings and transcripts are tied to the customer record, so your whole team has visibility into follow-up activity.
### Letters — Recommended
Add a **letter footer** (company/legal info, return contact details) to enable [postal reminders](https://docs.upflow.io/en-us/collection-and-collaboration/letters/send-postal-reminders#send-postal-reminders-from-upflow). Every letter will automatically include your legal entity information and the right contact details.
### Security — Recommended
Enable [Google SSO](https://docs.upflow.io/en-us/technical-documentation/sso/enforce-sign-in-with-google) directly from your Security settings. For other SSO authentication types, follow the instructions [here](https://docs.upflow.io/en-us/technical-documentation/sso/enabling-single-sign-on-sso-for-your-upflow-users).
### Excluded customers — Recommended
[Exclude](https://docs.upflow.io/en-us/core-entities/customers/exclude-customers#exclude-customers-from-upflow) any customers who should not be visible in Upflow. When a customer is excluded, their data will not be available and will impact your reporting and collections, so we recommend only excluding test or intercompany customers.
If there are customers you do not wish to contact via Upflow but still need visibility of, you can assign them to an empty workflow instead.
### Dispute reasons — Optional
Manage the list of [invoice dispute reasons](https://docs.upflow.io/en-us/core-entities/invoices/invoice-dispute-reasons#invoice-dispute-reasons) available to your team and to customers via the portal. Keeping this list relevant to your business makes disputes easier to categorize and report on.
## ✅ Validation
* Logo is visible in Upflow
* Domain is verified
* Alias is set up for sending emails
* Custom fields are added for better segmentation and analysis
👉 Next: [**Step 4 — Collect online payments**](/en-us/essentials/get-started/step-4-collect-online-payments)
# Step 4 — Collect online payments
Source: https://docs.upflow.io/en-us/essentials/get-started/step-4-collect-online-payments
Complete KYC, enable payment methods, and run a first live payment — the fourth step of your onboarding journey before go-live.
**Goal:** Enable and validate online payment collection so customers can pay invoices directly through Upflow.
⏱️ **Estimated time:** 30–60 minutes
### Before you start
**This step requires a KYC (Know Your Customer) verification process** powered by Stripe. Have the following ready before you begin:
* Company registration number / Employer Identification Number (EIN)
* Personal information for the person creating the account
* Personal information for any business owners with more than 25% ownership
### Actions
* Complete KYC and start Upflow Payments onboarding
* Enable and configure payment methods
* Configure your branded customer portal
* Set your statement descriptor
* (Optional) Configure card surcharges
* Run a first live payment and validate the end-to-end flow
### Key decisions
* **Which payment methods will you offer?** Cards are available globally. Direct debit (ACH, SEPA, Bacs) depends on your geography.
* **Will you enable Autopay?** On by default — only disable for customers who need a manual review before payment is collected.
* **Will you pass card fees on to customers?** Decide before go-live — changing this after can confuse customers who've already saved a payment method.
### Complete KYC — Required
Go to **Settings → Payments** and start the Payments onboarding. This connects Upflow to Stripe and is required before any payment methods can be activated.
Learn more: [Onboarding and setup](/en-us/payments/accept-online-payments/onboarding-and-setup)
### Enable payment methods — Required
Go to **Settings → Payments → Payment methods** and enable the methods relevant to your setup.
Learn more: [Managing online payment methods](/en-us/payments/accept-online-payments/managing-online-payment-methods)
### Assign payment methods by customer — Required
Decide which payment methods are available to which customers. You can assign them in several ways:
* **From the customer list** — filter customers, select them, then use Actions → Payment methods
* **From the customer detail page** — assign directly from an individual customer's page
* **Via Smart Rules** — automate assignment based on customer properties
Learn more: [Enable payment methods for existing customers](/en-us/payments/accept-online-payments/managing-online-payment-methods#enable-payment-methods-for-existing-customers)
### Configure your branded portal — Recommended
Go to **Settings → Customer portal** and add your logo, favicon, and brand colors.
**Validate the portal on both desktop and mobile before going live.**
Learn more: [Customizing the customer portal](/en-us/customer-portal/customer-portal/overview#customization)
### Configure statement descriptor — Recommended
Set the text customers will see on their bank or card statement when Upflow collects a payment. This is configured in your **Stripe Express settings**.
A generic or unrecognizable statement descriptor is one of the top reasons customers dispute payments. Use your company name or a recognizable short version of it.
Learn more: [Statement descriptor](/en-us/payments/accept-online-payments/statement-descriptor#statement-descriptor)
### Configure card surcharges — Optional
Go to **Settings → Payments → Card surcharges** to pass card processing costs on to customers who pay by credit card.
Learn more: [Passing card surcharges on to customers](/en-us/payments/collect-online-payments/passing-card-surcharges-on-to-customers#passing-card-surcharges-on-to-customers)
### Enable or disable Autopay — Recommended
Go to **Settings → Payment gateway → Online payment options → Autopay**. Autopay is on by default and charges saved payment methods automatically on the due date.
Learn more: [Collecting automatically with Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay#enable-autopay)
## Validation
Complete the following before moving to Step 5:
* KYC is complete and Payments onboarding is finished
* Payment methods are enabled and assigned to the right customers
* Customer portal is branded and tested on desktop and mobile (if configured)
* Statement descriptor is set to something customers will recognize (if configured)
* Card surcharges display correctly at checkout (if enabled)
Keep the following steps in mind for after you Go Live:
* Run a first live payment and confirm it is successful in both Upflow and your Stripe dashboard
* For **Sage Intacct** and **Xero** users: confirm the payment has synced correctly back to your source of truth
* Confirm the first payout has settled in your bank account
**A delay on your first payout is expected.** Stripe runs compliance and verification checks on new accounts — the first payout can take 7–10 business days depending on your country, payment method, and bank. It gets faster after the first one.
👉 Next: [**Step 5 — Configure workflows & automation**](/en-us/essentials/get-started/step-5-configure-workflows)
# 📝 Step 5 — Configure workflows & automation
Source: https://docs.upflow.io/en-us/essentials/get-started/step-5-configure-workflows
Build collection workflows in Upflow with clear assignees, senders, and recipients to streamline reminders and automate your dunning process end to end.
**Goal:** Streamline your collections process
⏱️ **Estimated time:** 2–4 hours
### ✅ What you’ll have at the end (quick preview)
By the end of this step, you’ll have:
* At least one workflow configured with clear **assignees**, **senders**, and **recipients**
* Actions set up with the right **timing** (pre-due / overdue) and **automation level** (automatic vs manual)
* A tested workflow assignment so you can confidently move to Step 6 without surprises
## Actions
* Create workflows
* Assign customers to your workflows
### 🔀 Choose your approach
**Start simple if:**
* This is your first time setting up workflows
* Most customers can follow the same reminder path
* You want to validate the basics quickly (timing, templates, assignees)
**Advanced setup if:**
* You have clear segments (SMB vs Enterprise, regions, strategic accounts)
* You need different assignees/senders/templates by segment
* You want multiple strategies running in parallel (e.g., pre-due + overdue escalation)
**👉 Start simple**
* 1–2 workflows
* Basic logic
**👉 Advanced setup**
* Segmented workflows
* Complex smart rules
## Key decisions
* Timing and frequency of actions
* Segmentation strategy
* Level of automation
## Creating a Workflow
Workflows define how you follow up with customers over time. They determine when actions happen, what type of action is created, and who is responsible for each step.
Start with a simple workflow first. You can always refine the timing, wording, ownership, and general complexity later.
Click **Get Started** in the interactive guide below to follow along, or follow the steps outlined in this article.
**Prefer reading?** Continue with the steps below.
#### Start from your workflow settings
Go to the **Workflows** section and create a new workflow.
Choose a clear name that your team will recognize, such as **Standard collection workflow**, **Enterprise customers**, or **Pre-due date reminders**.
**Customer-level vs invoice-level workflows (quick guide)**
| **Type** | **Description** | **Best for** |
| :- | :- | :- |
| **Customer** | One workflow for the whole customer account (all open invoices together). | One clear reminder path per customer, account-based escalation. |
| **Invoice** | One workflow per invoice; stops when that invoice is paid. | Pre-due reminders and “every invoice gets a journey.” |
**You can use them separately** (choose one main approach), or **together**. A common setup is **invoice-level** workflows for *pre-due reminders on new invoices*, and **customer-level** workflows for *overdue chasing and escalation across the full account*.
#### Set the minimum contact delay
The **minimum contact delay** is the minimum number of days Upflow waits between two follow-ups to the same customer.
This prevents customers from receiving too many reminders too close together.\
If customers receive reminders too frequently, increase your minimum contact delay (and remember weekends affect spacing).
For a standard workflow, a good starting point is **5 days**. This usually allows you to follow up about once per week without overwhelming the customer.
⚠️ Upflow does not send reminders on Saturdays or Sundays, so keep this in mind when setting your minimum contact delay.
#### Choose the first action logic
The **first action logic** decides where a customer starts when they are assigned to the workflow.
If customers are starting at the wrong step, double-check your first action logic choice (**Standard** vs **Contextualized**) before assigning workflows in bulk.
| **Option** | **What it means** | **When to use it** |
| :- | :- | :- |
| **Standard** | The customer starts at the first step of the workflow. | Use this if you want every customer to go through the full sequence from the beginning. |
| **Contextualized** | The customer starts at the step that best matches how overdue they already are. | Use this if you already have overdue customers and do not want to restart them at step one. |
#### Understanding the carrying invoice
The **carrying invoice** is the invoice that determines where the customer is in the workflow.
For customer-level workflows, this is usually the oldest overdue invoice that is still open. Upflow uses it to decide which workflow step applies and when the next action should happen.
**Example:** If a customer has three open invoices and the oldest overdue one is **Invoice A**, Upflow typically uses **Invoice A** as the carrying invoice to place the customer in the right step and schedule the next action.
#### Create your workflow actions
An **action** is one step in the workflow. Action types include:
* [Emails](https://docs.upflow.io/en-us/collection-and-collaboration/emails/sending-emails#sending-emails)
* [Calls](https://docs.upflow.io/en-us/collection-and-collaboration/live-calls/live-calls-from-upflow#live-calls-from-upflow)
* Tasks
* [Letters](https://docs.upflow.io/en-us/collection-and-collaboration/letters/send-postal-reminders#send-postal-reminders-from-upflow)
* [SMS](https://docs.upflow.io/en-us/collection-and-collaboration/sms/sms-reminders-overview#sms-reminders-connect-more-personally-with-your-customers)
For each action, choose when it should occur, such as **7 days after the issue date**, **5 days before the due date**, or **30 days after the due date**.
Then decide whether the action should be **automatic** or **manual**.
| **Type** | **What it means** | **When to use it** |
| :- | :- | :- |
| **Automatic** | Upflow sends the action automatically. | Best for standard email reminders. |
| **Manual** | A user completes the action from their to-do list. | Best for calls, sensitive accounts, escalations, or final notices. |
Keep the first version simple, then add complexity down the line. A few clear actions are easier to validate than a long, complex workflow.
#### Choose the action assignee
The **assignee** is the person responsible for the action.
If assignees get overloaded with tasks, reduce the number of manual steps at first and be intentional with assignee assignment (especially user groups/shared queues).
For manual actions, the task appears in the assignee’s to-do list. For automatic actions, the assignee helps track who is responsible for that follow-up.
Common options include a finance user, an assigned account manager, an assigned customer user, or a user group.
#### Choose the sender
The **sender** is the person or email address the customer sees when they receive the message.
Choose the sender based on who should appear to be contacting the customer. This could be a shared [alias](https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/aliases#aliases) such as a billing or collections email address, a specific finance user, or an account manager.
#### Choose the recipient
The **recipient** is the customer contact who receives the message.
If reminders go to the wrong person, confirm your recipient logic and clean up customer contact data before rollout.
This is usually the billing, finance, or main contact on the customer account. Before going live, make sure your contacts are accurate so reminders go to the right people.
**Tip:** You can add your Owners and additional email addresses in the CC and BCC fields below.
#### Select or edit the message template
Edit the message customers will receive to suit the stage in the escalation.
Utilize [custom tags](https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter-best-practices#collection-tag-inserter-best-practices) to customize the communication with the most important information for your customers.
A good reminder should be clear, short, polite, and easy to act on. Make sure it includes the right invoice, balance, payment, or portal information.
#### Review the final action
The final action can repeat until the carrying invoice is paid.
The repeat timing is based on your **minimum contact delay**. For example, if the minimum contact delay is **5 days**, the final action can repeat every 5 days while the invoice remains unpaid.
Choose a final action that makes sense to repeat, such as a reminder email, a call task, or an internal escalation.
#### Save and test
Before using the workflow, review the key details:
* The workflow name is clear
* The minimum contact delay matches your process
* The first action logic is correct
* Each action has the right timing
* Assignees, senders, and recipients are correct
* Templates are ready
Send yourself some [test emails](https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/test-your-email-templates#test-your-email-templates) to make sure you are happy with the email content and formatting.\
If templates look correct in-editor but break in real emails, always rely on test emails to confirm tag resolution and formatting.
#### Assign workflows to your customers or invoices
Once you're confident with your workflows - [assign](https://docs.upflow.io/en-us/core-entities/customers/assign-users-or-workflows-to-your-customers#assign-users-or-workflows-to-your-customers) customers or invoices to them manually, in bulk, or with Smart Rules.
**Rollout tip (recommended):** Start with a small pilot group (e.g., **5–10 customers**) for **1–2 days** before assigning workflows in bulk. This helps you confirm timing, recipients, and templates in real conditions.
Before go-live, check a few examples to confirm the upcoming actions are scheduled as expected. You can do this from [Actions → ALL](https://app.upflow.io/organization/-/actions-list?page=0\&filters=%7B%7D).
## ✅ Validation (required to continue)
* At least one workflow created
* Workflows are assigned correctly to your customers or invoices
⚠️ *Do not move forward until this step is complete.*
👉 Next: [**Step 6 - Go Live**](https://docs.upflow.io/en-us/essentials/get-started/step-6-go-live)
# 🚀 Step 6 — Go Live
Source: https://docs.upflow.io/en-us/essentials/get-started/step-6-go-live
Exit Test Mode, disable duplicate reminders in other tools, and start sending automated collection reminders from Upflow — the final onboarding step.
**Goal:** Start sending reminders from Upflow.
⏱️ **Estimated time:** 30–60 minutes
***
### Before you flip the switch
**Disable reminders in your other tools before going live.** If your billing or ERP system is still sending dunning emails, your customers will receive duplicates. Turn those off first.
***
### Actions
* Turn off dunning reminders in your billing or ERP system
* Run final tests
* Make sure every user who will send reminders has set up their [email signature](https://docs.upflow.io/en-us/upflow-configuration/your-user-profile/set-up-my-profile-signature#set-up-my-profile-signature)
* If you are [sending invoices from Upflow](https://docs.upflow.io/en-us/collection-and-collaboration/send-invoices-from-upflow/overview#send-invoices-from-upflow), mark existing invoices as sent so customers don't receive them again
* Exit test mode via the yellow banner and go live
***
### Key decisions
* **Will you automate immediately or start manual?** We recommend starting with manual actions only for the first few days so you can have a smooth transition from your existing processes to your processes in Upflow
* **Which segment goes first?** Start with a small, low-risk segment before rolling out to everyone
***
### Run your end-to-end test
Before exiting test mode, confirm everything works as expected:
**Send**
* Pick 1–2 internal or test customers
* Send a [test email](https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/test-your-email-templates#test-your-email-templates) and confirm it lands in your inbox with the right formatting, and content
**Receive**
* Confirm that you are receiving emails sent from your customers to your inbox
**Check**
* Customer and invoice data looks accurate (contacts, due dates, amounts, etc.)
* The upcoming actions scheduled for your pilot customers look correct — you can check from [Actions → ALL](https://app.upflow.io/organization/-/actions-list?page=0\&filters=%7B%7D)
***
### Go live
Once your test passes, you're ready to start sending reminders from Upflow.
#### Exit test mode
Click the yellow banner at the top of Upflow to exit Test Mode. From this point, real reminders can be sent to your customers.
***
#### Enable automatic actions
In your Collection settings, turn on **automatic actions**. This is the general setting that unlocks automation across Upflow and is required before you can send an action campaign.
This is different from the per-action automation set inside each workflow. Enabling automatic actions here is just a master switch — nothing will auto-fire if your individual workflow actions are still configured as manual.
Learn more: [Enable automatic actions after going live](https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/test-mode#enable-automatic-actions-after-going-live)
***
#### Send your first action campaign
Send a mass email to notify your customers that you're now using Upflow for invoicing communications. This proactive introduction reduces spam flags, support questions, and customer confusion as your A/R processes change and you introduce the customer portal.
Learn more: [Action campaigns](https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/action-campaigns#action-campaigns)
***
### Recommended rollout
Going live is a starting line, not a finish line. Here's how most teams ramp up safely:
1. **Start small.** Assign workflows to a small segment of customers first, with most workflow actions configured as **manual**. This keeps a human in the loop while patterns settle.
2. **Monitor for a few days.** Watch deliverability, customer replies, and feedback from your team.
3. **Expand to your full customer base.** Once you're confident things are running smoothly, assign workflows to the rest of your customers.
4. **Automate gradually.** Within each workflow, switch individual actions from manual to automatic as patterns become predictable. Standard email reminders are usually the first to automate; calls, escalations, and final notices often stay manual.
***
### Critical checks before expanding
Before you expand from your pilot segment to your full customer base, confirm all of the following are true:
* No duplicate reminders running in other systems
* Emails deliver correctly — right sender, right "from" name, no formatting issues
* Customer data is accurate — contacts, invoices, due dates, and amounts
* End-to-end test passed and pilot customer feedback is positive
***
## 🎉 You're live — what's next?
Now that you're up and running, here's how to get more out of Upflow:
| What | Why |
| :- | :- |
| [Automate individual workflow actions](https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/sending-automatic-actions) | Switch workflow actions from manual to automatic as patterns become predictable. This is the per-action setting inside each workflow — different from the general "Enable automatic actions" toggle. |
| [Activate Smart Rules](https://docs.upflow.io/en-us/collection-and-collaboration/smart-rules/smart-rules#smart-rules) | Auto-assign customers to workflows or account managers |
| [Optimize your workflows](/en-us/essentials/get-started/step-5-configure-workflows) | Refine timing, templates, and ownership based on early results |
| [Create custom dashboards](https://docs.upflow.io/en-us/analytics/good-to-know/analytics-filter-and-export-your-data) | Track what matters to your team |
| [Connect Slack](https://docs.upflow.io/en-us/integrations/slack/connect) | Receive Upflow notifications in Slack |
#### Exit test mode
Click the yellow banner at the top of Upflow to exit Test Mode. From this point, real reminders can be sent to your customers.
#### Enable automatic actions
In your Collection settings, turn on **automatic actions**. This is the general setting that unlocks automation across Upflow and is required before you can send an action campaign.
This is different from the per-action automation set inside each workflow. Enabling automatic actions here is just a master switch — nothing will auto-fire if your individual workflow actions are still configured as manual.
Learn more: [Enable automatic actions after going live](https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/test-mode#enable-automatic-actions-after-going-live)
#### Send your first action campaign
Send a mass email to notify your customers that you're now using Upflow for invoicing communications. This proactive introduction reduces spam flags, support questions, and customer confusion as your A/R processes change and you introduce the customer portal.
Learn more: [Action campaigns](https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/action-campaigns#action-campaigns)
### Recommended rollout
Going live is a starting line, not a finish line. Here's how most teams ramp up safely:
1. **Start small.** Assign workflows to a small segment of customers first, with most workflow actions configured as **manual**. This keeps a human in the loop while patterns settle.
2. **Monitor for a few days.** Watch deliverability, customer replies, and feedback from your team.
3. **Expand to your full customer base.** Once you're confident things are running smoothly, assign workflows to the rest of your customers.
4. **Automate gradually.** Within each workflow, switch individual actions from manual to automatic as patterns become predictable. Standard email reminders are usually the first to automate; calls, escalations, and final notices often stay manual.
### Critical checks before expanding
Before you expand from your pilot segment to your full customer base, confirm all of the following are true:
* No duplicate reminders running in other systems
* Emails deliver correctly — right sender, right "from" name, no formatting issues
* Customer data is accurate — contacts, invoices, due dates, and amounts
* End-to-end test passed and pilot customer feedback is positive
# Your Upflow Portal
Source: https://docs.upflow.io/en-us/essentials/get-started/your-upflow-portal
Access your billing portal from Upflow's Settings to review outstanding and paid invoices, manage payment methods, and download billing details as an admin.
As an Admin user, you can access your Upflow portal from your organization [Settings > Billing section](https://app.upflow.io/organization/-/settings/billing).
From there, you'll be able to:
* Access all invoices - outstanding or paid
* Unapplied credit notes, if any
* Pay your outstanding invoices
* Save a payment method for future manual or automated debits
As well as access our W9 form, and your account statements:
* [Customer portal](/en-us/customer-portal/customer-portal/overview)
* [Download your Account Statement](/en-us/customer-portal/customer-portal/download-your-account-statement)
Or contact our Billing team for any questions on your invoices, payments, or subscription.
# Upflow Documentation
Source: https://docs.upflow.io/en-us/index
Everything you need to manage your accounts receivable and get paid faster.
All you need to know to get started with Upflow
Connect Upflow with your tools and supercharge your cash collection
Understand how your cash collection is performing
Actions, workflows, and notes. Discover how to improve your cash collection
Get your customers to pay you
Offer a delightful customer experience
Reconcile your bank transactions effortlessly
Customers, contacts, invoices & credit notes, payments & refunds
Connect with Upflow's API. Set up your DNS or SSO
All the legal and security documents you need
# Connect my Chargebee account to Upflow
Source: https://docs.upflow.io/en-us/integrations/chargebee/connect
Sync your Chargebee account with Upflow in minutes: pick your currency, locate your namespace, generate the connection, and start your cash collection.
Create your Upflow organization from our [Sign Up page](https://app.upflow.io/signup), name it, select your timezone (same as in Chargebee). Then, in the following step, click Connect under Chargebee, and on **Continue** from the page you'll be redirected to.
Pick your currency, and fill in your *Namespace* - you will find it in your Chargebee account URL, right before *.chargebee.com*
Here, it would be ***demo-account***.
Click on the generated link.
***
👉 You will always be able to access it later from the **Configure Chargebee** page of your Chargebee settings (under **Api Keys**).
Click on **Add API Key**...
...and create one with a **Write**, **Full-access** by selecting these options from the menus you will be taken through.
Give it a name of your choice before saving it by clicking on ***Create Key*** *.*
And copy it from Chargebee…
…into Upflow.
# Chargebee Customer Custom Fields
Source: https://docs.upflow.io/en-us/integrations/chargebee/customer-custom-fields
Import Chargebee customer custom fields into Upflow to segment accounts, assign workflows and payment methods, and route them to the right account managers.
The customer *Custom fields* feature allows you to segment your customers and assign them to the right Account Managers, workflows, and/or payment methods!
You can import information such as the subscription date or plan, the account ID, or any contextual information that lies in your systems at a customer level.
## In Chargebee
In Chargebee as an Administrator, you can go to *Settings > Configure Chargebee > Custom Fields.* This step will create and/or import your custom fields from Chargebee and make them available in Upflow.
## In your Upflow settings
If you want to add your Chargebee custom fields, Upflow got you covered. Head to your Settings > Custom fields section, and click *Add field*, then select your field from the list:
#### I can't find my field in the list
If your field is not available in the list, you can scroll down the list and click *Add custom field*. Then, select the option ***Yes, in Chargebee*** :
*
*
The field you create in Upflow **must be exactly as the one from Chargebee:**
* The field type must match the one used in Chargebee
* The name in Upflow must match the field **API Name** in Chargebee.
The fields added in your settings above, will then be available in your [Customers list view](https://app.upflow.io/organization/-/customers). Filter your customers by custom field or add/sort your views' columns based on these fields.
#### The supported custom field types on Chargebee are:
| Chargebee Type | Chargebee Limits | Upflow Type | Notes |
| - | - | - | - |
| Notes | The maximum character limit is 99. | STRING | This field will appear as a text box. |
| Multiline text | The maximum character limit is 250. | STRING | This field will appear as a text area. |
| Dropdown | The total number of characters used for all the options put together, must not exceed 5000. | SELECT | We can add as many options as we’d want, as long as the options limit is respected. |
| Checkbox | default: false | BOOLEAN | True/False dropdown |
| URL | URL validations applied | STRING | This field type will appear as a text area. The URL provided here will be validated for "http\://" and "https\://". (a valid HTTP URL) |
| Email | email validations applied | STRING | This field type will appear as a text box. The email address will be validated. |
| Date Picker | | DATE | |
| Timestamp | | DATETIME | |
| Numbers | | FLOAT | |
### More fields - Subscriptions
Additionally, you can import subscription names as customer custom fields.
As a customer can have several subscriptions, you will be able to import the subscription name based on the subscription status.
The following statuses are available: Active, Cancelled, Future, In-trial, Non renewing, Paused, Transferred.
You can [read more about custom fields here](/en-us/core-entities/others/import-and-create-custom-fields-into-upflow) for more details.
> Only customer custom fields are supported with Chargebee. No invoice, payment, or contact custom field can be synced.
Any questions? Submit a Support request at the top of this article.
# Chargebee Customers & Contacts
Source: https://docs.upflow.io/en-us/integrations/chargebee/customers-and-contacts
Understand how Chargebee customers and contacts sync to Upflow, including data mapping, main contact selection, and how updates flow between systems.
## Customers
Customers created in Chargebee will be synced in Upflow within a few minutes with the related data.
#### Mapping with Upflow
| Upflow data | Data flow | Chargebee data |
| - | - | - |
| customer | ← | customer |
| invoice | ← | invoice |
| credit note | ← | credit note |
| payment | ↔ | payment |
| refund | ← | refund |
| refund | ← | payment reversal |
#### Note: Customer hierarchy from Chargebee is not supported in Upflow.
## Contacts
The main contact is created using the customer details:
```
firstName: customer.first_name,
lastName: customer.last_name,
email: customer.email.toLowerCase(),
phone: customer.phone,
isMain: true,
},
```
Additional contacts are also created in Upflow by importing customers.billing addresses and customers.contacts.
### FAQ
**Can I see my customers hierarchy (parent/children) in Upflow?**
* This is not yet supported in our integration.
# Invoices - Only use PDFs imported via the Upflow API
Source: https://docs.upflow.io/en-us/integrations/general/invoices-only-use-pdfs-imported-via-the-upflow-api
Override invoice PDFs from native integrations like NetSuite or Chargebee by uploading custom PDFs through the Upflow API for your customer portal.
You use one of our native integrations (i.e. NetSuite, Chargebee, Sellsy, etc.) and wish to use/import PDFs from another software than your billing system. Upflow got you covered!
## What is this feature for?
You can use [our API](https://developer.upflow.io/) to upload the correct `pdf` files to Upflow. The customer can then download their pdfs from their Upflow portal, and the files will be the ones synced via API, and not your native billing tool.
Example:
Your native integration and billing tool is NetSuite. But you prefer to rely on PDFs generated via Salesforce. You can then set up an API configuration to sync your Salesforce PDFs into Upflow and disregard the PDFs that might be present in NetSuite, even if the PDF is missing from Salesforce.
## How does it work?
To enable this feature, head to your Upflow Settings, Invoicing section and enable the following:
* When it is off (default behavior), Upflow will fall back to the native integration pdf (i.e. NetSuite) in case of missing API pdf.
* When it is on, Upflow will not fall back to the native integration pdf in case of missing API pdf. In this situation, the pdf file will not be available on the portal, to avoid showing the wrong one to the customer.
### Notes
* This setting is at the organization level.
Any questions? Please submit a Support request at the top of this article.
# Understanding Fix Transactions
Source: https://docs.upflow.io/en-us/integrations/general/understanding-fix-transactions-in-upflow
Learn what fix transactions are in Upflow, why they appear, and how they keep your balances aligned with NetSuite, QuickBooks, Chargebee, or other accounting systems.
Fix transactions are synthetic transactions that Upflow creates to ensure your account balances match your accounting system (source of truth - i.e., NetSuite, QuickBooks, Chargebee, etc.).
While they may look unusual at first, they serve an important purpose in keeping your data accurate.
## What are fix transactions?
There are two types:
#### Fix transactions
Example: the reference starts with "fix:".
* Created at the invoice level
* Adjust or compensate a specific invoice balance
* Used when Upflow cannot import or fetch the exact original payment application from your accounting system
#### Customerfix transactions
Example: the reference starts with "customerfix:".
* Created at the customer level as an unapplied adjustment
* Correct the overall customer balance without being tied to a single invoice
* Ensure the total balance matches your source system even when individual transaction details are unavailable
## Fix transactions dates
You may notice fix transactions show dates that are 1-2 years in the past. This is intentional:
* **Customerfix transaction** s: Usually created 1-2 years in the past to avoid affecting your analytics and payment list views
* **Invoice fix transactions** : Created on the invoice date to compensate for payments we couldn't import
The day and month are usually accurate or close to the actual date, but the year is adjusted to minimize visibility in current reporting.
## Common reasons fix transactions are created
* Upflow cannot import the complete payment application details from your accounting system
* There are balance discrepancies between your source system and Upflow
* Currency conversion rate differences exist between systems
* Integration limitations prevent full data import
* Payment records exist in your source system but cannot be matched to invoices in Upflow
## Troubleshooting: How to identify fix transactions
### In the Payments list view:
1. Go to your Payments list or the Payments tab at the customer level
2. Type "fix:" in the search bar
3. This will show all fix transactions (both fix: and customerfix:)
4. You can export this list if needed
5. Sort by columns like "Received date", “Imported date”, or use filters to refine results (e.g., filter by Type to see payments vs. refunds)
### What to do if you see fix transactions?
Most fix transactions are “expected”, and indicate that Upflow is working to keep your balances as accurate as possible. However, if you notice:
* A high volume of fix transactions
* Recurring fix transactions for the same customers
* Balance discrepancies that concern you
Contact Upflow support with examples from Upflow, and related customers from your Source of truth:
* Screenshots from the customer balance and recent invoices + payments/refunds/credit notes.
* References of the related data (invoice/payment/refund/credit note **number** + **external ID**).
* Any history/audit trails on the missing reference (usually payment) would be very useful to our team as well.
Our team can investigate whether there's an underlying sync issue with your integration or if adjustments can be made to reduce fix transaction creation.
# Connect HubSpot to Upflow
Source: https://docs.upflow.io/en-us/integrations/hubspot/connect
Connect the HubSpot CRM to Upflow: authorize access, map a shared identifier between HubSpot companies and your customers, and choose which data to sync.
Connecting HubSpot to Upflow brings your CRM data into your collections process. Once connected, Upflow keeps your customers enriched with the information your team relies on to get paid — contacts, customer custom fields, and account context — and can push your AR data back to HubSpot so your commercial team always sees where each account stands.
In this article, you'll find:
* How to connect HubSpot to Upflow
* How to set up a shared identifier so Upflow matches the right customers
* Which data you can sync, and where to configure it
## Before you start
* The user setting up the integration must be an **admin** in both HubSpot and Upflow.
* If you manage several Upflow organizations, you can connect them all to the same HubSpot account.
* HubSpot **companies** map to Upflow **customers**.
## How to connect HubSpot with Upflow
You'll set up the integration from the [CRM section of your Upflow settings](https://app.upflow.io/organization/-/settings/crm).
1. From the [**CRM**](https://app.upflow.io/organization/-/settings/crm) settings page, find the **HubSpot** card and click **Connect**.
2. You're taken to HubSpot to authorize the connection. Sign in to your HubSpot account (or create one), then approve the access Upflow requests.
Upflow asks for permission to **read and write your HubSpot companies** and to **manage company properties**. These are needed to import your data into Upflow and to write your AR data back to HubSpot.
3. Once you approve, HubSpot sends you back to Upflow to finish the setup.
## Setting up a shared identifier
Right after you authorize, the onboarding asks you to set up a **shared identifier** — this comes first, because it's what lets Upflow match the right HubSpot company to the right customer. It's a value that identifies the same customer across HubSpot, Upflow, and your billing tool (NetSuite, QuickBooks, Chargebee, Stripe Billing, Xero, Zuora, and so on).
A **1-to-1 mapping** is required between your billing tool customers and your HubSpot companies. A text property is the most reliable type for the identifier.
### Common identifier scenarios
#### Option 1: Using the HubSpot identifier (company ID)
Here, your HubSpot companies are synchronised into your billing tool.
* Each company in HubSpot has a unique **company ID**, which looks like `424327409854`.
* You can find it in the URL of a company page in HubSpot.
* Make sure it exists in **your billing tool** as a custom field, and in **Upflow** as a customer custom field (import it if needed from the custom fields section).
* **Field mapping:** select the HubSpot company ID on the HubSpot side and the matching field on your billing tool side.
#### Option 2: Using your billing tool identifier (e.g. NetSuite Id)
Here, your billing tool customers are synchronised into HubSpot.
* The identifier — for example a **NetSuite Id**, formatted like `285` — is unique to each customer in your billing tool.
* Make sure it exists in **HubSpot** as a company property, and in **Upflow** on the customer.
* **Field mapping:** select your billing tool's ID as the shared identifier on both sides.
#### Option 3: Using another identifier
Here, your billing tool and HubSpot are not synchronised together.
You'll choose or create a dedicated shared identifier (for example an app-specific ID or a company registration number), make sure it exists in both HubSpot and your billing tool, and [import it into Upflow](https://app.upflow.io/organization/-/settings/custom-fields).
### Step by step
1. **Choose the identifier.** Pick one value that is the same for the same customer in both systems, **unique** (no duplicates), and **stable** over time. A text field usually works best.
2. **Add the field on both sides.** In **HubSpot**, create or select a company property (e.g. *Other ID*). In your **billing tool**, create or select the equivalent field on the customer.
3. **Fill the identifier in both systems.** Populate it manually (small volumes) or via API/automation (recommended at scale).
4. **Make it available in Upflow.** Sync both fields from your [**Custom fields** settings](https://app.upflow.io/organization/-/settings/custom-fields), at the customer level.
5. **Map the fields.** In Upflow, map the identifier field on your **billing tool** side to the matching property on the **HubSpot** side. You can update this at any time from your [**Custom fields** settings](https://app.upflow.io/organization/-/settings/custom-fields).
**Common errors preventing the match for some customers:**
* Missing values in one or both systems → no match
* Duplicates → ambiguous match
* Formatting differences (spaces, leading zeros, casing) → mismatch
## Configure the integration
Next, a short **Configure your HubSpot integration** step lets you choose what to sync in each direction. When you're done, Upflow runs an initial synchronisation and then keeps everything up to date automatically.
1. **Choose what to import into Upflow.**
* **HubSpot Contacts:** select this option to use your HubSpot contacts for collection. If you have a billing or accounting integration, HubSpot contacts replace the contacts from that integration.
* **HubSpot custom properties:** importing company custom properties is enabled automatically and can't be turned off. You choose exactly which properties to bring in from your Custom field settings.
2. **Choose what to export from Upflow.** Turn on the export to send your AR data back to HubSpot, then map each Upflow field to the HubSpot company property it should update.
For the full detail of each direction, see [Import HubSpot data](/en-us/integrations/hubspot/import-data) and [Export Upflow data to HubSpot](/en-us/integrations/hubspot/export-data).
## Frequently asked questions
### Why is my HubSpot integration pending?
**Pending** means you authorized the connection in HubSpot but haven't finished the setup in Upflow. The integration stays pending until you complete the shared identifier mapping and confirm the configuration step. While it's pending, Upflow doesn't sync any data.
To finish the setup, go back to the [**CRM** settings page](https://app.upflow.io/organization/-/settings/crm) and click **Resume** on the HubSpot card. Upflow takes you back to where you left off. Once you confirm the configuration, Upflow runs the initial synchronisation and the integration becomes active.
### How often does HubSpot data sync with Upflow?
After the initial synchronisation, Upflow keeps your data current automatically, picking up changes made in HubSpot on a regular basis.
### What happens if I disconnect HubSpot?
Disconnecting turns off the HubSpot contacts import and removes the custom fields imported from HubSpot. Reconnecting starts a fresh synchronisation.
# Export Upflow data to HubSpot
Source: https://docs.upflow.io/en-us/integrations/hubspot/export-data
Push customer-level collection data from Upflow to HubSpot company properties so your commercial team always sees the latest AR status on each account.
## How does it work?
Once HubSpot and Upflow are [connected](/en-us/integrations/hubspot/connect), you can export collection data from Upflow to HubSpot so your team sees each customer's AR situation right inside their CRM.
Only information stored at the **customer** level can be exported, and it's written to the corresponding HubSpot **company**.
To export a field:
1. Create the destination property on the company object in HubSpot.
2. Back in Upflow, the property becomes available for mapping after a few minutes.
3. Map the Upflow field to the HubSpot property and save — the sync starts.
If you disable a field's sync in Upflow, the property is no longer updated — but it isn't deleted in HubSpot.
Your AR data then appears on the matching HubSpot company, alongside your CRM data.
## Customer fields available for export
These are the same fields Upflow writes back for the Salesforce integration.
| Field | Description | HubSpot property type |
| - | - | - |
| Outstanding amount | Outstanding amount in the org currency | Number |
| Overdue amount | Overdue amount in the org currency | Number |
| Overdue 1 - 30d | Overdue amount 1 to 30 days past due, in the org currency | Number |
| Overdue 31 - 60d | Overdue amount 31 to 60 days past due, in the org currency | Number |
| Overdue 61 - 90d | Overdue amount 61 to 90 days past due, in the org currency | Number |
| Overdue > 90d | Overdue amount more than 90 days past due, in the org currency | Number |
| Due amount | Due amount in the org currency | Number |
| Overdue count | Number of overdue invoices | Number |
| Due count | Number of due invoices | Number |
| Average payment delay | Average payment delay in days | Number |
| Rating | Customer rating | Single-line text |
| Collection status | Active or Paused | Single-line text |
| Customer portal URL | Link to the customer portal | Multi-line text |
| Customer details page URL | Link to the customer page in Upflow | Multi-line text or URL |
| Saved payment method | Saved payment method type | Single-line text |
| Saved payment method status | Last payment status of the saved payment method | Single-line text |
| Text custom field | A text customer custom field | Single-line or multi-line text |
| Select custom field | A single-select customer custom field | Dropdown select |
| Multi-select custom field | A multi-select customer custom field | Multiple checkboxes |
| Date custom field | A date customer custom field | Date picker |
| Boolean custom field | A true/false customer custom field | Single checkbox |
| Number custom field | A number customer custom field | Number |
The **Customer portal URL** is refreshed periodically so the link your team opens from HubSpot stays valid. All other fields update automatically as your AR data changes in Upflow.
# Import HubSpot data
Source: https://docs.upflow.io/en-us/integrations/hubspot/import-data
Import HubSpot contacts and company custom fields into Upflow to enrich your customers and drive smarter collection workflows.
Once HubSpot is [connected](/en-us/integrations/hubspot/connect), you can import HubSpot information into Upflow. Data is imported at the **company** level, which maps to your Upflow **customers**.
## HubSpot contacts
Turn on the **HubSpot Contacts** option to use your HubSpot contacts in Upflow. You'll find it in the **Configure your HubSpot integration** step during setup, and on the HubSpot page of your [**CRM** settings](https://app.upflow.io/organization/-/settings/crm).
What the option does depends on whether your organization is connected to a billing or accounting integration:
* **With a billing or accounting integration** (NetSuite, QuickBooks, Xero, and so on): Upflow stops syncing contacts from that integration. Upflow uses your HubSpot contacts for collection instead. It's not yet possible to combine contacts from both sources in Upflow.
* **Without a billing or accounting integration:** Upflow imports your HubSpot contacts to enrich your collection.
HubSpot contacts are attached to the Upflow customer that matches their associated HubSpot company.
### Disable the contacts import
1. Go to the HubSpot page of your [**CRM** settings](https://app.upflow.io/organization/-/settings/crm).
2. Clear the **HubSpot Contacts** checkbox and save.
3. In the **Disable HubSpot contacts import?** confirmation, confirm.
Upflow deletes all HubSpot contacts from Upflow. If you have a billing or accounting integration, Upflow re-imports the contacts from that integration. The purge and re-import can take from a few minutes to a few hours, depending on your data volume.
## HubSpot custom fields
Importing HubSpot company custom properties is enabled automatically when you connect — it's always on and can't be turned off.
You stay in control of *which* properties come in: manage and select the company custom fields to import from your [**Custom fields** settings](https://app.upflow.io/organization/-/settings/custom-fields). When you add a HubSpot custom field to Upflow, the value can take a few minutes to appear.
### Supported custom field types
| HubSpot field type | Description | Upflow type |
| - | - | - |
| Single-line text | Short alphanumeric input (names, IDs) | Text |
| Multi-line text | Longer text like notes or descriptions | Text |
| Email | Email addresses | Text |
| Phone number | Phone numbers | Text |
| Dropdown select | Single choice from predefined options | Select |
| Radio select | Single choice, radio-button UI | Select |
| Multiple checkboxes | Multi-select from predefined options | Multi-select |
| Single checkbox | Binary true/false choice | Boolean |
| Number | Integers or decimals | Number |
| Date picker | Date selection | Date |
| Rollup | Aggregate from associated records (count, sum, average…) | Number |
| Calculation / equation | Formula using other properties | Depends on the formula's underlying type |
| Score | Auto-computed score | Text |
| URL | Web links | Text |
| Image / file | File attachments or image URLs | Not supported |
| User / reference | HubSpot users or linked CRM objects | Not supported |
If you don't see an imported value after a few hours, contact [our support team](/en-us/essentials/get-started/contact-our-support-team) with the field details (type), a couple of customer examples, and a screenshot from HubSpot.
# Import payments into Upflow
Source: https://docs.upflow.io/en-us/integrations/legacy-invoice-pipeline/import-payments-into-upflow
Import payments into Upflow via CSV when using a full API integration, with the required file format and reconciliation rules for outstanding invoices.
**Important** before moving to this article content. This article is specific to organizations using a full API integration. If you use one of our native integrations (i.e., NetSuite, QuickBooks, Chargebee, etc.) this feature will not be available as only transactions synced from your accounting tool can be displayed in Upflow.
You can import payments, either already reconciled to outstanding invoices or not, by clicking on the "**Import payments**" button on the top right corner of your Payments Tab.
# Import method
Imported file should be in the following format: csv.
Please find below the available fields:
* **paymentReference (mandatory)** : A unique payment reference that should be used if a payment is imported again. This is particularly useful in case of partial payments.
* **paymentDate (mandatory)** : The date should be in the following format: YYYY-MM-DD ( [ISO 8601](https://www.iso.org/fr/iso-8601-date-and-time-format.html) format)
* **amount (mandatory)**
* **currency (mandatory)** : Currency should be in ISO 4217 format (example: "USD")
* **invoiceReference**
* **paymentMethod** : Should be selected from the following available inputs: WIRE\_TRANSFER, CARD, DIRECT\_DEBIT, CHECK, CASH
# Importing raw payments (non reconciled) into Upflow
If you wish to import unlinked payments in order to perform reconciliation within Upflow (manually), you can simply leave **invoiceReference** field empty.
If a payment is linked to several invoices, you need to split this same payment into different lines with the right allocation while keeping the same **paymentReference.**
*For example, you have received a wire transfer #1 that pays for invoice #2 (100€) and invoice #3 (200€), the imported file should be filled as follows:*
# Templates
[Template CSV](https://storage.googleapis.com/assets.upflow.io/payments-example.csv)
## Examples of CSV limitations:
* The amount imported needs to be exact, if the amount imported is the invoice amount = nothing will happen
* Credit note management: if you import credit notes payments and also the credit note PDF, you will end up with a duplicate.
* Payment ID: these need to be unique.
* Partial payments: If you import a first payment of \$50 on a \$100 invoice, how will you import the second payment? It won’t work if you import again \$100.
* You might spend some time to prepare the expected payment file to import
*
# Add an Upflow payment link to NetSuite invoice PDFs
Source: https://docs.upflow.io/en-us/integrations/netsuite/add-payment-link-to-invoice-pdf
Show a Pay via Upflow button on the invoice PDFs NetSuite generates, using the customer portal URL exported from Upflow and an Advanced PDF/HTML template.
You can add a **Pay via Upflow** button to the invoice PDFs that NetSuite prints and emails. Your customers click it to open their Upflow customer portal and pay online.
## How it works
1. Upflow exports each customer's portal URL to a custom field on the NetSuite customer record.
2. A transaction body field copies that URL onto every new invoice for the customer.
3. Your invoice's Advanced PDF/HTML template shows the URL as a button, but only when the field has a value.
## Before you start
* NetSuite must be [connected to Upflow](/en-us/integrations/netsuite/connect).
* You need a NetSuite role with permission to create custom fields and edit transaction forms and Advanced PDF/HTML templates.
* Your invoice form must use **Advanced** printing, not **Basic**.
## Step 1: Create the customer field
1. In NetSuite, go to **Customization** → **Lists, Records, & Fields** → **Entity Fields** and click **New**.
2. Enter a **Label** that's easy to find later, such as `Upflow portal`.
3. Set **Type** to **Text Area**. Portal URLs are long, and a free-form text field can cut them off.
4. On the **Applies To** subtab, check **Customer**.
5. Click **Save**.
## Step 2: Export the portal URL from Upflow
1. In Upflow, go to [**Settings** → **Integrations**](https://app.upflow.io/organization/-/settings/integrations) and scroll to **Export to NetSuite**.
2. Turn on the **Export to NetSuite** toggle if it isn't on already.
3. Add a row that maps the **Customer portal URL** Upflow field to the NetSuite field you created in step 1.
4. Click **Save**.
Upflow now writes each customer's portal URL to that field. For more details, see [Export Upflow data to NetSuite](/en-us/integrations/netsuite/export-data).
## Step 3: Create the transaction body field
This field copies the portal URL from the customer onto each invoice, so the PDF template can read it.
1. Go to **Customization** → **Lists, Records, & Fields** → **Transaction Body Fields** and click **New**.
2. Enter a **Label**, such as `Upflow portal display`.
3. Set **Type** to **Text Area**. It must match the type of the customer field.
4. On the **Applies To** subtab, check **Sale** and **Print on standard forms**.
5. On the **Sourcing & Filtering** subtab:
* Set **Source List** to **Entity**.
* Set **Source From** to the customer field from step 1. Type `upflow` in the search box to find it quickly.
6. Click **Save**.
7. In the **Transaction Body Fields** list, find your new field and note its **ID**, for example `custbody10`. You need it in step 5.
## Step 4: Show the field on your invoice form
1. Go to **Customization** → **Forms** → **Transaction Forms** and click **Edit** next to the form your invoices use.
2. Note the **Print Template** and **Email Template** values. You'll edit these templates in the next step.
3. Open the **Screen Fields** subtab, then the **Custom** subtab.
4. Find the transaction body field from step 3 and check **Show**.
5. Click **Save**.
## Step 5: Add the button to your PDF template
1. Go to **Customization** → **Forms** → **Advanced PDF/HTML Templates**.
2. Click **Edit** next to the template your invoice form uses. If the print and email templates are different, repeat these steps for both.
3. Turn on **Source Code**.
4. Paste this snippet where you want the button to appear, for example just after the totals table. Replace `custbody10` with your field ID from step 3.
```html theme={null}
<#if record.custbody10?has_content>
#if>
```
The `<#if ... ?has_content>` check hides the button when the invoice has no portal URL. Without it, customers could see a button that doesn't work.
If you prefer a plain text link, use this instead:
```html theme={null}
<#if record.custbody10?has_content>
Pay this invoice online
#if>
```
5. Click **Save**.
## Step 6: Test with a new invoice
The portal URL is copied onto an invoice when the invoice is created. Invoices that already exist, including ones you've already sent, don't get the link.
1. Create a new invoice for a customer whose portal URL has been exported from Upflow.
2. Make sure the invoice uses the form you edited in step 4.
3. Click **Print**. The PDF now shows the **Pay via Upflow** button, and clicking it opens that customer's Upflow portal.
## Good to know
* If the button doesn't appear, check that the customer record has a value in the customer field from step 1. Then check that the invoice was created after you finished the setup.
* The field ID in the template must match your transaction body field exactly, for example `record.custbody10`.
# Allowance for bad debt
Source: https://docs.upflow.io/en-us/integrations/netsuite/allowance-for-bad-debt
How NetSuite allowance for bad debt is handled in Upflow so journal entries are recorded accurately without affecting customer balances under collection.
[The allowance for bad debts](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/bridgehead_4279824892.html) is the amount expected to be uncollectible, but that still has the possibility of being collected. This means these amounts must be recorded for accounting purposes, but they should not affect customer balances because we still want to collect them.
These amounts are recorded with journal entries like the following one:
| Account | Debit | Credit |
| - | - | - |
| Bad debt expense | \$15,000 | |
| Allowance for doubtful accounts | | \$15,000 |
| | | |
If the **Allowance for doubtful accounts** line is linked to a customer and the account is **Accounts Receivable** , it will impact the customer balance in NetSuite. As such, we import them as payments in Upflow, and they are visible to the customers on their portal.
NetSuite offers several solutions, so it is no longer a problem:
* Change the type of **Allowance for doubtful accounts** to **Other Current Assets** instead of **Account Receivables** (only lines on Account Receivables accounts affect customer balances).
* Do not link the **Allowance for doubtful accounts** lines to a customer.
* Link **Allowance for doubtful accounts** lines to a fake customer, only used to record bad debt.
This way, you will still be able to track the bad debt while maintaining your ability to collect on it.
# NetSuite - Common error messages and solutions
Source: https://docs.upflow.io/en-us/integrations/netsuite/common-errors
Reference of frequent NetSuite integration errors in Upflow with concrete fixes, covering concurrency limits, permissions, and sync issues you may hit.
#### In this article, you will find the most common error message you can come across when using our NetSuite integration.
To easily find the error you're looking for, we recommend using Command or Control + F on your keyboard, and keywords from your error.
## Concurrency limits
If you're facing concurrency limits with Upflow, we might need you to:
* Confirm how many are allocated to Upflow
* To increase them
#### Solution
| Step | Screenshot |
| - | - |
| In NetSuite, go to the **Manage Integrations** page |
|
| Click on **Upflow SuiteApp** |
|
| Send us the same screenshot from your instance |
|
| Then, click on **Edit** | |
| Add the concurrency limit value to the **Concurrency limit** field and click **Save** |
|
***
## You cannot edit this transaction.
#### This is likely because the accounting period is closed
#### Error messages
* You cannot edit this transaction. This is likely because the accounting period is closed, or you do not have sufficient permissions.
* You do not have permissions to edit this transaction.,Are you sure you want to enter an unapplied payment for this customer?
#### Explanation
This error occurs when Upflow can't update a transaction in NetSuite, often due to restrictions on modifying older transactions or closed accounting periods.
#### Potential solutions
1. **In NetSuite:** go to **Setup > Accounting > Manage Accounting Periods**.
2. **Edit Period:** Find and edit the accounting period for the transaction's date.
3. **Enable Non-G/L Changes:** Check the "Allow Non-G/L Changes" box within the period settings.
***
## Payment/Payout sync issue
### Unsynced payout
If a payout hasn't been synced to NetSuite yet, the first step is to try to Export it back to NetSuite.
From your Payouts list view, click the payout's three dots, then Export back to NetSuite:
It will then be either successful (nothing else to do), or fail.
### Payout sync error/failure
If a payout is flagged as unsynced or shows an error, hover over the Error message (on the payout or related transactions(s) for more information, and if the related message isn't present in this article, contact our Support team for more insights.
### Payment export error
You can identify payment export errors from your Payments list view, by filtering on "NetSuite status contains Error". Then hover over the Error status to know more, or add the column "NetSuite message" to display the error reason.
Once you've fixed the cause in NetSuite or Upflow, head back to the payments list, and click "Export back to NetSuite". The status should turn from Error to Succeeded.
If it fails again, or displays a default error message such as "We couldn't export this payment to NetSuite. Please contact [support@upflow.io](mailto:support@upflow.io)." or "Synchronization failed. Please contact [support@upflow.io](mailto:support@upflow.io)", then please contact us with as much details as possible from the button at the top right.
***
## Unable to set the payment method
#### Error messages
* Unable to set the payment method. Please remove this optional setting in Upflow or change your NetSuite settings.
* You do not have permission to set a value for element paymentmethod due to one of the following reasons: 1) The field is read-only; 2) An associated feature is disabled; 3) The field is available either when a record is created or updated, but not in both cases.
#### Explanation
This error occurs when the element payment method is required when creating or editing a transaction in NetSuite (e.g. payment or refund). This is often related to global settings or custom forms.
It can also occur when the payment carries an Upflow payment method that isn't mapped to a NetSuite one, leaving the field empty on a form that requires it — see [Payment method mapping](/en-us/integrations/netsuite/payment-method-mapping) to complete your mapping.
#### Solutions
Option 1) Remove the payment method from the Upflow configuration: `/settings/payment-gateway`
Option 2) Edit the preferred form in NetSuite to show the payment method
* Find the Preferred Form set for your users or for the Upflow basic role
* Edit the preferred form such that payment methods are `shown`
* Navigate to screen Fields > Payment Method > Show ✔️
***
## Application failed due to insufficient invoice balance
#### Error messages
* Application failed due to insufficient invoice balance. Adjust the invoice in NetSuite or check for duplicate payment syncs.
* Unable to find a matching line for sublist apply with key: \[doc,line] and value: \[1634092,null].
#### Explanation
This error message indicates a problem with applying a transaction in NetSuite due to a discrepancy in the amounts.
#### Solution
The invoice you are attempting to apply the payment to has an insufficient "Amount Remaining." The invoice's remaining balance must be equal to or greater than the payment amount. The error \[ID] such as "4629556" corresponds to the internal ID of the affected invoice in NetSuite. To fix this, adjust the invoice in NetSuite to ensure its "Amount Remaining" is sufficient to cover the payment.
⚠️ Note that this issue is often caused by duplicate payment applications, for example, in the presence of both Upflow and SuiteSync data synchronization. In this case, you will need to delete or reverse the duplicates
***
## Required fields missing in NetSuite: "Department, Class, Location".
This error occurs if "Department, Class, Location" are set as mandatory classifications in NetSuite.
#### Solution
Ensure that Departments are not a mandatory classification in NetSuite:
1. In NetSuite, go to Setup > Accounting > **Accounting Preferences**
2. Under Classifications, disable **Make Departments Mandatory**
***
## Required fields missing in NetSuite: Refund method. Please remove mandatory settings.
This error occurs if the refund form used by the integration user/role has mandatory fields in NetSuite that the Upflow integration doesn't support.
#### Solution
Ensure the "preferred forms" used by the "Upflow Basic Role" don't require a mandatory refund method:
1. In NetSuite, go to Customization > Forms > Transaction Forms.
2. Create a custom refund form by clicking "Customize" next to NetSuite's "Standard Customer Refund" form.
3. Give the custom form a name, and make sure it is assigned as "preferred" for the "Upflow Basic Role" in the "Roles" tab:
Then, in the Screen Fields > Refund Method tab, make sure "Refund Method" is not mandatory:
Save the custom form, and re-sync the refund manually from Upflow using the manual "Export back to NetSuite" functionality:
which may take a few seconds to display when you refresh your page.
***
## Record has been locked by a user-defined workflow
#### Explanation
The root cause is a "lock" on such records in your NetSuite instance, somewhere inside a workflow.
#### Solution
The fix is very quick & easy with the following steps:
1. Go to your Lock Record workflow action and click on the condition button.
2. Set the fields below:
* Field: User Role
* Compare Type: None Of
* Selection: Upflow Basic Role
3. Save. The workflow action will not execute anymore when the User Role viewing the record is an Upflow Basic Role.
4. Once this is done, [contact our Support team](https://support.upflow.io/hc/en-us/requests/new) so we can run a quick check on your data sync.
***
## You cannot make changes to this period without the Allow Non-G/L Changes permission
If you see the following error on a recent payout or transaction, you must enable the "Allow Non-G/L Changes" option in NetSuite for your payment to be re-exported successfully.
Once this is done, head back to Upflow and export the transactions back to NetSuite:
***
## Error while accessing a resource (...)
***Error while accessing a resource. You have attempted an invalid sublist or line item operation. You are either trying to access a field on a non-existent line or you are trying to add or remove lines from a static sublist.***
#### Explanation
This is most likely due to one (or more) payment/refund of the payout being already deposited and preventing the deposit from being created. This is usually because the GL account used is not UNDEPOSITED FUNDS.
#### Solution
1. Check NetSuite records to see if a payment/refund is posted on a Bank GL account or on undeposited funds.
2. Manually change the GL account of the payment/refund so that it is undeposited in NetSuite
3. Retry the payment export or delete it if it was manually created in NetSuite in the meantime.
Any questions, feedback, or error messages that are not listed here? Please [submit a Support request](https://support.upflow.io/hc/en-us/requests/new).
# Connect my NetSuite account to Upflow - first synchronization
Source: https://docs.upflow.io/en-us/integrations/netsuite/connect
Step-by-step guide to connecting NetSuite to Upflow: required permissions, role setup, integration token, and what gets synced from day one.
Let's take 10 minutes to connect your NetSuite instance to Upflow. As soon as your financial objects (invoices, customers, contacts...) are synced with your organization, you will be able to initiate your cash collection!
##### Before kicking off the configuration of the integration, please confirm you have:
* admin rights on NetSuite
* your user profile is English US
* created an Organization on Upflow
Note: Upflow only supports NetSuite OneWorld instances.
# Ensure my NetSuite setup is compliant
Before connecting NetSuite to Upflow, a few features need to be enabled in your NetSuite account. You can follow the steps below or use the interactive guide.
Start by accessing the [**Setup**](https://system.netsuite.com/app/setup/features.nl?whence=) page of your NetSuite configuration panel:
...and click on SuiteCloud (in the features menu):
Find and enable the following options by ticking their boxes.
| Section | Feature |
| - | - |
| SuiteScript | Client SuiteScript |
| | Server SuiteScript
|
| SuiteTalk (WebServices) | SOAP Webservices |
| | REST Webservices
|
| Manage authentication | Token-Based Authentication
|
Click on **Save** at the bottom of the page.
Still in the Setup, access the **Analytics** page from the top bar and enable:
| Section | Feature |
| - | - |
| SuiteAnalytics Workbook | SuiteAnalytics Workbook
|
Once again, don't forget to click on ***Save***!
***
💡 You can use shortcuts to speed up the search for a feature: Windows (ctrl+f) or macOS (cmd+f).
***
# Install Upflow SuiteApp
You are about to grant Upflow access to the information to be displayed across your organization and used for your cash collection (trigger your workflows, reach out to the right parties, etc).
...and click on SuiteCloud (in the features menu):
Search **Upflow** in your NetSuite [Suiteapp marketplace](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/book_1540487155.html) (or access [this link](https://system.netsuite.com/suiteapp/ui/marketplace.nl#/app?id=com.upflow.upflow)).
Click **Install** to launch the process, and follow the guidelines until its completion (confirmed by a green checkbox displayed on the right hand of your screen).
If you get an error when clicking Install, check the above features were enabled first in the Setup tab.
## Configure your integration
**Step 1 — Assign the Upflow Basic role**
[Assign the **Upflow Basic role**](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N897798.html#:~:text=To%20assign%20one%20or%20more%20roles%20to%20an%20employee%3A\&text=Click%20the%20Access%20subtab.,a%20role%20for%20this%20employee.) to the teammate of your choice.
* **This user must be Admin in NetSuite**
* **Their** [**language settings**](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1543591052.html#To-enable-multiple-languages%3A) **must be set to English US on NetSuite. Otherwise, sync issues may occur as a result.**
We recommend using an Admin generic account dedicated to integrations or your Finance process, to avoid disruption with the sync if the related user leaves the company, for example.
**Step 2 — Create an Access Token**
Access [**this page**](https://system.netsuite.com/app/setup/accesstoken.nl) and click on **New Access Token** before picking **Upflow SuiteApp**. Fill in the following parameters:
* **Application name**: Pick **Upflow SuiteApp**
* **User**: Select the user you just assigned Upflow Basic Role.
* **Role**: Upflow Basic Role (this option will not be available before you pick the user).
* **Token name**: Write one that suits you.
**Step 3 — Save your credentials**
Click on ***Save*** to finalize the process and display your API key-related information (**Access token ID** and **Access token secret**). Write them down: you will be asked to provide them during your Upflow onboarding and once the page is closed or refreshed, they'll be lost.
# Almost there
Go back to your Upflow organization and select **NetSuite** as the tool you want to integrate it with. When requested, share your **NetSuite account ID**, before filling in the **Access Token ID** and **Access Token Secret** you generated earlier.
The **PDF Script ID** is a legacy from a former version of our integration and is now automatically taken care of by our app. You thus do not need to populate it anymore.
Time to move to setting the objects you want your team to access on Upflow!
# Include your subsidiaries
To make the most of the features available to you in Upflow, you should configure Upflow following the 1:1 rule, i.e. 1 Subsidiary = 1 Organization. This means that if you have 3 subsidiaries in NetSuite, you should create 3 Organizations in Upflow. We also recommend creating a consolidated parent organization in Upflow for reporting purposes.
Perform the same NetSuite setup for each organization in Upflow, selecting the corresponding subsidiary when presented with the page above. You will manage your workflows and actions across your separated Upflow organizations. Follow the steps outlined above to create multiple organizations.
To add a new organization follow the steps outlined [here](/en-us/upflow-configuration/organization-configuration/manage-multiple-organizations).
If you want to add or remove subsidiaries, submit a Support request at the top. You can learn more about NetSuite subsidiaries in this help article: [NetSuite Subsidiaries in Upflow](/en-us/integrations/netsuite/subsidiaries).
Click on **Continue,** and let us guide you through the end of the process.
Et voilà ! The sync is now launched and can take up to several hours. In the meantime, you can invite your teammates to join your organization or configure your first workflow!
# Upgrading your app
Follow the same steps as during your initial installation. The only difference lies in the Marketplace button, now named **Upgrade**.
# NetSuite Custom Fields
Source: https://docs.upflow.io/en-us/integrations/netsuite/custom-fields
Sync NetSuite custom fields into Upflow to power Smart Rules, list filtering, and analytics segmentation on customers, invoices, contacts, and payments.
Make sure to benefit from our latest SuiteApp version from your NetSuite SuiteApp Marketplace. There, search for and click Upflow, and click Upgrade if available.
Custom fields allow you to manage your Upflow account with enriched customer, invoice, contact, payment, and credit note data from NetSuite.
Custom fields allow for:
* Auto assignation to a workflow, account manager or payment method depending on the custom field value using [Smart Rules](/en-us/collection-and-collaboration/smart-rules/smart-rules) (for customer/invoice fields)
* Deeper filtering from list views
* Deeper segmentation on the analytics tab
## Creating custom fields in NetSuite
Upflow supports the import of custom fields from NetSuite for customers, invoices, contacts, payments, and credit notes/memos.
Learn how to create a custom field in NetSuite in the instructions outlined [here](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N2829580.html#procedure_N2829649).
### Custom fields requirements
**Customer level custom field** : For the custom field to apply to customers, the “customer” checkbox needs to be checked. Otherwise, it will be ignored by Upflow.
**Invoice level custom field** : For the custom field to apply to invoices and be available in Upflow, it must be within the “classification” section. The field must be created as a Transaction Body field and have no "subtab" under the Display section.
**Credit note level custom field:** Same as for invoices.
**Payment level custom field:** Transaction body fields, which apply to "Customer Payment".
**Contact level custom field:** For the custom field to apply to contacts and be available in Upflow, it must be created as an Entity Custom Fields applied to Contact, and have no "subtab" under the Display section.
## Supported custom field types
Native NetSuite fields or custom fields you have created in NetSuite can be imported into Upflow provided they are one of the supported field types. Supported NetSuite custom field types include the following:
* Checkbox
* Date
* Date/time
* Decimal number
* E-mail address
* Free-form text
* Integer number
* List record
* Long text
* Multiple select
* Percent
* Phone number
* Text area
If a custom field type is not supported (i.e., line item, hyperlinks), it will be ignored by Upflow and will not appear in the [selectable custom fields](https://app.upflow.io/organization/-/settings/custom-fields).
## Native custom fields
You can also import **native fields** from NetSuite in addition to the **custom fields** that have been defined. These fields are native in NetSuite, but they are still specific to NetSuite, so they are considered “custom” to Upflow.
These fields need to be enabled in Upflow in the custom fields settings to become visible, but don’t need to be created in NetSuite as they exist by default. Below you will find the lists of the native **customer level** , **invoice level** and **contact level** fields.
### List of supported native customer fields:
* External ID\*
* Category
* Status
* Entity number
* Entity ID
* Sales Rep
* Terms
* Primary Currency
* Receivables Account
* Taxable
* Partner
* Comments
* Alternate Email
\**Id present in the customer's URL:*
*![]()
*
### List of supported native invoice fields
* Amount Remaining
* Approval Status
* Email
* Exchange Rate
* Project
* Memo
* Customer Message
* Start Date (Advance Billing)
* Status
* Custom Form
* Created From
* PO/Check Number
* Opportunity
* Posting Period
### List of supported native contact fields
* [Contact role](https://system.netsuite.com/help/helpcenter/en_US/APIs/REST_API_Browser/record/v1/2024.1/index.html#tag-contactRole)
* [Contact category](https://system.netsuite.com/help/helpcenter/en_US/APIs/REST_API_Browser/record/v1/2024.1/index.html#/definitions/contact)
* Creation date
* Supervisor
* Assistant
## Importing custom fields in Upflow
Custom fields defined in NetSuite need to be enabled in Upflow settings to become visible in Upflow. You can do this in [**Settings** → **Custom fields**](https://app.upflow.io/organization/-/settings/custom-fields). Note that NetSuite provides the schema, so you can choose from a drop down selection.
Each field added here will become visible in the customer list view, on the customer details page and in collection tags.
Learn how to import custom fields in Upflow [here](/en-us/core-entities/others/import-and-create-custom-fields-into-upflow).
To send data the other way — from Upflow back onto the NetSuite customer record — see [Export Upflow data to NetSuite](/en-us/integrations/netsuite/export-data).
## Notes:
* Upflow does not allow the import of **customer custom fields** as contacts. If you have, for example, "Client billing email address" as a customer custom field in NetSuite, you will need to create a contact with that email address in NetSuite.
# NetSuite Customers & Contacts
Source: https://docs.upflow.io/en-us/integrations/netsuite/customers-and-contacts
How NetSuite customers and contacts sync to Upflow, including name resolution, country mapping, customer hierarchy, and contact role handling.
As part of the integration, Upflow imports your customers and contacts directly from NetSuite. This article outlines how this part of the integration functions with regard to your customer hierarchy, contacts and other important details.
The first thing to note is how your customer details from NetSuite are translated in Upflow.
* **Customer name:** If the NetSuite customer :
→ Is a **Company**, with a **company** name defined, we reflect the company name in Upflow
→ Is a person, the name reflected in Upflow is computed from the customer First + Last names
→ If none of the above, we use the entity id
* **Country:** Upflow uses the fields located in the Company Information page.
## Customer hierarchy
In NetSuite, the parent/child customer relationship allows for hierarchical organization of customers. This relationship is imported into Upflow with some exceptions.
If you would like to perform the collection at the parent level, only for the parent's invoices, we can disable the hierarchy synchronization. Please contact us at [support@upflow.io](mailto:support@upflow.io) to do so.
⚠️ Note: Upflow only **supports 2 levels of customer hierarchy** (i.e. parent-child). Any “grandchildren,” therefore, will appear as though they are directly linked to the top-level parent.
Here “Example parent company” has two children: “Example first child” and “Example second child”. “Example first child” itself has a child: “Example grandchild.”
The image below shows how this relationship is reflected in Upflow.
When looking at the customer details page in NetSuite, a field “Parent company” is present with a link to the direct parent:
Here is the equivalent in Upflow:
In Upflow the “group” is a link to the top-level parent customer.
**Note on balances:** In NetSuite, the balance shown on the customer does not include the balance of children by default, but **in Upflow it does. So the user should not expect to see the same balance in Upflow and NetSuite when the customer has children.** On the other hand, when looking at children or at customers without any children, the balances should match.
### Inactive Customers
If your customers are marked as Inactive in NetSuite, they will be excluded from the initial synchronization with Upflow. If a customer is marked Active later, they will then be synced into Upflow.
*If your NetSuite subsidiary was synced into Upflow before March 21st, 2025, and you have inactive customers in Upflow, you can then refer to the below section.*
## Excluding customers from Upflow - Initial sync
Customer exclusion means the customer itself and its meta-data (name, etc.) will be in Upflow (but invisible) but none of its associated data (invoices, transactions, etc.).
With Upflow, you can exclude customers natively as part of your NetSuite integration or directly from your [Upflow’s settings](https://app.upflow.io/organization/-/settings/integrations).
### Specific customers
To **exclude customers natively from your NetSuite sync** , Upflow filters them based on a specific value in the standard “category” field. Please [submit a support request](https://support.upflow.io/hc/en-us/requests/new) with a file listing all customers to exclude (Name/External ID/Upflow ID).
* This is only compatible with the standard [NetSuite customer category field](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N3201309.html).
* This method is ideal for large datasets (10,000+ customers).
* Using this exclusion method speeds up the **initial sync** , as excluded customers' data is never imported into Upflow.
* However, the **incremental sync** performance is not affected. The integration reads all changes to the NetSuite instance and then decides which information to discard, after it’s been pulled from NetSuite.
### Inactive customers
If your customers are marked as Inactive in NetSuite, they will be excluded from the initial synchronization with Upflow. If a customer is marked Active later, they will then be synced into Upflow.
*(1) If your NetSuite subsidiary was synced into Upflow before March 21st, 2025, and you have inactive customers in Upflow, you can then refer to the below section.*
*(2) If an active customer already synced into Upflow as active becomes inactive in NetSuite, they will be automatically excluded from Upflow.*
## Exclude customers - NetSuite synced to Upflow
If your NetSuite subsidiary is already synced to Upflow, you have three options to exclude customers:
1. From your Upflow settings > Integrations, where individual customers can be selected (max 25).
2. Using [smart rules](/en-us/collection-and-collaboration/smart-rules/smart-rules) and the "Exclude from Upflow" action type.
3. Prepare a CSV file, containing the customers names + external IDs + Upflow IDs. Share this file with our Support [through this form](https://support.upflow.io/hc/en-us/requests/new).
⚠️ Note: Once you have excluded a customer, you cannot re-include them. This action is permanent.\*
You can learn more about excluding customers directly in Upflow following the initial sync [here](/en-us/core-entities/customers/exclude-customers).
## Customer contacts
Upflow imports the following information from NetSuite for customer contacts:
* the “email” field of the customer
* the contacts declared in the “Relationships” tab of the customer when their company is the same as the customer
⚠️ Note: If the company field is not filled for a contact, they will not be imported by Upflow.
### Main contact
The **main contact** is set for contacts with the NetSuite role “**Primary Contact** ,” or by using the email field of the customer otherwise.
In the event that there are multiple “primary contacts” in NetSuite, Upflow will pick one contact to be the main one based on the order in which the contacts are imported.
## Notes:
* Upflow excludes **inter-company customers** from the import from NetSuite when they are defined as those with **representingSubsidiary** value.
* Upflow can import **customer custom fields** from NetSuite. If a field holds an email address — for example "Client billing email address" — you can use the field itself as an email recipient, without creating a contact for it (learn more: [Send emails to a custom field address](/en-us/core-entities/contacts/custom-field-email-recipients)).
* If you integrate with **Salesforce** as well as NetSuite, the Salesforce contacts and account owners will override those from NetSuite.
# Disconnect NetSuite from Upflow
Source: https://docs.upflow.io/en-us/integrations/netsuite/disconnect
Stop syncing between NetSuite and Upflow by revoking the Upflow access tokens from your NetSuite account.
To intentionally disconnect NetSuite from Upflow, revoke the Upflow access tokens in your NetSuite account. Once revoked, Upflow can no longer read from or write to NetSuite, and a red disconnection banner appears in each affected Upflow organization.
Use this page when you want to stop the sync on purpose (for example, migrating to a different NetSuite instance or offboarding the integration). If your integration was disconnected unexpectedly and you want to restore it, see [Reconnect NetSuite to Upflow](/en-us/integrations/netsuite/reconnect) instead.
## Before you disconnect
* You need NetSuite admin rights to revoke access tokens.
* Disconnecting stops all NetSuite ↔ Upflow syncing. Data already synced to Upflow stays in Upflow.
* If you sync the same NetSuite account into multiple Upflow organizations, revoking the tokens affects every organization that uses them.
## Revoke the Upflow access tokens in NetSuite
1. In NetSuite, open your **Access Tokens** list.
2. Search for the Upflow integration. If several Upflow entries appear, only the most recent one is in use; the older entries are no longer relevant.
3. Click **Edit** on the active Upflow token, then click **Revoke**.
## Confirm the disconnection in Upflow
After the token is revoked, each Upflow organization that used it shows a red disconnection banner:
The banner confirms Upflow is no longer syncing with NetSuite.
## Reconnect later
To resume syncing (same NetSuite account or a different one), generate new tokens and add them in Upflow by following [Reconnect NetSuite to Upflow](/en-us/integrations/netsuite/reconnect).
# Export Upflow data to NetSuite
Source: https://docs.upflow.io/en-us/integrations/netsuite/export-data
Write customer-level collection data from Upflow back to NetSuite customer records so your finance team sees the latest AR status without leaving NetSuite.
## How does it work?
Once NetSuite and Upflow are [connected](/en-us/integrations/netsuite/connect), you can export collection data from Upflow back to NetSuite. Your teams then see each customer's AR situation directly on the NetSuite customer record, without needing an Upflow account.
Only information stored at the **customer** level can be exported, and it is written to the matching NetSuite **customer** record. Values are refreshed every time the customer is updated in Upflow.
The export requires a NetSuite account whose **concurrent request limit is at least 2**. If your limit is lower, saving the configuration fails with an error.
## Set up the export
1. In NetSuite, create the customer entity field that will receive each Upflow value.
2. In Upflow, go to [**Settings** → **Integrations**](https://app.upflow.io/organization/-/settings/integrations) and scroll to the **Export to NetSuite** section.
3. Turn on the **Export to NetSuite** toggle.
4. On each row, choose the **Upflow field** you want to export, then the **NetSuite field** it should be written to.
5. Click **Add field** to map another field, or the bin icon to remove a mapping.
6. Click **Save**. The sync starts, and each mapped field is updated whenever the customer changes in Upflow.
## Customer fields available for export
| Field | Description | NetSuite field type |
| - | - | - |
| Outstanding amount | Total outstanding amount for the customer | Currency |
| Overdue amount | Total overdue amount for the customer | Currency |
| Overdue 1 - 30d | Overdue amount 1 to 30 days past due | Currency |
| Overdue 31 - 60d | Overdue amount 31 to 60 days past due | Currency |
| Overdue 61 - 90d | Overdue amount 61 to 90 days past due | Currency |
| Overdue > 90d | Overdue amount more than 90 days past due | Currency |
| Due amount | Total due amount for the customer | Currency |
| Overdue invoices | Number of overdue invoices | Integer number |
| Due invoices | Number of due invoices | Integer number |
| Average payment delay | Average payment delay in days | Integer number |
| Rating | Customer rating | Free-form text, Text area, Long text, Rich text |
| Collection status | Active or Paused | Free-form text, Text area, Long text, Rich text |
| Customer portal URL | Link to the customer portal | Free-form text, Text area, Long text, Rich text |
| Customer details URL | Link to the customer page in Upflow | Hyperlink |
| Saved payment method | Saved payment method type | Free-form text, Text area, Long text, Rich text |
| Saved payment method status | Last payment status of the saved payment method | Free-form text, Text area, Long text, Rich text |
| Pinned notes | The customer's pinned notes | Rich text |
Your **customer custom fields** are also available for export and appear in the same **Upflow field** dropdown, below the fields listed above.
The **Customer portal URL** is refreshed periodically so the link your team opens from NetSuite stays valid.
# NetSuite Invoices & Credit Memos
Source: https://docs.upflow.io/en-us/integrations/netsuite/invoices-and-credit-memos
Understand how open NetSuite invoices and credit memos sync to Upflow, which fields are imported, and how amounts and statuses stay aligned over time.
## Invoices
When an invoice is created in NetSuite, the same invoice will be available in Upflow if its status is open:
Upflow imports the following information directly from the NetSuite invoice:
* invoice number
* issue date (shown only in the invoice list view in Upflow)
* due date
* total
* PO # (Purchase Order) → loaded as the invoice title in Upflow
### Invoice custom fields
Upflow supports the import of **invoice level** custom fields from NetSuite. For the invoice custom field to apply to customers it must be within the “classification” section.
Learn how to create a custom field in NetSuite in the instructions outlined [here](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_N2829580.html#procedure_N2829649).
### Draft invoices
Upflow imports Draft invoices from NetSuite to allow collaboration in Upflow before the invoices are actually issued in NetSuite.
When you use the [Invoice Approval Workflow State](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4171578435.html#Invoice-Approval-Workflow-States) in NetSuite, invoices that are "pending approval" will be imported as Draft. Here is how to set up this [approval workflow](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4171556721.html#Setting-Up-the-Invoice-Approval-Workflow) in NetSuite.
If an invoice is "pending approval,” it will be synced in Upflow with a **Draft** status. Draft invoices will appear in the invoices list but will not impact the outstanding amount, collections, or analytics.
Once the invoice is "approved" in NetSuite and no longer "pending approval,” the status in Upflow will no longer be Draft but Due/Overdue. It will then be visible in your customer’s portal and taken into account in the organization's analytics and outstanding amounts.
## Attachments to invoices
Upflow can include **files attached to your NetSuite invoices** when your customers (or your team) download invoice documents from Upflow.
#### Enable the option
1. In Upflow, go to [Settings → Integrations](https://app.upflow.io/organization/-/settings/integrations)
2. Under **Attachments to invoices**, toggle **Add attachments to invoices**
#### What happens when enabled
* Upflow will retrieve the **invoice PDF** from NetSuite and **include the invoice’s attached files**.
* In the customer portal: the invoice PDF + attachments will be **combined into a single downloaded file** (so your customers receive everything at once).
* In email reminders: each PDF will be sent as individual files/attachments
#### What’s included
* Only files **actually attached to the invoice in NetSuite** are included.
* Stored documents under **custom fields** (instead of attaching them to the invoice record), can’t be synced.
### Good to know
* **Large files** or a high number of attachments may fail to download (NetSuite/API size limits).
* If attachments are missing, first confirm they are visible from the invoice in NetSuite (and not only available via a custom print button / external storage).
## Invoice and credit notes PDFs
Upflow will fetch the invoice or credit notes PDF from NetSuite every time you need it. As such, the PDFs will always be up to date, even after modifications in NetSuite.
## Credit Memos
Credit memos created in NetSuite will be synced into Upflow as "Credit notes", and visible:
* In your [Credit notes list view](https://app.upflow.io/organization/-/creditnotes)
* In the customer's page
* Linked to the corresponding invoice
As long as a credit memo is linked to the customer in NetSuite, applied partially, fully, or not at all to invoices, it will be reflected into Upflow.
If applied to another reference, payment, refund, journal entry, it should reflect as well in Upflow.
## Invoice Group
Upflow imports individual invoices from NetSuite, but does not sync the NetSuite Invoice Group object itself.
This means that in Upflow, you will see your customers' individual invoices, as they will in their portal, whether they're part of an invoice group or not.
It isn’t possible in Upflow to send only the grouped invoice and never the individual invoices using the Invoice Groups feature.
A solution could be to create a custom invoice-level (for invoice level collection) or customer-level (for customer level collection) field in NetSuite (e.g. `Invoice Group Flag` or `UF Group ID`) and add that custom invoice field into Upflow ([here](https://app.upflow.io/organization/-/settings/custom-fields)) to use it for filtering and/or workflow assignment.
# NetSuite - Payment late failure
Source: https://docs.upflow.io/en-us/integrations/netsuite/late-payment-failure
How Upflow handles asynchronous ACH and SEPA payment failures with NetSuite by creating offsetting refunds and clearly flagging both records in the memo.
When your customers pay with asynchronous payment methods (e.g., ACH / SEPA direct debit), it may take a few days for us to receive the payment confirmation. By default, we consider that the payment is successful, but in rare cases, it fails, and we will create a refund against it.
For both the payment and the refund, we will highlight in the memo that it's related to a failed payment.
Failed payment in Upflow
Failed payment in NetSuite
Refund linked to the failed payment in NetSuite
# Online payments sync for NetSuite
Source: https://docs.upflow.io/en-us/integrations/netsuite/online-payments-sync-for-netsuite
Automate import and reconciliation of Upflow online payments into NetSuite in real time, with full Autopay support for end-to-end collection automation.
When you [process online payments via Upflow](/en-us/payments/accept-online-payments/onboarding-and-setup), we can automatically import and reconcile them in real-time into your NetSuite instance so your accounting is always up-to-date. This functionality works in synergy with [Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay) for complete, end-to-end online payment collection automation 💯
👉 This functionality is available with *Upflow Payments*. Reach out to your customer success manager to see it in action!
# Functional overview
## Basic flow
Our online payments sync for NetSuite works in parallel of the underlying physical money flow (from your customer's bank account to yours) in 2 simple steps:
| **Step 1** | **Step 2** |
| - | - |
| You receive a payment from a customer via their portal for one or multiple invoices. It is immediately imported into NetSuite as a customer payment and linked to the corresponding sales invoice(s). | Payments collected are deposited in daily batches to your bank account. Successful deposits are immediately recorded into NetSuite alongside all known payments-related fees. |
## NetSuite GL accounts & analytics
To ensure money movements and associated operations are properly reflected in your NetSuite instance/accounting, you can configure which General Ledger accounts and header-level classifications should be used for each component [from your "Payment sync" section here](https://app.upflow.io/organization/-/settings/payment-gateway).
Where applicable, you also have the option to specify the corresponding **Department**, **Class** & **Location** to seamlessly integrate with your analytical accounting workflows in NetSuite.
(Optional) You can also create **a dedicated payment method in NetSuite** (e.g. "UPFLOW") to easily identify and track online payments received by your platform(s). *Otherwise, you'll need to at least ensure that the Refund Method field is set as optional in your Customer Refund preferred form.*
### Payments
GL account: Undeposited Funds. You cannot modify this.
Undeposited Funds is the NetSuite standard for representing money collected but not yet deposited to your bank account. It enables proper recording and reconciliation of deposits at the end of the chain with the standard Deposit object, as well as leverage other useful NetSuite built-in functionality and workflows like FX loss/gains accounting (more details below).
⬆️ *Customer payment record in NetSuite, applied to related invoice(s).*
⬆️ *Customer payment GL impacts, on the AR and Undeposited Funds accounts.*
### Deposits
GL accounts: specified by you. Must be an account of type "Bank".
Select the GL account corresponding to the bank account where you receive payouts from your Upflow payment account, which you set up through Stripe Express. You can add up to one bank account for each currency [if multi-currency is supported for your organization](/en-us/payments/process-online-payments/fx-and-multi-currency-settlement):
Successful deposits are imported and automatically reconciled to payments contained within and related other objects (more details below):
⬆️ *The successful deposit is posted to the specified GL account, and automatically reconciled against previously imported payments.*
⬆️ *Previously imported payments automatically transition from "undeposited" to "deposited".*
### Processing & surcharges
GL accounts: specified by you.
Select the GL account to record the payment processing fees charged by Upflow (typically, an expense account), and if applicable the one for the card fees you pass on to customers when they pay:
Processing ("gateway") fees GL account
Surcharges GL account
Both are posted and automatically reconciled with successful deposits, in different tabs:
| Processing fees recorded under the "Cash Back" tab | Impact of processing fees in the specified GL account register |
| - | - |
|
|
|
## Failed payments
Our integration records failed payments as a pair of a customer payment + a refund in NetSuite. This is to ensure consistent behavior across failures as some of them may be asynchronous, typically for unsuccessful direct debits.
# NetSuite - Payment method mapping
Source: https://docs.upflow.io/en-us/integrations/netsuite/payment-method-mapping
Map your Upflow payment methods to your NetSuite payment methods so every payment Upflow exports carries its payment method and check number, making payments from Upflow easy to trace in NetSuite.
When Upflow exports a payment to NetSuite, it also exports **how the payment was made** and, where relevant, **the check number** — so payments coming from Upflow are easy to trace and reconcile in NetSuite.
## What gets exported
Both fields are written to the **Payment Method** subtab of the **Customer Payment** record Upflow creates in NetSuite:
| Field in Upflow | Field in NetSuite | Details |
| - | - | - |
| Payment method | **Payment Method** | Exported using the mapping you define below. Left blank when the Upflow payment method isn't mapped. |
| Check number | **Check #** | Exported as-is whenever the payment carries one. No mapping needed. |
Your mapping covers every payment Upflow writes back — both the payments you collect through Upflow and the bank transactions you [apply to invoices in cash application](/en-us/cash-application/application-logic/apply-bank-transactions-to-invoices), where the payment method and check number captured on the transaction follow through to NetSuite.
## Map your payment methods
1. Go to your [**Settings > Integrations**](https://app.upflow.io/organization/-/settings/integrations) and open your NetSuite integration settings.
2. In the **Payment method mapping** section, each Upflow payment method is listed in the **Upflow** column: **Card**, **Bank transfer**, **Direct Debit**, **Cash**, **Check** and **Other**.
3. For each one, use the **NetSuite** dropdown to pick the payment method it should be exported as — for example, map Upflow's **Card** to your `VISA` payment method in NetSuite.
4. Save your mapping.
The dropdown lists the payment methods that exist in your own NetSuite account, so you can only map to methods NetSuite already accepts. Any row left on **Select a payment method** stays unmapped.
You don't have to map every payment method. Only map the ones you want to see on your NetSuite Customer Payments.
## What happens to unmapped payment methods
When an Upflow payment method has no NetSuite counterpart in your mapping — for example if you leave **Bank transfer** unmapped — the payment still exports normally, and the **Payment Method** field is simply left blank on the Customer Payment. This is the behavior you had before this mapping existed.
If your NetSuite setup makes the **Payment Method** field mandatory on Customer Payments, an unmapped method causes the export to fail. See [Unable to set the payment method](/en-us/integrations/netsuite/common-errors#unable-to-set-the-payment-method) for the fix.
## Where payment methods come from
The payment method Upflow exports is the one carried by the payment itself:
* **Bank feed** — imported automatically with the transaction when your bank provides it. See [Connect your bank account](/en-us/cash-application/bank-feed/connect-your-bank-account-for-automatic-transaction-import).
* **CSV import** — mapped from a column in your file. See [Import bank transactions via CSV](/en-us/cash-application/csv-import/upload-bank-transactions).
* **Online payments collected through Upflow** — set from the method your customer paid with.
# Reconnect NetSuite to Upflow
Source: https://docs.upflow.io/en-us/integrations/netsuite/reconnect
Restore your NetSuite sync after a disconnection from Upflow, with the steps to clear the red banner and resume syncing invoices, customers, and payments.
Your NetSuite instance was disconnect from Upflow, showing this red banner in Upflow:
Click *Reconnect* to be redirected to your Integrations section, which you'll need in a bit.
### Check your SuiteApp version
Head to your NetSuite Marketplace. Look for and click Upflow, to look if you need to upgrade. If you see the Upgrade button, please click it.
Otherwise, move to the next step.
### Generate new tokens and edit them in Upflow
1 - Check your Users list to see who has the "Upflow Basic Role" associated.
2 - Add this role to an **Admin user with English US language**. It can be yourself or, ideally, generic account dedicated to integrations or your Finance process.
3 - Head to *Access Tokens,* and click on "Add new":
* **Application name**: Pick **Upflow SuiteApp**.
* **User**: Select the user you just assigned the Upflow Basic Role.
* **Role**: Upflow Basic Role (this option will not be available before you pick the user).
* **Token name**: Write one that suits you.
4 - Click on Save to finalize the process and display your API key-related information (Access token ID and Access token secret). *Write them down as they will disappear once you close the access token page.*
5 - This step is to be done for each of your Upflow organizations:
* Go to your [Settings > Integrations section](https://app.upflow.io/organization/-/settings/integrations)
* Click on Edit next to Access tokens
* Add the token ID and secret and save
* Scroll down and Save at the bottom of the page
* The red banner should now be gone, which means the reconnection is done for this org.
* *If you have other organizations in Upflow from the same NetSuite account, you must update the tokens you've generated in each organization's settings.*
### The tokens don't work
When editing the tokens in your Upflow Settings, if you face an error message, such as "Error: the access tokens are invalid" - it might be due to the tokens configuration.
1. Never use tokens generated previously. ONLY tokens generated specifically for this update. Old tokens will be considered expired.
2. You might have selected a value that doesn't match the process. Ensure you've selected the exact values we recommend in Step 3 above.
If you have a doubt, please head to your Tokens list, and take the same screenshot as below:
This will help us assist you with the context we need.
### I can't find the Upflow "SuiteApp" in Application Name
When creating your new tokens, if you can't find the "Upflow **SuiteApp** " options:
1. Head to your SuiteApp marketplace. Search for and click Upflow.
2. Ensure you benefit from the latest version. If not, click Upgrade. Refresh.
3. Head back to Access Tokens > New
If you still can't find the option, head to your "Installed SuiteApp List":
Then identify the Upflow one, click on the green icon at the left, and "Uninstall":
Then head back to your SuiteApp marketplace. Search for and click Upflow.
And click Install!
Now, again, dead back to Access Tokens > New.
You should now see the Upflow SuiteApp application name.
Finish the tokens creation, as in steps 3, 4, and 5 at the top of this article.
If you have any questions, please submit a Support request at the top, or follow up with our Support team if you already have an ongoing ticket about this topic.
***
## Concurrency limits
If you're facing concurrency limits with Upflow, we might need you to:
* Confirm how many are allocated to Upflow
* To increase them
#### Solution
| Step | Screenshot |
| :- | :- |
| In NetSuite, go to the **Manage Integrations** page |
|
| Click on **Upflow SuiteApp** |
|
| Send us the same screenshot from your instance |
|
| Then, click on **Edit** | |
| Add the concurrency limit value to the **Concurrency limit** field and click **Save** |
|
# NetSuite - Upflow refund management
Source: https://docs.upflow.io/en-us/integrations/netsuite/refund-management
How Upflow exports refunds to NetSuite as Customer Refunds, including handling for payments with or without invoice allocation and partial refunds.
When you trigger a refund for a payment that Upflow initiated, we will export that refund to NetSuite. For a refund in Upflow, we generate a *Customer Refund* in NetSuite.
# Refund of a payment not applied to an invoice
When the original payment is not applied to an invoice, we will generate the refund and apply it directly to the payment.
NetSuite - Refund applied to the original payment
Upflow - Refund applied to the original payment
# Refund of a payment with invoice allocation
When the original payment is applied to an invoice, we will leave the payment applied to the invoice and generate a credit memo on which the refund will be applied.
If the payment impacts multiple invoices, we will generate multiple credit notes.
## Refund of a payment fully applied to an invoice
In the case of a refund for a payment that fully paid the invoice, we will generate a credit memo using the invoice line items.
Upflow - Original payment applied to several invoices
Upflow - Refund applied to several credit notes
NetSuite - Refund applied to several credit notes
NetSuite - Credit memo created from the invoice following the payment refund
## Refund of a payment partially paying an invoice
When a payment only partially covers an invoice, we don't know which line items of that invoice the refund corresponds to. As such, we ask you to select the appropriate line item in NetSuite that will be used to generate the credit memo.
Upflow - Integrations payment sync settings
Credit Memo generated by Upflow using the Partial invoice refund line item
# NetSuite Subsidiaries
Source: https://docs.upflow.io/en-us/integrations/netsuite/subsidiaries
How NetSuite subsidiaries are selected during integration setup with Upflow and how the chosen subsidiary scopes which customers and invoices get synced.
When you set up your NetSuite integration in Upflow, you will be prompted to select the subsidiary that you would like to sync. Upflow will only load the data (customers, invoices, etc.) related to the selected subsidiary.
To make the most of the features available to you in Upflow, you should configure Upflow following the 1:1 rule, i.e. 1 Subsidiary = 1 Organization. This means that if you have 3 subsidiaries in NetSuite, you should create 3 Organizations in Upflow. We also recommend creating a parent organization in Upflow for reporting purposes.
Perform the same NetSuite setup for each organization in Upflow, selecting the corresponding subsidiary when presented with the page above. You will manage your workflows and actions across your separated Upflow organizations.
Follow the steps outlined [here](/en-us/upflow-configuration/organization-configuration/manage-multiple-organizations) to create multiple organizations. You can use the same token ID and secret for each organization so long as each subsidiary is under the same NetSuite account (and that they were generated for this connection - Never use previously generated tokens).
## Multi-subsidiary customers
If you use NetSuite’s “[multi-subsidiary customer feature](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1509460991.html),” allowing a single customer to be linked to multiple subsidiaries concurrently, your customers and invoices will be reflected in Upflow as follows:
* A customer is imported in Upflow if it is linked to at least one of the NetSuite subsidiaries selected during the initial integration setup.
* If a customer is linked to both selected and unselected subsidiaries, Upflow imports only the customer invoices that are linked to the selected subsidiaries. As a result, only a subset of the invoices linked to this customer in NetSuite are imported.
* The customer balance shown in Upflow reflects the money they owe you on the selected subsidiaries. It does not include money owed to unselected subsidiaries.
Any questions? Please submit a Support request at the top of this article.
# Pennylane & Upflow
Source: https://docs.upflow.io/en-us/integrations/pennylane/overview
Connect Pennylane to Upflow with a one-click OAuth flow, then keep customer, invoice, and payment data fresh through incremental syncs every ten minutes.
## Initial Sync
Once you've created your Upflow account, named it, and selected your timezone, click **Connect** under Pennylane, and authorize access to your Pennylane account. Your data will then begin syncing.
After the initial synchronization, Upflow performs incremental syncs every 10 minutes. These syncs only process supported data creations or updates to ensure data accuracy and eliminate discrepancies.
## What data is synced to Upflow
| Pennylane | Upflow |
| - | - |
| Customers | ✅ |
| Contacts | ✅ |
| Invoices | ✅ |
| Credit notes | ✅ |
| Unfinalized and cancelled invoices | ✅ |
| Draft invoices | ❌ |
| Archived invoices | ❌ |
| Payments / Refunds | See [Payments](#payments) section below |
| Journal Entries | ❌ |
## Clients
If the customer is a **Company**, the name displayed in Upflow will be based on the **Company** field under **Customer Contact Details**.
If the customer is an **Individual**, the name displayed in Upflow will be based on the **First Name** and **Last Name** fields in that order.
#### Good to know
* We import the billing postal address to Upflow, which can be used for sending postal mail.
### Native fields synced
Certain native fields are synced to Upflow as custom fields.
| Pennylane | Type in Upflow |
| - | - |
| Customer Type | Select |
| Plan Item | Select (Plan ID) |
| Notes | Text |
| Reference | Text |
| Payment conditions | Text |
| Recipient | Text |
| SIREN | Text |
## Contacts
We sync contacts found in the "Email address (optional)" field.
When there are multiple contacts in this field:
* The first one will be considered the primary contact in Upflow
* Here, [john.doe@acme.com](mailto:john.doe@acme.com)
* The following ones as additional contacts
For an individual customer, the customer's first and last names will be added by default to the primary contact in Upflow.
Learn more about contact management: [Your Upflow contacts](/en-us/core-entities/contacts/your-upflow-contacts)
We do not import contacts from the following customer section:
## Invoices
The following statues are reflected in Upflow:
| Pennylane | Upflow |
| - | - |
| Upcoming | Due |
| Late | Overdue |
| Paid | Paid |
The reference, issue and due dates, total and outstanding amounts in Upflow correspond to Pennylane.
👉 If the invoice is cancelled by a credit note in Pennylane, the credit note will be imported to Upflow and linked to the invoice. The invoice will be marked as Paid.
👉 If the invoice is not finalized and cancelled, it is synced to Upflow as "Paid".
⚠️ Reconciliation must be done in the **Management** section of Pennylane, as our integration is **not** connected to the **Accounting** section API. Any data imported, created, or updated in the Accounting section that is not reflected in the Management section cannot be synced to Upflow.
## Credit notes
### Credit notes imported to Upflow
**Note:** Credit notes must be visible in the "Management" section of Pennylane to be imported.
Credit notes from Pennylane are imported under the following conditions:
* Credit notes with status: credit\_note, Overdue, Upcoming, Cancelled, Partially Cancelled, or Partially Cancelled Draft
* Credit notes marked as paid with "Paid" status AND having linked invoices
* Credit notes marked as paid with "Cancelled" status AND having no linked invoices
### Credit notes not imported to Upflow
* Archived, Draft, or Incomplete status → These don't impact customer balance
* Marked as paid with "Cancelled" status AND having linked invoices → These are manually created accounting entries, not real credit notes. Importing them would cause incorrect balances and duplicates
* Marked as paid and unreconciled (without linked invoices) → These are not properly reconciled and would create incorrect unapplied amounts in Upflow.
## Payments
Currently, our integration does not allow importing payments or refunds from Pennylane.
As a workaround, Upflow identifies paid invoices by checking when they were marked as fully paid in Pennylane, and creates a "fix" transaction to correct the invoice and customer balance. The date of this transaction is based on the invoice issue date.
## Online payment methods
For legal reasons, organizations connected to Pennylane cannot enable online payment methods in Upflow. This includes [Upflow Payments](/en-us/payments/accept-online-payments/introduction-upflow-payments) and Stripe payment methods such as card and direct debit payments.
In your Settings > Payment methods section, online payment methods are marked as **Incompatible with Pennylane** and cannot be activated. The same restriction applies to the payment section of your customers' detail pages.
Offline payment methods, such as bank transfer and check, remain available.
If your organization already had a Stripe integration before connecting Pennylane, your existing online payment methods keep working.
# Connect Upflow to QuickBooks Online
Source: https://docs.upflow.io/en-us/integrations/quickbooks/connect
Connect QuickBooks Online to Upflow via OAuth: admin requirements, permissions granted, and what happens during the first sync of your accounting data.
## Before you start
You'll need **admin access** to your QuickBooks Online company. The connection is set up over OAuth from your Upflow account, and only an admin can grant Upflow the required permissions.
## Connect QuickBooks Online to Upflow
1. **Choose QuickBooks as your data source.** During Upflow onboarding, on the *Now, let's sync your data* step, click **Connect to QuickBooks**.
2. **Authorize Upflow on Intuit.** You'll be redirected to Intuit's OAuth flow. Sign in to QuickBooks if needed, then **select the company** you want Upflow to sync with and click **Next**. After confirming the permissions, you'll be sent back to Upflow.
Your invoices, customers, and payments will start syncing within a few minutes. See the [integration overview](/en-us/integrations/quickbooks/overview) for what gets imported and how the sync behaves.
If you ever need to reconnect QuickBooks (for example after revoking access in Intuit), follow the [reconnect steps in the integration overview](/en-us/integrations/quickbooks/overview#quickbooks-and-upflow-are-disconnected).
# Upflow-QuickBooks Online integration overview
Source: https://docs.upflow.io/en-us/integrations/quickbooks/overview
Connect QuickBooks Online to Upflow with OAuth. Sync customers, invoices, and payments in real-time.
Upflow integrates natively with QuickBooks Online to allow for effective collections process in conjunction with your QuickBooks Online instance. This document describes how to set up the integration and how it works in detail.
## Overview
The QuickBooks Online integration ships with the following capabilities:
* 1-way synchronization with QuickBooks Online with the exception of payment write-back
* New data from QuickBooks Online is synced once every 5 mins
* Supports merchant self-onboarding
## Entity Mapping
## Setup
### Requirements
Admin access: You should have admin rights in QuickBooks Online to set up the integration with Upflow.
### Connect QuickBooks Online to Upflow
Upflow relies on OAuth allowing you to seamlessly connect with your QuickBooks Online account. Refer to [this guide](https://help.upflow.io/en/articles/3650686-how-to-connect-upflow-to-quickbooks) for a step-by-step guide on how to connect your QuickBooks Online instance to Upflow.
## Features
### Contacts
QuickBooks Online doesn’t have a concept of contacts for customer objects. Though, QuickBooks Online supports adding multiple emails as comma-separated values in the “Email” field.
These comma-separated emails will be imported as individual contacts in Upflow.
If an update is made on the email field in QuickBooks, it'll be reflected in Upflow within a few minutes.
**Main Contact:** While importing emails as individual contacts, the first email in the list will be considered as the main contact. And the firstName and lastName will be borrowed from the customer’s details.
**Phone number:** No specific formatting is applied in Upflow when importing phone numbers from QuickBooks. We apply what we receive from the API.
If you wish to use our text messages or calls features in Upflow, you must ensure the phone format in QuickBooks is the following:
| **QuickBooks format** | **Upflow** |
| - | - |
| (650) 555-3311 |
|
| +650 555 3311 |
|
### Subsidiaries/Hierarchy
If you use a customer hierarchy in QuickBooks, it'll be reflected in Upflow as well.
In Upflow, parent-child relationships exist at the customer level, and any grandchild is directly linked to the main parent.
If you wish to benefit from a customer hierarchy in Upflow, but don't have one configured in QuickBooks yet, you must set it up from QuickBooks, for it to be reflected in Upflow.
**To create a customer hierarchy in QuickBooks,**
1. Access your Customers list.
2. Click **New Customer** or select an existing customer to edit.
3. When adding or editing, check the box labeled **Is sub-customer**.
4. From the dropdown, select the parent customer under which this sub-customer should be grouped.
5. Save your customer.
You can repeat this process to build multiple levels of sub-customers, creating a clear parent-child relationship for better organization and reporting.
### Mapping Customer fields
Upflow doesn't support import of customer level custom fields from QuickBooks Online.
A subset of QuickBooks Online’s native fields are imported into Upflow as custom fields. Actual customer custom fields are not yet supported in this integration.
We do however support custom fields for invoices, but not native fields.
Below are some of the examples of native fields and custom fields imported from QuickBooks Online into Upflow.
| **Native fields in QuickBooks Online** | | **Reflected as Custom fields in Upflow** | **Field type in Upflow** |
| - | - | - | - |
| CompanyName | ➡️ | Company Name | Text |
| DisplayName | ➡️ | Display Name | Text |
| GivenName | ➡️ | Given Name | Text |
| CustomerId | ➡️ | Customer ID | Text |
| ResaleNum | ➡️ | Resale number | Text |
| DefaultTaxCodeRef | ➡️ | Default Tax Code | Select |
| PreferredDeliveryMethod | ➡️ | Preferred delivery method | Select |
| SalesTermRef | ➡️ | Sales term | Select |
| Taxable | ➡️ | Taxable | Boolean (True/False) |
| BillWithParent | ➡️ | Billed with parent | Boolean (True/False) |
| CurrencyRef | ➡️ | Currency | Select |
| Notes | ➡️ | Notes | Text |
| PaymentMethodRef | ➡️ | Payment method | Select |
| ClientType | ➡️ | Client Type | |
Most of the above fields, if updatable, will be found at the customer level in QuickBooks. Click Edit, and update what's needed, for the values to be reflected in Upflow.
In QuickBooks Online, those three fields are different “names” for different purposes:
| **CompanyName** | **GivenName** | **DisplayName** |
| :- | :- | :- |
| - The legal or business name of the customer.
- Typically used for businesses (for example, “Acme Ltd”).
| - The customer’s *first name* (for an individual contact).
- Used when the customer is a person (for example, “Amy”).
- Usually paired with **FamilyName** (last name)
| - The name QuickBooks uses to identify the customer in the UI and in many lists.
- Often what users consider “the customer name” in QuickBooks.
- Can be a company name, a person’s full name, or a custom label (for example, “Acme (France) – Finance”, or “Amy LauterBach”).
|
The **CustomerId** reflects the customer QuickBooks IDs, and can't be personalized/repurposed.
Under the ***Payments*** section, you'll find:
The **Primary payment method** will be reflected in Upflow as "Payment method".
**Currency:** Only visible if multi-currency is enabled: ⚙️ Settings → Account and settings → Advanced → Currency.
### Mapping Invoices custom fields
Upflow can sync **invoice custom fields** from QuickBooks Online so you can use them for segmentation and reporting in Upflow.
**Important limitation:** QuickBooks only makes **up to 3 invoice custom fields** available to third‑party apps via its API, and they must be **text (string) fields**. Because of this, Upflow can only import those available fields, and doesn't support other field types, such as: Dates, dropdown/list, etc.
#### How to make sure the right custom fields show up in Upflow
In QuickBooks Online:
* Make the custom fields you want to sync **text fields** (not date, number, or list types).
* Move the **3 custom fields you need the most** to the **top of your custom field list** (QuickBooks only exposes the first ones).
* Ensure **inactive custom fields** aren’t taking priority in that top list (QuickBooks may still count them).
### Journal Entry
In Upflow, we map journal entries in QuickBooks Online with different payments types- either as a debit or as a credit, i.e. they will be imported as payments or refunds depending on their QuickBooks Online type.
Each Journal entry line item belongs to a specific customer.
### Deposits
Similar to Journal Entry, Upflow supports Deposits which can be applied across payments and customers.
### Payment write-back
All payments your customers make on Upflow are pushed back to QuickBooks Online as **Receive Payments** applied to the matching invoice(s). See [Payment write-back](/en-us/integrations/quickbooks/payment-write-back) for the full flow and how to recover from a failed export.
Payments post to **Undeposited Funds** in QuickBooks.
If you're an **Upflow Payments** merchant, you reconcile the matching bank deposit manually using the Upflow payout export — see [Payout reconciliation](/en-us/integrations/quickbooks/payout-reconciliation).
If you collect through **Upflow Payments Lite** (your own Stripe account connected to Upflow), payouts are managed by Stripe directly and you reconcile them with Stripe's own reports.
### Merge Attachments
Upflow allows multiple attachments (pdfs, excel) to be imported from QuickBooks Online either. They can either be imported as a merged pdf attachment or as a zip file. The merged attachments can be sent in collections emails and also hosted on customer portals.
For PDFs only, you can select the first option below. If you need to attach any other file types, you must select the second option in your [Upflow Integrations settings](https://app.upflow.io/organization/-/settings/integrations):
#### QuickBooks and Upflow are disconnected
If your QuickBooks account was disconnected from Upflow, intentionally or not, you'll notice a red banner at the top of your Upflow account:
Click Reconnect, which will redirect you to your Upflow settings > Integrations. There, as a QuickBooks Admin, click *Connect to QuickBooks*.
Upflow should be reconnected immediately and any missing data will sync in the following minutes to hours, based on how long the disconnection lasted.
## FAQ
* **I've created an entity in QuickBooks, will this reflect in Upflow?** Yes, we'll automatically create a parent associated with its entities. You'll be able to set up collection workflows at the parent and/or entity level.
* **What are the synchronization issues that may arise?** If you’re seeing this indicator in your customer list, it means that the customer in question is off balance. If there is an issue un-flagged please refer to [this article.](https://help.upflow.io/en/articles/4129734-why-are-some-customers-not-synchronized-correctly-in-upflow)
* **How does the integration with Stripe payments work?** Once you connect Upflow with your Stripe account, every time a payment is triggered from Upflow, we will have it pushed back to QuickBooks to pay the corresponding invoice ([how to set up card payment within Upflow?](https://help.upflow.io/en/articles/3924431-how-to-connect-my-stripe-account-to-upflow)).
# QuickBooks - Payment write-back
Source: https://docs.upflow.io/en-us/integrations/quickbooks/payment-write-back
How Upflow payments are written back to QuickBooks Online as Receive Payments, how references are reused, and how to recover from a failed export.
When a customer pays through Upflow, the payment is written back to QuickBooks Online so your accounting stays aligned with what you collected. This page covers the successful flow and how to recover from a failed export. Refund handling is documented in [Refund management](/en-us/integrations/quickbooks/refund-management); the downstream bank deposit step is documented in [Payout reconciliation](/en-us/integrations/quickbooks/payout-reconciliation).
## How a successful write-back appears in QuickBooks
For each successful Upflow payment, we create a **Receive Payment** in QuickBooks Online, applied to the corresponding invoice(s) for the same amount and on the same received date.
The Upflow payment reference (the one shown on the invoice's **Payments and Credit Notes** card in Upflow, e.g. `#6UziCK8qvr`) is reused as the **Receive Payment number** in QuickBooks. You can use it to jump between the two systems with no ambiguity.
The Receive Payment is always posted to QuickBooks' standard **Undeposited Funds** account. This is fixed and not configurable: payments stay on Undeposited Funds until you record the matching bank deposit during [Payout reconciliation](/en-us/integrations/quickbooks/payout-reconciliation).
## Handling a failed write-back
If a payment can't be exported to QuickBooks, it appears with an **Error** status on the [Payments](https://app.upflow.io/organization/-/transactions) list. Hover over the status to see the underlying QuickBooks error message. To see the message without hovering, add the **QuickBooks message** column to the Payments list view.
### Closed accounting period
The most common cause is a **closed accounting period** in QuickBooks: the payment's date falls before the QuickBooks close date, so QuickBooks refuses to post the transaction.
To resolve:
1. In QuickBooks Online, reopen the period (or move the close date) to allow new entries on the payment date.
2. Back in Upflow, open the three-dot menu next to the payment on the [Payments](https://app.upflow.io/organization/-/transactions) list and click **Export back to QuickBooks**.
3. Within a few seconds the status should switch to **Succeeded**, with a green confirmation at the bottom of the screen.
If the export fails again, refresh the page and re-read the error message — it will indicate what still needs to change in QuickBooks before the retry succeeds.
# QuickBooks - Payout reconciliation
Source: https://docs.upflow.io/en-us/integrations/quickbooks/payout-reconciliation
Manually reconcile Upflow Payments payouts in QuickBooks Online: required accounts, booking fees and surcharges, and matching the bank deposit.
For Upflow Payments merchants on QuickBooks Online, payouts are reconciled manually because the QuickBooks Online integration does not create the bank deposit automatically. This page walks through the QuickBooks-side steps. For the general principle, the contents of the CSV export, and a sample, see [Payout reconciliation](/en-us/payments/process-online-payments/payout-reconciliation).
## Prerequisites
Before reconciling, make sure you have:
* An **expense account** for **transaction fees** (e.g. "Transaction Fees").
* A **revenue account** for **surcharges**, if you collect them (e.g. "Surcharge Income").
* The Upflow → QuickBooks [payment write-back](/en-us/integrations/quickbooks/payment-write-back) configured. Upflow pushes the invoice amount as a Receive Payment to **Undeposited Funds**; surcharges and processing fees are **not** pushed and must be booked at reconciliation time.
## How to reconcile a payout
### 1. Export the payout from Upflow
In the [**Payments settings**](https://app.upflow.io/organization/-/settings/payment-gateway) (**Settings → Payment gateway**), under **Export your payout data**, click **Download** to export the CSV — see [Payout reconciliation](/en-us/payments/process-online-payments/payout-reconciliation) for the columns. Each `transaction_upflow_id` in the CSV matches a **Receive Payment number** already created in QuickBooks by the write-back, posted against Undeposited Funds.
Only reconcile payouts with `payout_status = paid`. Pending payouts have not arrived in your bank yet — wait until they are marked paid before reconciling.
### 2. Compute the three totals for the payout
For each payout, sum the following from the CSV rows that share the same `payout_upflow_id`:
* **Gross customer payments** — sum of `transaction_converted_total_amount`. This equals the invoice amounts already in Undeposited Funds **plus** any surcharges collected.
* **Processing fees** — sum of `transaction_processing_fees`. Not yet in QuickBooks.
* **Surcharges in payout currency** — sum of `transaction_surcharge_amount` converted to the payout currency. Not yet in QuickBooks. Skip if you do not collect surcharges.
These balance to the deposit:
```
payout_amount = Undeposited Funds payments + Surcharge income − Processing fees
```
### 3. Record the deposit in QuickBooks
The deposit must clear the Receive Payments from Undeposited Funds, book surcharges as revenue, book fees as an expense, and land the net in the bank. Both the surcharge and fee adjustments are added as lines on the deposit itself — no separate journal entries are required.
The flow depends on whether the destination bank account is connected to a bank feed.
#### With a bank feed
When the payout appears in **Bookkeeping → Transactions → Bank transactions → For review**:
1. Click the payout line, then **Find match**.
2. Set the filter to **Money received** and source to **Undeposited Funds**.
3. Tick every Receive Payment listed in the CSV for that payout. The selected total will be larger than the bank line by the fee amount and smaller than gross by the surcharge offset.
4. Click **Resolve difference** (or **Add resolving transactions**) and add:
* A **positive** line to your **Surcharge Income** account for the surcharge total. Skip if no surcharges.
* A **negative** line to your **Merchant Processing Fees** account for the fee total.
5. Confirm the remaining difference is `$0.00` and save. The bank feed entry is now matched and Undeposited Funds is cleared for those payments.
#### Without a bank feed
1. Go to **+ New → Bank Deposit**.
2. Select the bank account where the payout landed and set the date to `payout_arrival_date`.
3. Under **Select the payments included in this deposit**, tick the Receive Payments listed in the CSV for that payout.
4. Under **Add funds to this deposit**, add:
* A **positive** line to **Surcharge Income** for the surcharge total. Skip if no surcharges.
* A **negative** line to **Merchant Processing Fees** for the fee total.
5. Confirm the deposit **Total** equals `payout_amount` and save.
In either path, saving moves the funds out of Undeposited Funds, books the surcharge as revenue, books the processing fees as an expense, and posts the net to the bank account in a single step.
## Worked example
For a payout of `$239,058.68` arriving on `2026-05-10`, after summing the CSV rows that share the same `payout_upflow_id`:
| Component | Amount |
| - | -: |
| Gross customer payments (sum of `transaction_converted_total_amount`) | \$243,932.68 |
| – Processing fees (sum of `transaction_processing_fees`) | \$4,874.00 |
| + Surcharge included in gross | \$0.00 |
| **Net payout** | **\$239,058.68** |
In the Bank Deposit (or Resolve panel), you would tick `$243,468` of Receive Payments from Undeposited Funds (gross minus surcharge), add a `−$4,874` line to Merchant Processing Fees, and the total would match the `$239,058.68` deposit. Surcharge lines are only added when surcharges were collected for that payout.
# QuickBooks - Upflow refund management
Source: https://docs.upflow.io/en-us/integrations/quickbooks/refund-management
How Upflow exports refunds to QuickBooks as Expenses and Credit Notes, what settings are required, and how partial refunds are applied to invoices.
When you trigger a refund in Upflow for a payment that was previously exported to QuickBooks, Upflow automatically reflects that refund in QuickBooks as an **Expense** on the configured deposit-to account. If the original payment was applied to one or more invoices, Upflow also creates a **Credit Note** for each invoice and applies it to the Expense.
## Setup
Before refunds can be exported, make sure your QuickBooks integration settings are complete. From the [**Integrations settings**](https://app.upflow.io/organization/-/settings/integrations) page, configure:
* **Accounts Receivable (AR) account** — the account the refund Expense will post to. If you work in multiple currencies, you can set a different AR account for each currency.
* **Partial invoice refund line item** — the QuickBooks line item Upflow uses to represent the refunded amount when a refund does not fully cover the original payment.
If either setting is missing when a refund is triggered, the export fails with a clear error message and no partial export is left in QuickBooks.
## Refund of a payment not applied to an invoice
When the original payment is not applied to any invoice in Upflow, we generate the refund in QuickBooks as an **Expense** and apply it directly to the original payment.
## Refund of a payment applied to an invoice
When the original payment was applied to an invoice, Upflow leaves the payment applied to the invoice and creates a **Credit Note** in QuickBooks. The refund is then exported as an Expense, and the Credit Note is applied to that Expense.
If the payment covered several invoices, Upflow creates one Credit Note per invoice and applies them all to the same refund Expense.
## Partial refund
When a refund covers only part of the original payment, Upflow doesn't know which invoice line items it corresponds to. The refund Expense uses the **partial invoice refund line item** configured in your QuickBooks integration settings to represent the refunded amount. The remaining balance stays applied to the original invoice.
## Troubleshooting
If a refund fails to export, check the error message on the refund from the [**Payments**](https://app.upflow.io/organization/-/transactions) list. The most common causes are a missing setting in your [**Integrations settings**](https://app.upflow.io/organization/-/settings/integrations):
* *Refund could not be exported. Please make sure you have selected the AR account in the integration settings.* → select the AR account for the refund's currency and retry the export.
* *Credit note could not be exported. Please make sure you have selected the partial invoice refund item in the integration settings.* → select a partial invoice refund line item and retry the export.
Once the setting is fixed, retry the export from the three-dot menu next to the refund on the [**Payments**](https://app.upflow.io/organization/-/transactions) list.
# Rillet & Upflow
Source: https://docs.upflow.io/en-us/integrations/rillet
Connect Rillet to Upflow and see how customers, invoices, and credit memos sync to power your AR workflows and accelerate cash collection.
Rillet is an AI-native ERP built for modern finance teams. Connecting it to Upflow brings together your accounting source of truth and your collections layer, so your AR data stays current and your team can focus on getting paid.
Here's an overview of how Rillet integrates with Upflow.
## Sync Frequency
The sync frequency between Rillet and Upflow is every hour. For accounts with a large volume of invoices, the sync may run every 2 hours to account for the time Rillet's API takes to process larger data sets.
## Entities and Data Flows
| Rillet | Data flow | Upflow |
| - | - | - |
| Customer | → | Customer |
| Invoice | → | Invoice |
| Credit memo | → | Credit note |
Deletions in Rillet are also reflected in Upflow. For larger accounts, this check runs once every 24 hours rather than with every sync.
## Invoices
### Invoice Statuses
| Rillet status | Upflow status |
| - | - |
| Unbilled | Not imported |
| Unpaid | Due / Overdue |
| Partially paid | Due / Overdue |
| Paid | Paid |
| Credited | Paid |
| Partially credited | Due / Overdue |
### Invoice PDFs
Invoice PDFs are synced from Rillet and available in Upflow for use in collection emails and on the customer portal.
## Payments
Payments collected through the Upflow portal are recorded in Upflow and the invoice is marked as paid. These payments are **not** automatically written back to Rillet — your team will need to reconcile them manually in Rillet.
## Contacts
Contacts are created in Upflow from the customer data synced from Rillet.
## Multi-entity / Subsidiary Support
The integration supports Rillet subsidiaries. Let the Upflow team know which subsidiaries should be synced.
## Getting Connected
The integration is configured by the Upflow team during your onboarding. To get started, you'll need to:
1. Add [**integrations+rillet@upflow.io**](mailto:integrations+rillet@upflow.io) as an Admin user in your Rillet account
2. Enable **API Access** in Rillet under Organization Settings → API Access, and generate an API key
3. Share the API key securely via [https://secrets.upflow.io/](https://secrets.upflow.io/).
If API Access isn't visible in your Rillet settings, contact Rillet support to have it enabled for your account.
## Data Validation
Once your integration is live, it's worth doing a quick check to confirm your data looks as expected. If you notice any discrepancies, reach out to your Upflow contact or get in touch at [**support@upflow.io**](mailto:support@upflow.io).
# Write applied transactions back to Sage Intacct
Source: https://docs.upflow.io/en-us/integrations/sage-intacct/cash-app-write-back
How Upflow writes bank transactions you apply in cash application back to Sage Intacct as AR Payments, how to set it up, how edits are handled, and how to track the sync status.
When you [apply a bank transaction to invoices](/en-us/cash-application/application-logic/apply-bank-transactions-to-invoices) in Upflow, we write that reconciliation back to Sage Intacct as an **AR Payment**, so your outstanding invoice balances stay aligned with what you've matched in Upflow.
## Set up cash application
From [**Settings > Cash Application**](https://app.upflow.io/organization/-/settings/cash-application), turn on **Sync with your integration** to write applied transactions back to Sage Intacct.
Each bank account you import transactions from is then mapped to a GL account in your Sage Intacct chart of accounts. This mapping tells Upflow which account to post the AR Payment to when you apply a transaction. Click the GL account dropdown next to the relevant bank account, select the account, and click **Save**. For Sage Intacct, the dropdown lists **Checking accounts** and the **Undeposited funds** accounts.
When Upflow fetches the list of bank accounts to map, it filters on the subsidiary connected to your organization and on the currency of the bank account.
## What gets written back
When you apply a transaction, Upflow creates the AR Payment and **posts** it to Sage Intacct automatically. Because a posted payment cannot be voided, any later edit that removes or moves the payment is handled as a **reversal** (see [How edits are handled](#how-edits-are-handled)).
| What you do in Upflow | Result in Sage Intacct |
| - | - |
| Match a transaction to a customer only (no invoices) | An AR Payment is created and posted, left unapplied |
| Match a transaction to one or more invoices | An AR Payment is created and posted, applied line-by-line to each invoice |
Once the write-back succeeds, the payment appears on the invoice in Upflow with **Cash application** as its origin:
In Sage Intacct, it posts as an AR Payment with **State** `Complete`, applied line-by-line to the matched invoices:
## Check number
When the bank transaction carries a **check number**, Upflow pushes it into the AR Payment's description in Sage Intacct, in the form `Check number: 1004`, so you can reconcile the payment against your bank statement.
The transaction's payment method is written back as well, using the built-in [payment method mapping](/en-us/integrations/sage-intacct/payment-method-mapping).
## How edits are handled
You can [edit an applied transaction](/en-us/cash-application/application-logic/apply-bank-transactions-to-invoices#edit-an-applied-transaction) from the bank transactions list. Because the original AR Payment is already posted and cannot be voided, **every edit is handled by reversing it** and, where applicable, creating a new AR Payment that reflects the change:
| Edit in Upflow | Result in Sage Intacct |
| - | - |
| Change the amount applied to an invoice | The AR Payment is reversed and re-created with the updated amounts |
| Remove an applied invoice, keep the customer | The AR Payment is reversed and re-created without that invoice; the remainder is left unapplied |
| Change which invoice the payment applies to | The AR Payment is reversed and re-created against the new invoice |
| Remove the customer | The AR Payment is reversed |
| Change the customer | The AR Payment is reversed, and a new AR Payment is created under the new customer |
In Sage Intacct, a reversal appears as a payment with **State** `Reversal` alongside the original `Reversed` payment, so the full history stays traceable:
## Payment memo
Each AR Payment written back to Sage Intacct carries a memo listing the invoices it was applied to, so you can trace it back to Upflow:
| How the transaction was applied | Memo in Sage Intacct |
| - | - |
| Applied manually | `Applied via Upflow: INV001 INV002 INV003` |
| Applied automatically by the [Cash App agent](/en-us/cash-application/cash-app-agent) | `Auto-applied via Upflow: INV001 INV002 INV003` |
## Track the sync status
Each bank transaction shows a **Sync status** in the bank transactions list, reflecting whether the write-back to Sage Intacct succeeded. When a write-back fails, the status shows **Error** — hover over it to read the failure reason returned by Sage Intacct.
Once you've resolved the underlying issue, re-applying or editing the transaction re-triggers the write-back.
## Limitations
* **Multi-subsidiary organizations** are not supported. Cash application write-back requires a one-org-to-one-subsidiary setup; if several Sage Intacct subsidiaries are linked to your organization, cash application is disabled.
# Synchronize Upflow with Sage Intacct
Source: https://docs.upflow.io/en-us/integrations/sage-intacct/connect
Step-by-step guide to connecting Sage Intacct to Upflow: authorize the Sender ID, configure Web Services, and sync invoices, customers, and payments.
Managing your accounting with Sage Intacct? Easily synchronize its data with Upflow and keep your invoice information up to date for a top-notch cash collection thanks to our native integration.
You need 10 minutes, and both solutions—Upflow and Sage Intacct—to run as you’ll be navigating from one to the other.
Before you create your Upflow and Sage Intacct integration, there are several important steps to take to ensure that Upflow has the correct authorization and permissions to access your Sage Intacct data and information.
# Step 1: Authorize Upflow’s Sender ID to use the Web Services
As a first step, you need to give Upflow’s **Sender ID** permission to use Web Services in Sage Intacct.
Start by subscribing to Web Services. Web Services enable you to exchange Sage Intacct information with external applications and integrations like Upflow.
* Go to Company > Admin tab > Subscriptions
Scroll down to Web Services and enable the toggle to subscribe.
Once you’ve subscribed to Web Services, you need to authorize Upflow to use those services by adding Upflow’s Sender ID to the Web Services authorizations list:
* Go to Company > Setup tab > Company to access the **Company information**
* Click **Edit** in the top right corner
* Go to the **Security** section
* Scroll down to the **Web Services authorizations** section
* Click **Add** and enter a **Sender ID** for Upflow (**UpflowMPP**).
* **Save** the Sender ID.
# Step 2: Create a Web Services user
Next, you must create a Web Services user in Sage Intacct since the Web Services user ID and password are needed to connect Sage Intacct and Upflow.
This Web Services user is used solely for integration purposes. It exchanges information programmatically with Sage Intacct via Web Services API calls. It isn’t allowed to log into the user interface.
*You can read more about the purpose and the management of Web Services users* *[here](https://www.intacct.com/ia/docs/en_US/help_action/Administration/Users/web-services-only-users.htm?cshid=Web_services_users).*
To obtain the Web Services user ID and password for the integration, you need to:
1. Create a new role with the required permissions
2. Create a new Web Services user and link it with that role
## 1. Create a new role and assign permissions
To create a new role:
1. Go to Company > Admin tab > Roles
2. Add a new role and give it a name; for example: Web Services user – Upflow.
3. Save the role.
Next, you will be asked to subscribe the created role to modules and applications. Subscribe the role to the following modules and give it the permissions outlined below.
### Permissions
The following permissions are essential to ensure that Upflow can access the correct information in your Sage Intacct account.
* Company - Read only or All
* General Ledger - All
* Accounts Payable - All
* Accounts Receivable - All
* Reports - All *(be sure to scroll down to select this permission under Accounts Receivable - it's easy to miss!)*
* Cash Management - All
* Order Entry - All
* Platform Services: Custom Reports - List, View
You can control the permissions for each module by clicking on the Permissions link.
Don’t forget to save your changes!
## 2. Create a new Web Services user
Next, you will need to create a new Web Services user and assign it to the role you’ve created.
1. Go to Company > Admin tab > Web Services Users.
2. Add a new user and fill in the following fields:
* User ID
* Last name
* First name
* Email address
* [User type](https://www.intacct.com/ia/docs/en_US/help_action/Administration/Users/user-types.htm): **Business**
* Admin privileges: **Limited**
3. Click on the Roles information tab and select the role you created in the previous step.
4. Save the changes.
After creating the Web Services user, you will receive an email from Sage Intacct with the following credentials:
* Password
* Sage Intacct Company ID
* User ID
Please save this information as you will need it to connect Sage Intacct with Upflow.
# Step 3: Create your Upflow organization
Initiate your organization creation process by following the steps outlined in Upflow.
Name your organization, click on the ***Connect*** button on the Sage Intacct integration icon, and let us guide you through the integration process.
The information you’ll first be asked for are your Sage Intacct **Company ID** and your default currency, which are located in Company > Setup > Company:
Use the ID under "Company information":
Continue through the onboarding form until required to share your **User ID** and **password**.
*Now you're ready to start using Upflow!*
# Sage Intacct & Upflow - Overview
Source: https://docs.upflow.io/en-us/integrations/sage-intacct/overview
Overview of how the Sage Intacct integration works with Upflow: subsidiaries, sync frequency, supported data, and key limitations to know upfront.
To sync your Sage account with Upflow for the first time or add a new subsidiary, please refer to [Synchronize Upflow with Sage Intacct](/en-us/integrations/sage-intacct/connect).
Here’s an overview of how Sage integrates with Upflow.
## Subsidiaries
Upflow does not support multi-subsidiary organisations. Only one Sage subsidiary can be mapped/synced per Upflow organization.
## Sync Frequency
The sync frequency between Sage and Upflow is every hour.
## Entities and Data flows
| Sage Intacct | Data flow | Upflow |
| - | - | - |
| Customer | → | Customer |
| Order entry invoice | → | Invoice |
| Invoice | → | Invoice |
| A/R Adjustment - debit memo | → | Invoice |
| A/R Adjustment - credit memo | → | Credit note |
| Negative invoice | → | Credit note |
| Invoice reversal | → | Credit note |
| Payment | ← → | Payment |
| Payment advance | → | Payment |
| Manual deposit | → | Payment |
| Payment reversal | → | Refund |
| Contact | → | Contact |
Note that we don’t filter on GL account type - we filter on journal types and entity types.
## Parent \<> Child hierarchies
* Sage Intacct offers several levels of depth in their customer hierarchy. Here is an example of parent → child → grand child
* Upflow only supports 1 level of depth, so any grand children will be “flattened” at the child level
In Upflow, the parent balance will be the sum of itself and all its children
### Payments on child customer invoices
To guarantee consistent payment write-backs to Sage Intacct, Upflow blocks payments on child customer invoices in two places:
* **Portal payments**: child customer invoices cannot be paid from a parent customer's portal. Their checkboxes are disabled, with the message "You cannot pay for invoices belonging to child customers". To pay these invoices, use the child customer's own portal.
* **Cash application**: bank transactions cannot be applied to child customer invoices. In the transaction application modal, these invoices show the message "The customer of this invoice does not match the selected customer". Select the child customer directly to apply the transaction to its invoices.
## Invoices
### Invoice statuses
When you activate [Send invoices from Upflow](/en-us/collection-and-collaboration/send-invoices-from-upflow/overview), any new invoice imported into Upflow is considered `UNSENT`, regardless of its Sage Intacct status.
| Sage Intacct status | Upflow status | Comment |
| - | - | - |
| DRAFT | - | Not imported in Upflow |
| Order entry: PENDINGAR: Posted | `DUE` / `OVERDUE` | Order entry transaction can be Pending —> generates AR invoice of status POSTED |
| Posted | `DUE` / `OVERDUE` | |
| Partially paid | `DUE` / `OVERDUE` | |
| PAID | `PAID` | |
| No Value | `PAID` | Sage Intacct sets every invoice with a total of 0 to No Value. Upflow imports it as `PAID` with no outstanding amount. These invoices trigger no reminders and don't affect customer balances. |
| Reversed | `VOIDED` | Reversed invoice —> change status to `Voided` |
| Reversal | `VOIDED` | Reversal invoice —> create Credit note with status `Voided` in Upflow |
### Negative invoices
**Negative invoices in Sage are imported in Upflow as credit notes.**
Note that Upflow only has 4 core accounting data entities: invoices / credit notes / payments / refunds. Every Sage Intacct entity is therefore mapped to one of these 4. Since negative invoices have the same effect as credit notes on the customer balance, they are imported as such.
### Invoice PDFs
Invoice PDFs can be imported from either Sage modules:
* Account receivables
* Order entry
You must configure this in your Upflow Settings > Integrations:
## Payments
### Payment Statuses
| Sage Intacct Payment | Upflow Payment status | Comment |
| - | - | - |
| `completed` | `SUCCEEDED` | The payment is posted to the General Ledger. Completed payments appear on the Posted payments page. |
| `reversed` | Payment = `VOIDED`Refund = `VOIDED` | This creates a reversal refund in Sage and in Upflow |
| `draft` | - | Not imported in Upflow |
### Payment methods
The following methods are imported and mapped into Upflow.
| Sage payment method | Upflow payment method |
| - | - |
| CREDIT\_CARD | Card |
| AMEX\_CHARGE\_CARD | Card |
| CASH | Cash |
| CHECK | Check |
| CHECK\_DELIVERY | Check |
| WF\_CHECK | Check |
| ACH | Wire Transfer |
| AMEX\_ACH | Wire Transfer |
| WF\_DOMESTIC\_ACH | Wire Transfer |
| WF\_USD\_WIRE | Wire Transfer |
| EFT | Wire Transfer |
### Payments write back into Sage
Payments collected through Upflow are written back to Sage Intacct. For the full configuration, status tracking, and how to recover from a failed export, see [Payment write-back](/en-us/integrations/sage-intacct/payment-write-back).
## Contacts
Contacts are created in Upflow from several different sources of information in Sage Intacct:
| Sage Intacct | Upflow |
| - | - |
| ✅ Primary contact: Email address | Upflow contact, of type `main` |
| ❌ Primary contact: Secondary email address | Not imported in Upflow |
| ✅ Contact list | Upflow contacts |
## Custom fields
Upflow supports native and custom fields whenever they are available in Sage, in particular:
* ✅ Contacts
* ✅ Customers
* ✅ Invoices
* ✅ Payments
* ✅ Credit notes
### Contact custom fields
Contact native fields are imported into Upflow as custom fields:
* ✅ Bill-to contact or Ship-to contact → Contact custom field `Contact position`
* ✅ Category → Contact custom field `Contact position`
### Good to know
* Sage Intacct projects are not imported into Upflow.
# Sage Intacct - Payment method mapping
Source: https://docs.upflow.io/en-us/integrations/sage-intacct/payment-method-mapping
How Upflow payment methods are exported to Sage Intacct when Upflow writes back payments, with the built-in mapping between each Upflow payment method and its Sage Intacct equivalent.
When Upflow writes a payment back to Sage Intacct, it also exports **how the payment was made** — so payments coming from Upflow are easy to trace and reconcile.
Sage Intacct uses a fixed, standard set of payment methods, so Upflow maps each of its own payment methods to the right Sage Intacct one for you. **This mapping is built in and cannot be edited.**
## The mapping
| Payment method in Upflow | Exported to Sage Intacct as |
| - | - |
| Card | `Credit card` (or `Cash` for foreign-currency payments, see below) |
| Bank transfer | `Record transfer` |
| Direct Debit | `Record transfer` |
| Cash | `Cash` |
| Check | `Check` |
| Other | `Record transfer` |
### Card payments in a foreign currency
Sage Intacct doesn't support the `Credit card` payment method for foreign-currency payments. When a card payment's currency differs from your organization's default currency in Upflow, Upflow exports it to Sage Intacct as `Cash` instead of `Credit card`.
For example, if your default currency is USD, a USD card payment is exported as `Credit card`, and a EUR card payment is exported as `Cash`.
You can review it at any time from your [**Settings > Integrations**](https://app.upflow.io/organization/-/settings/integrations), in the **Payment method mapping** section of your Sage Intacct integration settings:
Nothing to configure here — the section is read-only. If a payment method is missing or you need a different Sage Intacct method, reach out to [support@upflow.io](mailto:support@upflow.io).
## When it applies
The mapping covers every payment Upflow writes back to Sage Intacct:
* The payments you collect through Upflow — see [Payment write-back](/en-us/integrations/sage-intacct/payment-write-back).
* The bank transactions you apply to invoices in cash application — see [Cash app write-back](/en-us/integrations/sage-intacct/cash-app-write-back).
## Where payment methods come from
The payment method Upflow exports is the one carried by the payment itself:
* **Bank feed** — imported automatically with the transaction when your bank provides it. See [Connect your bank account](/en-us/cash-application/bank-feed/connect-your-bank-account-for-automatic-transaction-import).
* **CSV import** — mapped from a column in your file. See [Import bank transactions via CSV](/en-us/cash-application/csv-import/upload-bank-transactions).
* **Online payments collected through Upflow** — set from the method your customer paid with.
# Sage Intacct - Payment write-back
Source: https://docs.upflow.io/en-us/integrations/sage-intacct/payment-write-back
How Upflow payments are written back to Sage Intacct, how to choose the GL account, how to track sync status, and how to recover from a failed export.
When a payment is collected through Upflow, it is written back to Sage Intacct so your accounting stays aligned with what you collected. This page covers what is written back, how to configure it, how to track the sync status, and how to recover from a failed export. Refund handling is documented in [Refund management](/en-us/integrations/sage-intacct/refund-management).
## What is written back
| Type | Supported | Note |
| - | - | - |
| Payments | ✅ | The payment is written to Intacct as an AR Payment, allocated line-by-line to the matching invoices, posted to either a bank account or an undeposited-funds GL account depending on integration settings. |
| Refunds | ✅ | Handled as payment reversals. |
In Sage Intacct, the resulting **AR Payment** posts with **State** `Complete`. The **Document or check no.** field carries the Stripe payment ID, and the **Account ID** reflects the GL account configured in your settings (for example, an undeposited-funds account).
## Payment settings
You can select the GL account to which payments are written back in Sage, from your Upflow **Settings > Integrations**:
We recommend selecting an **undeposited funds** account. Payments stay there until the matching bank deposit is recorded, which makes reconciliation with your Stripe payouts much easier.
### Map an account per currency
If you collect payments in multiple currencies, you have to map a different GL account to each currency. Note that Sage Intacct's Undeposited Funds account only accepts payments in your base currency, so payments in any other currency need to use another type of account (typically a bank or clearing account that supports that currency).
To configure it, in **Settings > Integrations**:
1. Under **Payment settings**, click **Add currency**.
2. Select the currency, then select the GL account payments in that currency should be written back to.
3. Repeat for each additional currency you collect in.
Once you add or change a mapping, retry any payments that previously failed to export by using **Export back to Sage Intacct** from the payment's three-dot menu (see [Handling a failed write-back](#handling-a-failed-write-back)).
## Tracking the payment status
A payment carries two distinct statuses:
* **Gateway status** — the payment's current status in Stripe.
* **Sage Intacct status** — the export status of the payment from Upflow to Sage Intacct.
You can identify a payment's processing status by adding the **Gateway status** column to:
* your default payments view, ideally placing it next to the **Sage Intacct status** column, and saving the view — see [here](https://app.upflow.io/organization/-/transactions?columns=shortId%2CvalidatedAt%2Corigin%2Cstate%2CpaymentProcessorStatus%2Ctype%2Cinstrument%2Ccustomer%2CinvoicesTransactions%2CconvenienceFees%2Camount\&page=0\&filters=%7B%22origin%22%3A%7B%22in%22%3A%5B%22PORTAL%22%5D%7D%7D\&view=d533429c-3f71-4671-a307-81da368139f2\&sort=%7B%22field%22%3A%22validatedAt%22%2C%22order%22%3A%22DESC%22%7D)
* the customer details page → **Payments** tab ([learn more](https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/list-views))
## Handling a failed write-back
You can identify payments that failed to export to Sage Intacct from your **Payments** list view, filtered on **Sage status contains Error**.
Hover over the **Error** status, and/or add the **Sage status** column to the list (see [here](https://app.upflow.io/organization/-/transactions?filters=%7B%22origin%22%3A%7B%22in%22%3A%5B%22PORTAL%22%5D%7D%2C%22state%22%3A%7B%22in%22%3A%5B%22ERROR%22%5D%7D%7D\&columns=shortId%2CvalidatedAt%2Corigin%2Cstate%2Ctype%2Cinstrument%2Ccustomer%2CinvoicesTransactions%2Camount%2CunappliedAmount%2CexportErrorSourceMessage\&page=0)), to learn more about the failure reason.
Once you've updated the required or missing settings, you can retry the export from the payment's three-dot menu on the Upflow list, by clicking **Export back to Sage Intacct**.
# Sage Intacct - Payout reconciliation
Source: https://docs.upflow.io/en-us/integrations/sage-intacct/payout-reconciliation
Manually reconcile Upflow Payments payouts in Sage Intacct: required accounts, grouping AR Payments into a deposit, and booking fees and surcharges.
For Upflow payments merchants on Sage Intacct, payouts are reconciled manually because the integration writes back each payment individually but does not create the bank deposit automatically. This page walks through the Sage Intacct–side steps. For the general principle, the contents of the CSV export, and a sample, see [Payout reconciliation](/en-us/payments/process-online-payments/payout-reconciliation).
## Prerequisites
Before reconciling, make sure you have:
* An **expense account** for **transaction fees** (e.g. "Transaction Fees").
* A **revenue account** for **surcharges**, if you collect them (e.g. "Surcharge Income").
* The Upflow → Sage Intacct [payment write-back](/en-us/integrations/sage-intacct/payment-write-back) configured. Upflow writes each payment as an **AR Payment**, allocated line-by-line to the matching invoices and posted to the GL account set in your integration settings. Surcharges and processing fees are **not** written back and must be booked at reconciliation time.
This manual deposit flow applies when write-back posts payments to an **undeposited-funds GL account**. If you post payments directly to a bank account, the customer payments already hit the bank — there is no deposit to group, and you only need to book the processing fees (and surcharges, if any) for the payout.
## How to reconcile a payout
### 1. Export the payout from Upflow
In the [**Payments settings**](https://app.upflow.io/organization/-/settings/payment-gateway) (**Settings → Payment gateway**), under **Export your payout data**, click **Download** to export the CSV — see [Payout reconciliation](/en-us/payments/process-online-payments/payout-reconciliation) for the columns. Each payment row maps to an **AR Payment** already created in Sage Intacct by the write-back, posted to your undeposited-funds account. Two columns let you tie a row back to it:
* `transaction_sage_intacct_id` — the dedicated Sage Intacct record ID for that AR Payment.
* `transaction_stripe_id` — the Stripe payment ID (e.g. `py_…` or `ch_…`), which Upflow also writes to the **Document or check no.** field on the AR Payment, so you can match it visually in Sage.
Only reconcile payouts with `payout_status = paid`. Pending payouts have not arrived in your bank yet — wait until they are marked paid before reconciling.
### 2. Compute the three totals for the payout
For each payout, sum the following from the CSV rows that share the same `payout_upflow_id`:
* **Gross customer payments** — sum of `transaction_converted_total_amount`. This equals the AR Payment amounts already in undeposited funds **plus** any surcharges collected.
* **Processing fees** — sum of `transaction_processing_fees`. Not yet in Sage Intacct.
* **Surcharges in payout currency** — sum of `transaction_surcharge_amount` converted to the payout currency. Not yet in Sage Intacct. Skip if you do not collect surcharges.
These balance to the deposit:
```
payout_amount = Undeposited Funds payments + Surcharge income − Processing fees
```
### 3. Record the deposit in Sage Intacct
Unlike some accounting systems, a Sage Intacct deposit only groups the payments you select from undeposited funds — it does **not** let you add fee or surcharge lines on the deposit itself. So reconciling a payout takes two postings: the deposit, then a journal entry for the amounts Upflow did not write back.
**a. Create the deposit.** In Sage Intacct, go to **Cash Management → Deposits** and create a new deposit on the bank account where the payout landed, dated to `payout_arrival_date`. Select every AR Payment listed in the CSV for that payout (the payments sitting in your undeposited-funds account) and save. This moves those payments out of undeposited funds and into the bank account. The deposit total equals the sum of the AR Payment amounts (gross customer payments **minus** any surcharge, since surcharges are not written back).
**b. Book the fees and surcharges.** Post a journal entry, dated to `payout_arrival_date`, to record what the deposit could not:
* **Debit** your **Transaction Fees** account for the processing-fee total.
* **Credit** your **Surcharge Income** account for the surcharge total. Skip if no surcharges.
* The net of the two posts against the **bank account**, bringing its balance down to the amount actually received.
After both postings, the bank balance reflects the real `payout_amount` — fees are booked as an expense, surcharges as revenue, and undeposited funds is cleared. You can then match the result against your bank feed when the corresponding bank transaction appears.
## Worked example
For a payout of `$11,718.12` arriving on `2026-05-13` and containing 8 payments, after summing the CSV rows that share the same `payout_upflow_id`:
| Component | Amount |
| - | -: |
| Gross customer payments (sum of `transaction_converted_total_amount`) | \$11,853.78 |
| – Processing fees (sum of `transaction_processing_fees`) | \$135.66 |
| of which surcharge included in gross (sum of `transaction_surcharge_amount`) | \$99.31 |
| **Net payout** | **\$11,718.12** |
You would reconcile it in two postings:
* **Deposit** — select the `$11,754.47` of AR Payments from undeposited funds (gross minus surcharge) and deposit them to the bank account.
* **Journal entry** — debit **Transaction Fees** `$135.66`, credit **Surcharge Income** `$99.31`, and post the net `$36.35` against the bank account.
After both, the bank balance for this payout is `$11,754.47 − $36.35 = $11,718.12`, matching the amount received. The surcharge credit only applies when surcharges were collected for that payout; without surcharges, the journal entry simply debits the fee total and credits the bank.
# Reconnect Sage Intacct to Upflow
Source: https://docs.upflow.io/en-us/integrations/sage-intacct/reconnect
Restore the Sage Intacct sync after a disconnection: required admin access, integration user checks, and how Upflow recovers data created during downtime.
If your Sage Intacct instance gets disconnected, your data will stop syncing into Upflow. Reconnecting restores the sync, and we'll be able to retrieve created/updated data that happened during that time.
#### Before you start
* Make sure you have **Admin access** in Sage Intacct and **Admin access** in Upflow.
* If you use a dedicated Sage Intacct user for integrations, confirm you still have access to it.
### Reconnect Sage to Upflow
You can click *Reconnect* directly from the red banner displayed in your Upflow organization, or head to your Upflow Settings > Integrations.
There, click *Connect* at the top right:
Follow the prompts to authenticate again.
The red banner should disappear, indicating Sage and Upflow are reconnected. The sync will then start to retrieve any missing data. Based on the volume, it can take a few hours, up to a day.
### Reconnection failed
#### Verify Sage Intacct Web Services authorization (common root cause)
In Sage Intacct, confirm Web Services is enabled and that Upflow’s Sender ID is authorized:
1. Go to **Company > Admin tab > Subscriptions**.
2. Enable **Web Services** (if not already enabled).
3. Go to **Company > Setup tab > Company** and click **Edit**.
4. In **Security**, find **Web Services authorizations**.
5. Add (or re-add) Upflow’s Sender ID (example: **UpflowMPP**) and **Save**.
You can also refer to our article [Synchronize Upflow with Sage Intacct](/en-us/integrations/sage-intacct/connect) to check the necessary settings and permissions, and check any internal changes.
# Sage Intacct - Upflow refund management
Source: https://docs.upflow.io/en-us/integrations/sage-intacct/refund-management
How Upflow exports refunds to Sage Intacct as payment reversals, including handling late payment failures and invoice reallocation after a refund.
When you trigger a refund in Upflow for a payment that was previously exported to Sage Intacct, Upflow automatically reflects that refund in Sage Intacct as a **payment reversal** on the original payment. Late payment failures are handled the same way.
## Refunded payments
From the [**Payments**](https://app.upflow.io/organization/-/transactions) page, when you initiate a refund on a payment that was exported to Sage Intacct, Upflow will automatically create a payment reversal in Sage Intacct.
Once the reversal is processed, the refund's **Sage Intacct status** updates to `SUCCEEDED` in Upflow. The right-hand panel shows the original payment the refund was applied to.
In Sage Intacct, the original payment is then marked with the **State** `Reversed`. The **Document or check no.** field carries the Stripe payment ID, so you can match it back to the payment in Stripe and Upflow.
## Late payment failures
When a payment that was already exported to Sage Intacct fails at a later stage (for example, a returned bank transfer), Upflow automatically reverses that payment in Sage Intacct as well.
## Good to know
* Upflow does not create "Customer Refund" entities in Sage Intacct. Both refunds and late payment failures are handled as **payment reversals**.
* Only payments that were previously exported to Sage Intacct by Upflow are eligible for automatic reversal.
* Partial refunds are not yet supported.
# Connect Salesforce to Upflow
Source: https://docs.upflow.io/en-us/integrations/salesforce/connect
Set up the Salesforce integration with Upflow: connection options, importing account owners, contacts and custom fields, and exporting the customer portal link.
Integrating Salesforce with Upflow is a powerful way to enhance your collections process. With this integration, you can seamlessly sync data between Salesforce and Upflow, including customer and contact custom fields, additional contacts, user assignments, and cash collection details. Here’s how to set up the integration and get the most out of it.
In this article, you'll find:
* How to connect Salesforce with Upflow and the three available options
* Additional features such as:
* Importing account owners, contacts, custom fields
* Exporting the Upflow customer portal link to Salesforce
* FAQ
# How to connect Salesforce with Upflow
#### Salesforce specificities
Before we start, please take into account that:
* The user doing the integration must be **Admin**\* in Salesforce and Upflow
* A single Salesforce user can only connect up to 5 Upflow organizations, due to a Salesforce limitation. If you have more than 5 Upflow organizations you need to connect to Salesforce, you must use a different admin user for each batch of 5 orgs.
To begin the integration, start from the [CRM section in your Upflow settings](https://app.upflow.io/organization/-/settings/crm).
#### \*Specific permissions
If your company doesn't allow for Admin rights/permissions for integrations/apps, then you can setup specific permissions in Salesforce for Upflow. Please refer to the attached PDF at the bottom of this article.
### Step 1: Select your Salesforce domain and authorize access
1. Specify the domain of the Salesforce instance you wish to connect to.
2. Authorize Upflow to access your Salesforce data. This ensures secure data sharing between the platforms.
## Setting up a shared identifier
For seamless synchronization, Upflow requires a **shared identifier** for your customers across Salesforce, Upflow, and your accounting/billing system (e.g., NetSuite, QuickBooks, Chargebee, Stripe Billing, Xero, Sellsy, Zuora). This ensures accurate data mapping.
A 1 \<> 1 mapping is required between your accounting/billing customers and the Salesforce accounts.
Please note we only support 'textarea', 'string', 'reference' SFDC custom field types for the initial connection/integration between Upflow and Salesforce. We do not yet support number type salesforce fields for this step.
### Common identifier scenarios
#### Option 1: Using the Salesforce identifier (`Account Id`)
Here, your Salesforce account is synchronized into NetSuite.
* The `Account Id` is unique to each customer in Salesforce and follows a format like “001IV00000hHdc7YAC.”
* Locate the `Account Id` in the URL of a customer page in Salesforce.
* Ensure it exists in:
| Your accounting system as a custom field. | Upflow as a customer custom field (import it if necessary through the custom fields section). |
| - | - |
|
|
|
* **Field Mapping Example:** Select the corresponding fields in Upflow for mapping, such as `Account Id` in Salesforce and the respective field in your accounting software.
#### Option 2: Using the \_NetSuite\*\_ identifier (*`NetSuite Id`*) -\* or any other billing tool
Here, your NetSuite account is synchronized into Salesforce.
* The `NetSuite Id` is unique to each customer in NetSuite, formatted like “285.”
* Locate it in the URL of a customer page in NetSuite.
* Ensure it exists in:
| Salesforce as a custom field. | Upflow’s customer details section. |
| - | - |
|
|
|
* **Field Mapping Example:** Select `NetSuite Id` as the shared identifier for mapping across platforms.
#### Option 3: Using another identifier
Here, your billing tool and Salesforce account are not synchronized together.
You will need to choose or create a dedicated shared identifier (e.g., app-specific Id, company registration number), ensure it is available in both Salesforce and your billing tool, and [imported to Upflow](https://app.upflow.io/organization/-/settings/custom-fields). Below an example with NetSuite as billing tool:
* **Field Mapping Example:** Choose the custom identifier field across all systems for accurate data synchronization:
| In NetSuite | In Salesforce | In Upflow |
| - | - | - |
|
|
|
|
### Here's more insights
##### **Step 1: Choose the identifier**
Pick **one** identifier that is:
* **The same value** for the same customer in both systems
* **Unique** (no duplicates)
* **Stable** over time
Ideally, create a TEXT field type in both systems, sharing the same or similar name.
##### **Step 2: Add the field in Salesforce and in your billing tool**
* In **Salesforce (Account level):** create or select a field (Text is usually best), e.g. *Other ID*.
* In your **billing tool (Customer):** create or select the equivalent field.
##### **Step 3: Fill the identifier in both systems**
You can populate and maintain it using any of these methods:
* **Manual updates** (small volumes)
* **API / automation** (recommended at scale for long-term consistency)
##### **Step 4: Make sure the identifier is available in Upflow**
In Upflow, you should be able to sync both fields in your [Settings > Custom fields](https://app.upflow.io/organization/-/settings/custom-fields), at the customer level.
##### **Step 5: Map the fields in the Salesforce setup**
When connecting Salesforce for the first time in Upflow, our system asks you to “map your customers”:
* Select the identifier field on the **billing tool** side
* Select the matching identifier field on the **Salesforce** side
If you've already connected Salesforce to Upflow, but mapped the wrong fields, you can update them at any time from [here](https://app.upflow.io/organization/-/settings/custom-fields). Click on each field's dropdown to select the appropriate fields. Save at the bottom of the page.
Example:
* Other ID (Billing tool) = Other ID (Salesforce)
That’s it. Upflow will use this shared identifier to match the right Salesforce Account to the right Upflow customer.
**Common errors preventing the sync for certain customers:**
* Missing values in one or both systems → no match
* Duplicates → ambiguous match
* Formatting differences (spaces, leading zeros, casing) → mismatch/no match
# Configuring additional features
Upflow’s Salesforce integration offers several customizable features to streamline your workflow.
## Import information from Salesforce
More details are available [here](https://support.upflow.io/hc/en-us/search/click?data=BAh7DjoHaWRsKwiRT%2FmupSE6D2FjY291bnRfaWRpA5ry6zoJdHlwZUkiDGFydGljbGUGOgZFVDoIdXJsSSJgaHR0cHM6Ly9zdXBwb3J0LnVwZmxvdy5pby9oYy9lbi11cy9hcnRpY2xlcy8zNjk5NTQ4ODg5NDg2NS1JbXBvcnQtU2FsZXNmb3JjZS1kYXRhLWluLVVwZmxvdwY7CFQ6DnNlYXJjaF9pZEkiKTI0NmRlZDJkLThmZGMtNDk1Yy1iNDk1LTA0MGU5NmE0NDUwMQY7CEY6CXJhbmtpBzoLbG9jYWxlSSIKZW4tdXMGOwhUOgpxdWVyeUkiD3NhbGVzZm9yY2UGOwhUOhJyZXN1bHRzX2NvdW50aQo%3D--64e58550c6a464914ff64015720e636d61d175ee).
## Exporting information to Salesforce
More details are available [here](/en-us/integrations/salesforce/export-data).
## Frequently asked questions
### Salesforce is disconnected from Upflow
When Salesforce and Upflow are disconnected, it can be due to a change on your end (at the user level - the one used for the initial connexion), or due to a limitation from Salesforce.
As mentioned at the top of this article, a same Admin user can connect the same Salesforce account up to 5 organizations. If you have more than 5 in Upflow, you must split the (re)connection with other Upflow/Salesforce Admin users.
Head to your Upflow CRM settings, and click *Reconnect* (or follow the connection process if not connected before).
##### If you face any error when attempting to reconnect:
1. Ensure you're Admin in Salesforce and have no restriction there
2. Click *Disconnect* and restart the connection process from scratch (a few minutes)
### How often does Salesforce data sync with Upflow?
Synchronization occurs every 10 minutes, ensuring minimal delay in data updates between Salesforce and Upflow.
### What happens if I disconnect Salesforce?
Disconnecting Salesforce removes all associated contacts and custom fields from Upflow. However, the most recent user assignments remain intact. If needed, you can reconnect Salesforce or switch to a different account.
### Does the Salesforce User I’m connecting with need to be an Admin?
Yes. However, if this is not possible within your company, please refer to the attached PDF below.
# Export Upflow data to Salesforce
Source: https://docs.upflow.io/en-us/integrations/salesforce/export-data
Push customer-level collection data from Upflow to Salesforce so commercial teams always see the latest AR status alongside their accounts and opportunities.
## How does it work?
Once Upflow and Salesforce are connected, you can export some information to Salesforce to help your team better understand each customer's collection situation.
Today, only the information stored at the customer level can be exported.
After creating the field in Salesforce, the information will be available in Upflow in a few minutes. You can then do the mapping.
Once you have selected the mapping between the Upflow and Salesforce fields, save the configuration, and the sync will be started.
If you disable the field sync in Upflow, the field should be deleted in Salesforce.
## Customer fields available for export
| **Field** | **Description** | **Salesforce field type** | **Sync frequency** |
| - | - | - | - |
| Outstanding amount | Outstanding amount in the org currency | Currency | Near real-time |
| Overdue amount | Overdue amount in the org currency | Currency | Near real-time |
| Overdue 1 - 30d | Overdue amount 1 to 30 days past due, in the org currency | Currency | Near real-time |
| Overdue 31 - 60d | Overdue amount 31 to 60 days past due, in the org currency | Currency | Near real-time |
| Overdue 61 - 90d | Overdue amount 61 to 90 days past due, in the org currency | Currency | Near real-time |
| Overdue > 90d | Overdue amount more than 90 days past due, in the org currency | Currency | Near real-time |
| Due amount | Due amount in the org currency | Currency | Near real-time |
| Overdue count | Number of overdue invoices | Number | Near real-time |
| Due count | Number of due invoices | Number | Near real-time |
| Average payment delay | Average payment delay in days | Number | Near real-time |
| Rating | Customer rating | Text | Near real-time |
| Collection status | Active or Paused | Text | Near real-time |
| Customer portal URL | Link to the customer portal. The link validity will be at least of 30 days. | Text Area (Long), Text Aread (Rich) | Every 30 days, we sync a new link valid for 60 days. Independently of your organization token duration configuration. |
| Customer details page URL | Link to the customer page in Upflow. | Text Area (Long), Text Aread (Rich), URL | Near real-time |
| Saved payment method | Saved payment method type. | Text | Near real-time |
| Saved payment method status | Saved payment method last payment status. | Text | Near real-time |
| Text custom field | | Text, Text Area (Long), Text Area (Rich) | Near real-time |
| Select custom field | | Picklist | Near real-time |
| Multi-select custom field | | Multi-picklist | Near real-time |
| Date custom field | | Date | Near real-time |
| Boolean custom field | | Checkbox | Near real-time |
| Number custom field | | Number | Near real-time |
# How to import collection emails in Salesforce?
Source: https://docs.upflow.io/en-us/integrations/salesforce/import-collection-emails
Use the Email-to-Salesforce feature to automatically import Upflow collection emails into Salesforce so commercial teams see customer financial context.
Import your collection emails automatically into Salesforce so the commercial team knows the customer's financial situation.
# **How does it work?**
We rely on the [email to salesforce feature](https://help.salesforce.com/s/articleView?id=sf.email_my_email_2_sfdc.htm\&type=5) to import the emails in Salesforce.
Once activated, choose one salesforce user and use its [import email address](https://help.salesforce.com/s/articleView?id=sf.email_my_email_2_sfdc_setup.htm\&type=5) ([emailtosalesforce@xxxxxxx.salesforce.com](mailto:emailtosalesforce@xx.com)) in the Cc or Bcc of the email templates. You can use Cc if you want the customer's replies imported into Salesforce.
This user must add the Upflow users' addresses as acceptable email addresses.
If you haven't set up email sending from your domain, add "[reminders@upflow-mail.com](mailto:reminders@upflow-mail.com)" to the acceptable list.
Once done, any email sent from Upflow with the import email address attached will be automatically imported into Salesforce.
# Import Salesforce data
Source: https://docs.upflow.io/en-us/integrations/salesforce/import-data
Import Salesforce contacts, account owners, and custom fields into Upflow at the account level to enrich collection workflows and assignments.
With Salesforce integration, you can import Salesforce information into Upflow. The information available for import needs to be stored at the Account level.
## Salesforce Contacts
* Import all contacts from Salesforce, **replacing** those from your billing or accounting system. It's not yet possible to combine contacts from both sources into Upflow.
* The oldest contact on the account will be considered the Main contact.
* Add contact custom fields through the [custom field section](https://app.upflow.io/organization/-/settings/custom-fields) (read more [here](/en-us/core-entities/contacts/contact-custom-fields)).
> **Note:** Disabling the contact import will purge all Salesforce contacts from Upflow. Our system should then fall back to your accounting integration to manage your contacts in Upflow. The purge/sync can take a few minutes, up to a few hours based on the data volume.
## Salesforce account owner
* Assign the Salesforce account owner as the Upflow owner for a customer.
* Users will be created in Upflow, but not invited. You will need to manually invite them to Upflow, if you wish to give them access.\*
* This user assignment cannot be edited in Upflow, as Salesforce is the source of truth.
* For multiple users, use custom fields and [smart rules](/en-us/collection-and-collaboration/smart-rules/smart-rules) for assignment.
* Import or create a custom field holding the user email address to use it as a rule condition.
\*If you prefer to delete their user profiles, you will need to:
1. Disable the Account owner sync from Salesforce to Upflow
2. Unassign these users from Customers
3. Then delete these users
4. You can then refer to custom fields and smart rules to assign users based on Salesforce information as mentioned in the last bullet point above.
## Salesforce custom fields
* This feature is always active. Manage and select which customer or contact custom fields to import in your [custom field settings](https://app.upflow.io/organization/-/settings/custom-fields).
* When adding a Salesforce custom field to Upflow, the sync delay can take up to a few minutes to a day, depending on the data volume. If you do not see any imported value after a few hours, please submit a Support request with information on the field (such as the type), customer examples, and screenshots from Salesforce.
#### Supported custom field types
| Salesforce API Type | Description | Upflow Type |
| - | - | - |
| string | String values | STRING |
| boolean | Boolean (true / false) values | BOOLEAN |
| int | Integer values | FLOAT |
| double | Double values | FLOAT |
| date | Date values | DATE |
| datetime | Date and time values | DATETIME |
| ID | Primary key field for the object | STRING |
| reference | Cross-references to a different object. | STRING |
| textarea | String that is displayed as a multiline text field | STRING |
| percent | Percentage values | FLOAT |
| phone | Phone numbers. Values can include alphabetic characters | STRING |
| email | Email addresses | STRING |
| picklist | Single-select picklists, which provide a set of enumerated values from which only one value can be selected | SELECT |
| multipicklist | Multi-select picklists, which provide a set of enumerated values from which multiple values can be selected | MULTISELECT |
| formula | | Depends on the formula set up |
# Connect Upflow with Slack
Source: https://docs.upflow.io/en-us/integrations/slack/connect-upflow-with-slack
Connect Slack to Upflow to receive collection notifications as direct messages and streamline collaboration with customer-facing teams already on Slack.
Thanks to our Slack integration, whenever you get notified in Upflow, you can receive the notification in Slack. Use it to streamline collaboration with your customer-facing teams who live in Slack.
# How does it work
Slack notifications are direct message notifications sent to a single user, in a dedicated Apps channel:
From your [Upflow Profile > Notifications](https://app.upflow.io/organization/-/profile/notifications), you can configure whether each notification should be delivered in the app, email, or Slack.
# How to set up the Slack integration
Head over to your settings in the [Slack](https://app.upflow.io/organization/-/settings/slack) section. Click on connect and follow the guidelines.
You don’t need to be the admin of your Slack workspace to complete the required actions on Upflow—the administrators will receive the request and be able to approve the integration.
# Stripe Billing & Upflow
Source: https://docs.upflow.io/en-us/integrations/stripe-billing/overview
Connect Stripe Billing to Upflow and see how invoices, customers, and payments sync to power your AR workflows and accelerate cash collection.
## Connect Stripe Billing with Upflow
To connect Upflow with Stripe Billing, click on the Connect button after you have created a new organization.
For Upflow to work properly with Stripe Billing, we need the following permissions from your Stripe account:
## How does the synchronization work?
Once you have given Upflow access to your Stripe data, we will run a full synchronization of it. This can take several hours, and then the data will be synced in real time.
### Contact sync
We import the customer's email address as the customer's main contact.
For additional contacts, you can rely on CSV imports, API configurations, or our feature [Send emails to a custom field address](https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/custom-field-email-recipients). Note the latter won't create customer records, but will ensure the contacts contained in the custom fields are available to be picked in your collection process.
From your Upflow Settings > Custom fields, click "Add field":
Add the required fields:
And click **Save** at the bottom of the page. Give the system a bit of time to sync the data from Stripe into Upflow.
### Invoice sync
Draft invoices are not imported into Upflow.
Voided invoices are imported with the status VOIDED.
Uncollectible invoices are imported and considered as PAID.
### Payment sync
Unapplied payments are not imported into Upflow as they don't impact the Stripe credit balance.
Payment methods are imported along with the payment.
If invoices are paid via the Upflow portal, we will write back the payment to Stripe. As the Stripe Billing API doesn't allow us to specify the payment invoice, we mark the invoice as paid out of band.
#### Payment export error
If a payment made by your customer in their Upflow portal, shows a Stripe Billing error status, you can identify them through the dedicated filter:
Then, you can first check the error message by hovering over the Error status, or add the Stripe Billing Status column to the view. See here:
If the message is explicit enough, check the root cause or solution, and proceed with the necessary updates in Upflow or Stripe.
Then, try exporting the payment back to Stripe:
If the message is "Synchronisation failed. Please contact support.", and exporting back to Stripe fails, please contact our Support team (at the top right of this page), with as much context as possible.
### Custom field sync
You can import Stripe metadata as custom fields in Upflow.
These fields are available for customers, invoices, and payments.
Additionally, some native Stripe fields can be added from the Upflow custom field section. They are:
* Account email
* Delinquent
* Description
* Discount
* Default payment method
* Sources
* Subscriptions
* Tax location country
* Tax exempt
## Troubleshooting
### Time zone - time difference between Stripe & Upflow
If you notice a time difference between your Stripe data and Upflow, such as an invoice issue/due date, a payment synced time, etc., this might be due to a time zone difference between your Stripe instance, and Upflow organization.
Check your Stripe settings account details, or click a Transaction, and its activity times to see the Time conversation → xx - Your Account (eg, EST - Your Account).
In Upflow, head to your Settings > Company, scroll down to the time zone field and ensure it matches. If it doesn't, please contact your Support team with the time zone you'd need in Upflow.
# Reconnect Stripe to Upflow
Source: https://docs.upflow.io/en-us/integrations/stripe-billing/reconnect
Restore the Stripe Billing or Stripe Payments connection to Upflow after a disconnection, including the Stripe Admin requirement and step-by-step flow.
You're integrated with Stripe payments (Standard) or Stripe Billing, and your account got disconnected from Upflow?
📍The user (re)connecting Stripe to Upflow must be a Stripe Admin.
Head to your Upflow Settings > Integrations ([here](https://app.upflow.io/organization/-/settings/integrations)).
First, try to Reconnect from the button on that page (the one from the banner will redirect you to your Settings' page):
* The user reconnecting must be the one who connected Stripe to Upflow for the first time.
* Ensure this is the same Stripe account as originally connected
## Stripe unsuccessful reconnection
If you experience issues with the above points, or need to connect a new account, please head to your Stripe account to uninstall Upflow (Stripe Settings > Team and Security > Installed apps).
Finally, head back to your Upflow Settings and click Reconnect.
If you face any additional issues, please submit a [Support request](https://support.upflow.io/hc/en-us/requests/new) with context.
# Connect Upflow to Xero
Source: https://docs.upflow.io/en-us/integrations/xero/connect
Set up the Xero integration to keep invoices, customers, and payments in sync with Upflow and power your collection workflows with always-current data.
**Why connect Upflow to Xero?**
By connecting Upflow to Xero, your invoices, customers and payments data which are used to power your collection workflows will always be up to date.
**How does it work?**
Synchronization is always one way: from Xero to Upflow. What that means is that if you need to update an invoice or customer, you should be doing that by using Xero.
However, you are free to create and edit contacts, collection workflows, notes and other information that are related to your collection process directly from within Upflow.
**Getting started**
Getting started couldn't be easier, all you have to do is to create an account by clicking the link below. After that, just create an account with your work email, select your integration (Xero), enter your credentials and that's it, you'll be up and running within 5 minutes.
[Create my Upflow Account with Xero](http://app.upflow.io/signup)
# Xero and Upflow: FAQ
Source: https://docs.upflow.io/en-us/integrations/xero/faq
Common Xero integration questions answered: how to disconnect, reconnect, manage sync issues, and resolve write-back errors between Xero and Upflow.
You use our Xero integration in Upflow, please find below the most frequently asked questions. Anything's missing? Submit a Support request to let us know, so we can assist you and update this article.
### How do I disconnect Upflow from Xero?
To disconnect your Xero account, go to your Upflow Settings > Integrations and click "Disconnect Xero".
### How to reconnect Xero?
Your Xero instance was disconnected from Upflow and you see the following banner in Upflow?
This can be due to a temporary issue, a manual disconnection, or a change related to the user linked to the integration in Xero (such as their deletion, for example).
Click the Reconnect button from the banner or from your [Settings > Integrations](https://app.upflow.io/organization/-/settings/integrations) page.
You'll be redirected to your Xero instance.
Make sure the user clicking Reconnect is Admin in Xero.
### How often is my data synchronized?
The initial synchronization can take up to a few hours, however when the latter is done, the synchronization will happen in real-time up to a few minutes. Everything you do on Xero will shortly be reflected in Upflow.
### What are the synchronization issues that may arise?
If you’re seeing this indicator in your customer detail page or list view, it means that the customer in question is off balance.
#### Other discrepancies
If there is an issue un-flagged, please submit a Support request, including the customer/invoice/payment references, and screenshots from Xero for as much context and insights as possible.
### Why is a customer or contact missing from Xero?
In XERO, [*contacts*](https://developer.xero.com/documentation/api/accounting/contacts) have `isSupplier` and `isCustomer` flags to identify whether contact is a customer or supplier. In Upflow, we don't sync any contact with `isCustomer=false` or that is archived in XERO.
If a specific contact is supplier only, then `isCustomer` will be false by default for it and hence, will not be imported into Upflow.
You can choose to mark a contact both as supplier and customer, in that case we will import it.
**How contacts are marked as supplier or customer?**
* if contact has account receivable invoices then `isCustomer=true`
* If contact has account payable invoices, then `isSupplier=true`
* If contacts have both type of invoices, both supplier and customer flags will be set to `true`
**Short summary -** we don't import contacts with **only** account payable invoices (`isSupplier=true`).
### Which phone numbers are imported into Upflow at a customer level?
For now, we only import the phone number filled in the "Mobile" section.
### Payment export error
In your Payments list view, if you notice an Error status under "Xero status", it can be due to diverse reasons. The main one being a synchronization failure:
In that case, head to your [Settings > Integrations](https://app.upflow.io/organization/-/settings/integrations) in Upflow, and select the bank account payments should be exported to:
If an account is already selected and is the correct one, please let our Support team know about it, so we can investigate the issue (Submit a Support request at the top).
Once the account is added and saved in your Upflow settings... ⤵
#### Re-export your payments
From the payments list view, click the three dots on the payment line, then "Export back to Xero".
### Other
As of today, the integration doesn't support:
* Importing expected payment dates on invoices.
# Xero - Payment & write back
Source: https://docs.upflow.io/en-us/integrations/xero/payment-and-write-back
Configure payment write-back to Xero so every Upflow payment is automatically pushed to the right bank account per currency and reconciled to its invoice.
With Upflow, you can enable your customers to pay via the portal and have their transactions automatically synced back to Xero.
## Payment write-back configuration
With Xero, we will push the payments to the bank accounts that you configure, depending on the currency. If an invoice is paid in a currency that is not mapped in your settings, then the write-back will fail. To fix it, add the new currency and the corresponding accounts in your Xero settings (contact us if you can't see this option in your [Settings](https://app.upflow.io/organization/-/settings/integrations)).
## Payments
Once the payment is successful in Upflow, we will automatically push the payment to Xero on the corresponding account. In the transaction reference, we will include the upflow identifier so you can easily cross-reference it.
When several invoices are paid with the same payment, then we will create a Batch Deposit transaction to account for that payment.
→ Due to limitations on Xero's API, only invoices in your Xero organization's currency can be paid simultaneously. When this is not the case, your customers will see the following message:
## Refunds
### Refund of payment applied to an invoice
#### Payment paying entirely the invoice
When you refund a payment that has been applied to an invoice, we will automatically refund the payment and create a corresponding credit note to cancel the invoice. The payment will remain linked to the invoice, and the refund will be applied to the credit note.
→ To generate that credit note, we reuse the invoice line item.
In Xero, you will be able to see the Credit note along with the cash refund.
If there are multiple invoices involved, we will generate a single credit note for all of them.
#### Payment partially paying an invoice
As we don't know which line item is concerned by this payment, we will create a credit note using the line item you configured in your Xero settings.
### Refund of payment not applied to an invoice
If you refund a payment that is not applied to an invoice, we will simply generate the refund and link it to the original payment.
# Connect Zuora to Upflow - Initial Sync
Source: https://docs.upflow.io/en-us/integrations/zuora/connect
Set up the Zuora integration with Upflow in about ten minutes: create an API user, grant the right permissions, and run the initial AR data sync.
In a few minutes, you will be able to dig into your ARs and start your collection, but before that, we need to get you set up! *It takes approximately 10 minutes.*
# Step 1: Create a New user with API access rights
## 1. Go to your Zuora Platform logged as an Admin.
## 2. Go to your Administration section
## 3. Click on **Manage users** then on **add single user**
## 4. Create a new user with that information:
* First Name: Upflow
* Last Name: Integration
* Work Email: **your own work email (This is important as you will get a verification email to activate the user) - If you already are using this email you can add "+Upflow" in your email as such: "[name+upflow@domain.com](mailto:name+upflow@domain.com)" instead of your [name@domain.com](mailto:name@domain.com) this will create an alias and you will be able to receive the email on your [name@domain.com](mailto:name@domain.com) inbox.**
* Login Name: Same as your work email
* Zuora Platform Role: **Set as API User (This is important)**
## 5. You will get an activation email from Zuora in your inbox, click on the link, and finish activating your Zuora login by filling up the information
# Step 2: Create an OAuth client
## 1. With Your Admin account go back to the Manage Users tab
## 2. Click on the New User you just created. The following screen should appear :
## 3. In the section OAuth Clients create a New OAuth Client named "Upflow" and click on create. A window with 2 keys will appear :
Keep the two keys (Client ID and Client Secret).
# Step 3: Share the client ID and client secret with Upflow
1. Input the Client ID and Client Secret in Upflow
**- You are connected!**
# Filters in Upflow
Source: https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/filters
Use Upflow's list filters across Customers, Invoices, Contacts, Actions, Payments and Analytics with operators like is empty, is between, or does not contain.
In Upflow, you can benefit from filters in each list view (tab), such as: Customers, Invoices, Contacts, Actions, Payments, Analytics or even in your Smart rules.
The available filters and their format will differ from one view to another. You will find below the list of filters available in each view.
In the Customers, Contacts, and Invoices list views, benefit from operators such as "is empty", "does not contain", "is between", etc.
## Good to know
When filtering Text fields, you can only filter one value at a time. The value you filter must have the exact same wording (fully or partially) as the one filled at the entity level (customer, invoice, etc.).
## Customers
| Filter name | Is/Is Not | Empty/Not empty | Contains/Doesn’t contain | Date or amount options | Option |
| - | - | - | - | - | - |
| Sync status | ✅ | ✅ | ❌ | | True/False |
| Collection status | ✅ | ✅ | ❌ | | True/False |
| Owner | ✅ | ❌ | ✅ | | User names |
| Paused by | ❌ | ✅ | ✅ | | User names |
| Workflow name | ❌ | ✅ | ✅ | | Workflow names |
| Saved payment method | ❌ | ✅ | ✅ | | Payment methods |
| Save payment method status | ❌ | ✅ | ✅ | | Failed/Succeeded |
| Payment method | ❌ | ✅ | ✅ | | Payment methods |
| Autopay | ✅ | ✅ | ❌ | | True/False |
| Surcharges | ✅ | ✅ | ❌ | | True/False |
| Customer portal | ✅ | ✅ | ❌ | | True/False |
| Last action name | ❌ | ✅ | ✅ | | Template names |
| Last action performed by | ❌ | ✅ | ✅ | | User names |
| Last action date | ❌ | ✅ | ❌ | is on; is not on; is after; is before; is on or before; is on or after; is between | |
| Paused until | ❌ | ✅ | ❌ | is on; is not on; is after; is before; is on or before; is on or after; is between | |
| Next action name | ❌ | ✅ | ✅ | | Template names |
| Next action owned by | ❌ | ✅ | ✅ | | User names |
| Next action date | ❌ | ✅ | ❌ | is on; is not on; is after; is before; is on or before; is on or after; is between | |
| Amount due | ❌ | ✅ | ❌ | In default currency: | |
| equal to; is greater than; is greater than or equal to; is less than; is less than or equal to; is between | | | | | |
| Amount overdue | ❌ | ✅ | ❌ | In default currency: | |
| equal to; is greater than; is greater than or equal to; is less than; is less than or equal to; is between | | | | | |
| Amount outstanding | ❌ | ✅ | ❌ | In default currency: | |
| equal to; is greater than; is greater than or equal to; is less than; is less than or equal to; is between | | | | | |
| Amount overdue \<31d | ❌ | ✅ | ❌ | In default currency: | |
| equal to; is greater than; is greater than or equal to; is less than; is less than or equal to; is between | | | | | |
| Amount overdue 31-60d | ❌ | ✅ | ❌ | In default currency: | |
| equal to; is greater than; is greater than or equal to; is less than; is less than or equal to; is between | | | | | |
| Amount overdue 61-90d | ❌ | ✅ | ❌ | In default currency: | |
| equal to; is greater than; is greater than or equal to; is less than; is less than or equal to; is between | | | | | |
| Amount overdue >90d | ❌ | ✅ | ❌ | In default currency: | |
| equal to; is greater than; is greater than or equal to; is less than; is less than or equal to; is between | | | | | |
| Rating | ❌ | ✅ | ✅ | | A, B, C, D |
| Avg payment delay | ❌ | ✅ | ❌ | Free text in #. | |
| equal to; is greater than; is greater than or equal to; is less than; is less than or equal to; is between | | | | | |
| Country | ❌ | ✅ | ✅ | | Country list |
| Address status | ✅ | ❌ | ❌ | | Valid address; Invalid address |
| Language | ❌ | ✅ | ✅ | | Language list |
| Type | ❌ | ✅ | ✅ | | Parent/Standard |
| Custom fields | | | | | Options based on the field type. |
## Invoices
| **Filter** | Is/Is Not | Empty/Not empty | Contains/Doesn’t contain | Date or amount options | Option |
| - | - | - | - | - | - |
| Customer | ❌ | ✅ | ✅ | ❌ | Customer names |
| Status | ❌ | ✅ | ✅ | ❌ | In dispute; Due; Overdue; Paid; Voided; Written off; Unsent\*; Draft\* |
| Due date | ❌ | ✅ | ❌ | is on, is not on, is after, is before, is on or before, is on or after, is between | |
| Outstanding amount | ❌ | ✅ | ❌ | Equal to, is greater than, is greater than or equal to, is less than, is less than or equal to, is between | |
| Paid amount | ❌ | ✅ | ❌ | Equal to, is greater than, is greater than or equal to, is less than, is less than or equal to, is between | |
| Total amount | ❌ | ✅ | ❌ | Equal to, is greater than, is greater than or equal to, is less than, is less than or equal to, is between | |
| Aging bucket | ❌ | ✅ | ✅ | ❌ | Amount overdue \<31d |
| Amount overdue 31-60d | | | | | |
| Amount overdue 61-90d | | | | | |
| amount overdue >90d | | | | | |
| Currency | ❌ | ✅ | ✅ | ❌ | Currencies (i.e, USD) |
| Issue date | ❌ | ✅ | ❌ | is on, is not on, is after, is before, is on or before, is on or after, is between | |
| Payment date | ❌ | ✅ | ❌ | is on, is not on, is after, is before, is on or before, is on or after, is between | |
| Promise to pay | ✅ | ❌ | ❌ | ❌ | |
| Promise to pay date | ❌ | ✅ | ❌ | is on, is not on, is after, is before, is on or before, is on or after, is between | |
| Promise to pay source | ❌ | ✅ | ✅ | ❌ | Team member/Customer |
| Invoice workflow | ❌ | ✅ | ✅ | ❌ | Workflow names |
| Invoice visibility | ✅ | ❌ | ❌ | ❌ | Hidden/Visible |
| Custom fields | | | | | Multiple options, based on the field type and values. |
## Credit notes
| Filter name | Field type | Option |
| - | - | - |
| Customer | Multi select | Customer names |
| Issue date | Date | Start date / End date |
| Amount fully applied | Boolean | True/False |
| Currency | Multi select | Based on billed currencies in your organization |
## Contacts
| **Filter** | **Is/Is Not** | **Empty/Not empty** | **Contains/Doesn’t contain** | **Option** |
| - | - | - | - | - |
| **Customer** | ❌ | ✅ | ✅ | Customer names |
| **Phone number status** | ✅ | ❌ | ❌ | With phone number |
| No phone number | | | | |
| **Position** | ❌ | ✅ | ✅ | Positions available |
| **Main** | ✅ | ❌ | ❌ | Yes/No |
| **Email status** | ✅ | ❌ | ❌ | Valid email |
| Invalid email | | | | |
| **Source** | ❌ | ✅ | ✅ | Your billing tool, Upflow, etc. |
| **Custom fields** | | | | Based on the field type and values. |
## Actions list view
### Actions > "To do" tab
| Filter name | Field type | Option |
| - | - | - |
| Type | Multiselect | Email; Task; Call; Letter; Registered letter\*; SMS\* |
| Workflow name | Multiselect | Workflow names |
| Workflow type | Multiselect | Customer |
| Invoice | | |
| Campaign | Select | Available campaigns\* |
### Actions > "All" tab
| Filter name | Field type | Option |
| - | - | - |
| Action name | Multi select | Template names |
| Customer | Multi select | Customer names |
| Owner | Multi select | User names |
| Due date | Date | Start/End dates |
| Performed date | Date | Start/End dates |
| Action state | Multi select | To do; In Progress; Failed; Ignored; Done |
| Type | Multi select | Email; Task; Call; Letter; Registered letter\*; SMS\* |
| Workflow name | Multi select | Workflow names |
| Workflow type | Multi select | Customer |
| Invoice | | |
| Campaign | Multi select | Available list |
| Performed by | Multi select | User names |
| Assigned to | Multi select | User names |
## Payments list view
| Filter name | Field type | Option |
| - | - | - |
| Received date | Date | Start date/End date |
| Source | Select | Upflow; Your accounting tool; API\*; CSV\*; Manual\* |
| Type | Select | Payment/Refund |
| External status | Multi select | Canceled; Error; Processing; Voided; Succeeded; Failed; Deleted |
| Gateway status | Multi select | Canceled; Failed; Processing; Succeeded |
| Method | Multi select | Available payment methods |
| Customer | Multi select | Customer names |
| Amount fully applied | Number | True/False |
| Amount | Number | Min/Max |
| Currency | Multi select | Currencies (i.e, USD) |
| Payout ID | Select | List |
| Surcharges | Number | Min/Max |
### Payouts tab
| Filter name | Field type | Option |
| - | - | - |
| Arrival date | Date | Start date/End date |
| Created date | Date | Start date/End date |
| Amount | Number | Start/End date |
| Status | Multi select | Canceled; Failed; Pending; Paid |
## Analytics
| Filter name | Field type | Option |
| - | - | - |
| Date range | Date | Start/End |
| Owner | Multi select | User names |
| Workflow name | Multi select | Workflow names |
| Country | Multi select | Available countries |
| Language | Multi select | Available languages |
| Rating | Multi select | A, B, C, D |
| Saved payment method | Multi select | None + available payment methods |
| Saved payment method status | Multi select | Not applicable/None; Succeeded; Failed |
| Custom fields | | Except for TEXT types |
## Smart rules
### Customer level rules' filters
| **Filter name** | **Field type** | **Option** |
| - | - | - |
| Average payment delay | Number | **Is** minimum/maximum |
| Country | Multi select | Is or Is not |
| Address status | Select | Is or Is not Valid address/Invalid address |
| Amount due | Number | **Is** minimum/maximum |
| Amount overdue | Number | **Is** minimum/maximum |
| Available payment methods | Multi select | Is or Is not |
| Workflow name | Multi select | **Is***selected options* |
| Language | Select | Is or Is not |
| Type | Select | Is/Is not Parent/Standard |
| Custom fields | | Multiple options, based on the field type and values. |
### Invoice level rules' filters
| **Filter name** | **Field type** | **Option** |
| - | - | - |
| Customer | Multi select | Based on existing customers in Upflow. |
| Status | Multi select | Invoices status (up to 8) |
| Due Date | Date | **Is** Start date/End date |
| Issue date | Date | **Is** Start date/End date |
| Payment date | Date | **Is** Start date/End date |
| Outstanding amount | Number | **Is** minimum/maximum |
| Total amount | Number | **Is** minimum/maximum |
| Paid amount | Number | **Is** minimum/maximum |
| Currency | Multi select | |
| Aging bucket | Select | |
| Workflow name | Multi select | |
| Invoice visibility | Select | Is or Is not |
| Custom fields | | Multiple options, based on the field type and values. |
# Your Upflow list views
Source: https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/list-views
Customize Upflow's Customers, Invoices, Contacts, Payments, and Actions list views by rearranging columns, sorting, and filtering to focus on the data you need.
All the elements you can manage on Upflow are listed in their dedicated list view (Customers, Invoices, Contacts, Payments, Actions). You can rearrange them to display the information you are interested in and in your preferred order.
## Display, filter, and sort
Define what you want to see from the top of the page.
* Display items containing keywords populated in the **Search bar** , or from the available [filters](/en-us/upflow-configuration/organization-configuration/filters)\*.
* Select those you want to update simultaneously. The **Export** button in the top-right corner of the page will become **Actions** and offer you different options.
\*For text field filters, you can only filter one value at a time.
Expand the list of available columns by clicking their button next to the *Export* feature.
* Hide/Display them by toggling their names.
* Drag their lines to arrange their order.
Import custom fields from your source systems and add them as filterable columns.
Sort by the property of your choice by clicking on its name.
A summary of the filtered information appears at the end of the list: displayed items, corresponding due or outstanding amount. Hover your mouse over the conversion symbol to break it down per currency.
## Save your custom views
Your filters are reset when you refresh the page. Save those you monitor as views for one-click access.
Click on **Save** in the top left corner to update the view you're currently on, or **Save as new** to create a new custom view. Manage your views (rename, delete) by clicking the three dots next to their name.
Your updates only apply at your account's level and won’t affect your teammates, who cannot access your saved views.
💡 If you want them to review one, share its URL! Then will then be able to Save it on their end!
## Export your views
Your data belongs to you! Download your lists by clicking **Export** in the top right corner of the screen. Pick your preferred format, and there you are! Your (filtered!) items are now on your desktop, available for sharing, uploading, reworking…
Exports follow your view: the filters you applied and the columns displayed are exported, in the same order.
💡 On the Invoices list view, you can also display and export customer data, such as owners, country or customer custom fields. Learn more in [Export my invoices data from Upflow](/en-us/core-entities/invoices/export-invoices-data).
# Manage multiple organizations
Source: https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/manage-multiple-organizations
Create and switch between as many Upflow organizations as your business needs, with each entity managed as its own independent workspace.
In Upflow, you can have as many organizations as your need, based on your business, and the number of entities you wish to manage in Upflow. One entity = one organization.
### Create a new organization
Click on your logo at the bottom of your navigation panel, and hover your mouse over **Switch organization** to display (and click on) ***+ Add organization.***
Name your new organization before clicking on ***Continue***.
Select the tool you want to connect to Upflow, and let us guide you through the process (more on this in the ***Integration*** part of our Help Center!).
Once synced, the new organization will be accessible following the same path you took to create it (click on your logo, and hover over **Switch organization.**)
***
❗Please note your teammates’ accounts are not duplicated, and you’ll need to re-invite those you want to access your new entity!
***
### Change organization
When your company has multiple organizations in Upflow, if you're a user in multiple orgs **with the same email address** , you will be able to easily switch from one to the other.
Click on your logo at the bottom of your navigation panel, and hover your mouse over **Switch organization** to display the list of organization you have access to. Then click the one you wish to access.
Note: a little blue checkmark will remind you of the organization you're currently on.
# Test Mode
Source: https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/test-mode
Configure and preview your Upflow organization safely in Test Mode, where outbound actions are disabled so nothing reaches customers until you go live.
You can use the Test Mode to see how the emails you send from Upflow appear and configure and optimize your organization before going live.
## Understanding test mode
After your data synchronization is complete, your organization will enter **Test Mode** , which is indicated by a banner at the top of your screen:
In Test Mode, all outbound actions are **disabled**:
* **Manual actions** — reminders, calls, letters, and all other actions on the [**Actions**](https://app.upflow.io/organization/-/actions) page cannot be performed.
* **Automatic actions** — workflow, billing, and campaign actions cannot be sent automatically, and cannot be enabled until you go live.
### Testing emails in Test Mode
While in Test Mode, you can still send test emails using the **Send me a test email** button available in workflow steps, templates and campaigns. This lets you preview how your emails look before going live.
**Note:** As test emails are sent to your own inbox, any reply you send will not appear in the customer timeline.
## Go Live
Once ready, you can leave Test Mode by clicking the **Go live** button in the banner.
1. Click **Go live** in the Test Mode banner.
2. Review the confirmation and click **Confirm**.
Going live enables manual actions immediately. Automatic actions remain off — you can enable them separately at any time.
You'll see a confirmation message. The Test Mode banner is replaced by a new banner prompting you to enable automatic actions.
**Note:** While automatic actions are disabled, you cannot perform them manually. You can still ignore them.
### Enable automatic actions after going live
After going live, automatic actions are disabled by default. To enable them:
1. Click **Enable automatic actions** in the banner, or go to [**Settings → Collection**](https://app.upflow.io/organization/-/settings/collection) and toggle on **Enable automatic actions**.
2. Click **Enable** to confirm.
**Note:** once enabled, workflow, billing **will be sent automatically.** Campaigns can now be performed.
*You can disable automatic actions at any time from* [***Settings → Collection***](https://app.upflow.io/organization/-/settings/collection)*.*
## Re-activate test mode
To re-activate the Test Mode, please [submit a Support request](https://support.upflow.io/hc/en-us/requests/new).
You can also disable Automated actions from your Settings > Collection.
# Create user Groups
Source: https://docs.upflow.io/en-us/upflow-configuration/your-teams-access/create-user-groups
Organize Upflow users into groups by job function so you can identify each person's role and assign them collection actions inside your workflows.
Groups allow you to associate the users in Upflow with their jobs. It will enable you to (1) know what each user's job is and also (2) assign them actions in the collection process.
# Managing a group
A group is defined simply by its name.
## Adding a group
To create a group, go to your [Settings > Groups section](https://app.upflow.io/organization/-/settings/groups), hit the **Add** button and fill in its name.
## Editing a group
When you edit a group, only the name can be edited.
All the related users and actions will keep their association.
## Removing a group
To remove a group, you need to ensure no user or action is still assigned to it. If so, we will allow you to transfer them to another group.
# Assigning users to a group
Once you have groups, you can assign users to them from the Users section. You can do the assignment when you invite the user or afterward.
One user can belong to multiple groups.
Once assigned, you will see the groups a user belongs to in the app's various dropdowns. Below is an example on the customer details page:
# Assigning collection actions to a group
Once created, groups will be available as action assignees. When you select which group should be in charge of the action, you can use:
* **Owners** : only the users of that group assigned to the customer will have the action to do. If no user of that group is available, then we fall back on the finance users.
* **All users** : all the users of that group have the action to do, whether assigned to the customer or not. If no user of that group can access the customer, we fall back on the finance users.
If you have any questions, [contact us](mailto:support@upflow.io)!
# Delete users/team members from my organization
Source: https://docs.upflow.io/en-us/upflow-configuration/your-teams-access/delete-team-members
Remove team members from your Upflow organization in the Settings > Users section when a collaborator leaves or no longer needs collections access.
A collaborator is leaving the company or doesn't need to be involved in your collection process?
You can delete their user profile from your Upflow Settings > Users.
### Delete a user's profile
From your Upflow Settings > Users section, click the three dots at the user level, then "Remove":
You should see a green validation at the bottom of the screen.
## I can't delete the user
When trying to delete a user, you might experience diverse errors.
If the user you're trying to delete is still assigned to customers, and/or set in workflow actions, smart rules, the following message will appear, for you to replace them with another user:
Once you selected the user of your choice, click Re-assign & delete:
You will then see the validation at the bottom of your screen:
# Invite and manage your organization's users
Source: https://docs.upflow.io/en-us/upflow-configuration/your-teams-access/invite-and-manage-your-organizations-users
Invite team members to Upflow as an admin, assign the right roles, and update access levels from Settings > Users to keep permissions accurate over time.
Welcoming new joiners, restructuring your team, or handling a colleague’s departure all require updating your users’ access in Upflow.
Keeping your organization’s permissions accurate ensures everyone has the right visibility and actions in the platform.
As an Admin, you can easily manage access levels directly from your Upflow Settings > Users.
# Invite and manage your team
## Create users
From your [Users](https://app.upflow.io/organization/-/settings/users) settings, click Add to create new user profiles.
Enter the email address, permission and role (detailed below in the article), add a group if needed (can be edited later). If you wish to create the user without inviting your teammate right away, untick the dedicated option at the bottom. And save.
### Bulk create/invite your collaborators
If multiple users share the same role, position, and group, you can bulk invite them by adding their email addresses, separated by commas, up to 100:
### Understanding user fields
| **Field** | **Definition** |
| - | - |
| Name & Email address | Displayed throughout the application (@mentions, assignments) and in reminder emails. The display name can be edited by the user only from their Profile section. To edit this email, submit a request at the top.
The address associated with the user’s profile — is used for login, receiving notifications, and sending reminders. |
| Role and position | Define a user’s access to the different parts of your Upflow organization. |
| Groups | Groups the user is part of. See our [dedicated article](/en-us/upflow-configuration/your-teams-access/create-user-groups). |
| Created at | The user’s creation date |
| Last visit | The last time the user logged into Upflow. Blank if never logged yet. |
| Status | • Created: hasn’t received an invite and cannot log in yet. • Invited: received an invite but never logged into their account. • Joined: logged into their account at least once. |
### Search, filter & edit profiles
You can search, filter, and sort your users the way you do other Upflow lists.
You can take action on any user by clicking on the three dots next to their name. Update their Position and/or Group as needed. Click Save. Ask the updated user to refresh their Upflow tab if they’re already logged in, to ensure the new permissions take effect.
Rearrange the columns to see the information you need.
#### Can I edit a user's email address?
If a user's email address changes, you can ask our Support to update their email address [here](https://support.upflow.io/hc/en-us/requests/new), with:
* Current user email address + New email address
Or you can create a new profile with the new email address, reassign the clients to the new profile, and remove the old one.
You might also need to change action owners if specific users are used in workflows (see [here](/en-us/upflow-configuration/your-teams-access/delete-team-members)).
# Roles & Positions
Roles determine what users can access and configure.
Positions define what data they can see and how they interact with workflows.
Let’s break this down.
## Roles Overview
| **Role** | Description |
| - | - |
| Owner | Has full control, including transferring organization ownership. Only one per organization. |
| Admin | Manages configurations (workflows, users, integrations, etc.). Can perform collection reminders. |
| Member | Can act on their assigned customers and execute tasks assigned to them. Cannot configure workflows or settings. |
## Role access matrix
### Roles
| Area | Member | Administrator | Owner |
| - | - | - | - |
| Dashboard | 🟢 | 🟢 | 🟢 |
| Customers | 🟢 | 🟢 | 🟢 |
| Customer details | 🟢 | 🟢 | 🟢 |
| Invoices | 🟢 | 🟢 | 🟢 |
| Transactions | 🟢 | 🟢 | 🟢 |
| Workflows | 🔴 | 🟢 | 🟢 |
| Actions | 🟢 | 🟢 | 🟢 |
| Analytics | 🟡 | 🟢 | 🟢 |
| Profile | 🟢 | 🟢 | 🟢 |
| Users | 🔴 | 🟢 | 🟢 |
| Remove users | 🔴 | 🟢 | 🟢 |
| Payouts | 🔴 | 🟢 | 🟢 |
| Transfer ownership | 🔴 | 🔴 | 🟢 |
🟡 ☝️ Under certain conditions based on the position associated. More information below in the Positions section.
## Actions per role
| Action | Member | Administrator | Owner |
| - | - | - | - |
| Edit user's name | 🟡 | 🟡 | 🟡 |
| Add profile signature | 🟡 | 🟡 | 🟡 |
| Edit user's email address | 🔴 | 🔴 | 🔴 |
| Edit user's role/position | 🔴 | 🟢 | 🟢 |
| Send invitation to users | 🔴 | 🟢 | 🟢 |
| Remove users | 🔴 | 🟢 | 🟢 |
| Transfer ownership | 🔴 | 🔴 | 🟢 |
| Assign a workflow | 🔴 | 🟢 | 🟢 |
| Assign a user | 🔴 | 🟢 | 🟢 |
| Enable/disable payment methods | 🟢 | 🟢 | 🟢 |
| Enable/disable payment options | 🟢 | 🟢 | 🟢 |
| Remove saved payment method | 🟢 | 🟢 | 🟢 |
| Update custom field values | 🟢 | 🟢 | 🟢 |
| Pause collection | 🟢 | 🟢 | 🟢 |
| [Chase outside of planned reminders](/en-us/collection-and-collaboration/run-your-collection/ad-hoc-actions) | 🟢 | 🟢 | 🟢 |
| Send planned reminders | 🟡 | 🟡 | 🟡 |
| Send [Action campaigns](/en-us/collection-and-collaboration/run-your-collection/action-campaigns) | 🟡 | 🟢 | 🟢 |
| Dispute an invoice | 🟢 | 🟢 | 🟢 |
| Add custom field invoice level | 🟢 | 🟢 | 🟢 |
| Add a custom field transaction level | 🟢 | 🟢 | 🟢 |
| Add a promise to pay invoice level | 🟢 | 🟢 | 🟢 |
| Mass action client list view | 🔴 | 🟢 | 🟢 |
| Mass action invoice list view | 🟢 | 🟢 | 🟢 |
🟡 👆 Personal information (name/signature) can only be updated at a personal level from the ***Profile*** section.🟡 👆 Send planned reminders: only if you're the action's owner.🟡 👆 Send action campaigns: available to all, but limited for users that are "Member + Account managers" to the customers they're assigned to.
## Positions
Positions define data visibility and scope of action within Upflow.
| **Position** | Visibility | Access Highlights |
| - | - | - |
| Finance User | Global visibility on all customers. | Accesses all the organization's settings and data. Often serves as a fallback user in product logic (notifications, action ownership). This can generate more notification noise than other positions. |
| Accountant | Global visibility on all customers. | Same as the Finance user, without the fallback logic. |
| Account Manager | Limited to customers assigned to them (if Role = Member). If Admin role, gains access to all data. | Can take actions on assigned accounts (chasing, updating fields, pausing collections). |
### Role/Position combinations Overview
| **Role** | **Position** | **Access** |
| - | - | - |
| Owner/Admin | Finance user or Accountant | All tabs (including Analytics), all settings, all customers and related data. |
| Owner/Admin | Account manager | All tabs (including Analytics), all settings, all customers and related data. |
| Member | Finance user | All customers and related data. Can't access Settings, Workflows, or Smart rules. |
| Member | Accountant | All customers and related data. Can't access Settings, Workflows, Analytics, or Smart rules. |
| Member | Account manager | Only customers they're assigned to and related data. Can't access Settings, Workflows, Analytics, or Smart rules. |
Overall, if the Role is Admin, all three positions give the same access and permissions across the app.
The only differences you can notice will be:
* within workflow action ownership
* nofitifications
* fall back logics in the product - most are linked to the Finance user position
💡 If the owner left the company and their account is no longer accessible, [submit a Support request](https://support.upflow.io/hc/en-us/requests/new). We will gladly help you assign account ownership to a different user.
### Error messages
A limited access can lead to error messages when trying to access a page.
For example, a user with the combination **Member/Account manager**, can't be tagged in a customer/invoice timeline they're not assigned to.
If you share a customer/invoice page URL with them, if they aren't assigned to the related customer, they will see the following error messages:
| | **Insufficient permissions** |
| - | :- |
| You can only view customers assigned to you. | You don't have access to this resource. |
# Customize my Profile Notifications
Source: https://docs.upflow.io/en-us/upflow-configuration/your-user-profile/customize-my-profile-notifications
Tailor your email, in-app, and Slack notifications in Upflow to stay informed about overdue invoices, assigned actions, and other critical collection events.
Notifications ensure you’re informed about critical updates and actions in Upflow. You can tailor these settings to your preferences.
Managing Notifications
### Types of Notifications
* Email Notifications: Receive alerts in your inbox for important events, such as overdue invoices or assigned actions.
* In-App Notifications: Get updates directly within Upflow for real-time alerts on your dashboard.
* Slack Notifications: Receive updates in a dedicated Upflow Slack channel.
Choose your preferred channel(s) for each notification.
### Important
Your notification preferences will be reflected in your profile, in all organizations you're part of, but only apply to you.
## What notifications do I need?
| Name | Can it be disabled | Description | Frequency | Recipients |
| - | - | - | - | - |
| Weekly Updates | 🟢 | Every week, on Monday, mention the amount collected last week and the number of actions performed. | Weekly Mondays | All finance users |
| Actions to perform | 🟢 | Every week, on Tuesday, mention the number of actions to do for each user. | Weekly Tuesdays | All users included in the workflow |
| Mention | 🟢 | You have been mentioned in customer or invoice notes by team members. | When triggered | Mentioned User |
| Promise to pay | 🟢 | A customer has made or updated a promise to pay. | When triggered | Owners, Finance users |
| Invoice dispute | 🟢 | A customer has made or updated dispute information. | When triggered | Owner, Falls back to Finance users |
| Delivery failure notice | 🟢 | Delivery failed because at least one recipient has an invalid email, phone number, or postal address. | When triggered | Action Assignees |
| Email reply | 🟢 | When a reply is imported in the timeline, if it’s coming from an action, we notify the action sender. | When triggered | Action Assignees |
| Letter delivery success | 🟢 | A registered letter you sent has been received. | When notified by our provider | Action Assignees |
| Autopay | 🟢 | Updates on Autopay processing. | When triggered | Owner or Finance users |
| Integration disconnected | 🟢 | One of your integrations was unexpectedly disconnected. | When triggered | All admin users from said organization |
| Data import failure | 🟢 | File import is finished. | When triggered | User who performed the import |
Any additional questions on the Profile section or notifications? Submit your request at the top of the screen!
# Set Up My Profile
Source: https://docs.upflow.io/en-us/upflow-configuration/your-user-profile/set-up-my-profile
Manage your Upflow profile and notification preferences so you stay updated on key collection events and keep your account information accurate.
Your profile and notification settings in Upflow allow you to personalize your experience and stay updated on important events. This guide explains how to manage your profile settings and notification preferences effectively.
## Access my profile
To access your profile, click your organization logo in the bottom-left corner of the screen and select Profile.
You can also access your profile by pressing Cmd (or Ctrl) k on your keyboard. Type "profile" and enter.
## Manage your profile settings
### Update your information
Within your profile settings, you can:
* **Add a signature:** Personalize your communication with a custom email signature. This will be included in your collection email reminders (manual and automated).
* **Set your preferred language:** Choose the default language for your profile to ensure smooth navigation and communications. You can update it at any time from one language to the other.
* **Update your name:** You can also create an alias for the collection process.
#### Update your user's email address
If you need to update your profile's email address, without creating a new/separated profile, contact our Support team [here](https://support.upflow.io/hc/en-us/requests/new), with:
* Current user email address + New email address
### Change your password
For security purposes, you can update your password directly from your Profile:
* Scroll down to the Password section.
* Enter your current password, followed by your new password.
* Confirm the changes by clicking Save.
Or enable Sign in with Google
... at your profile level, for a quick and easy login! This will not impact your teammates, only your profile.
### Set up your notification preferences
Learn more here: [Customize my Profile Notifications](/en-us/upflow-configuration/your-user-profile/customize-my-profile-notifications).
## Important
The user profile is unique to the user, and not to the organization they belong to. If you're part of multiple Upflow organizations/accounts, your profile customization will be reflected across all your accounts:
* Your user name
* Your user signature
* Your notification preferences
* Your language preference
# Set Up my Profile Signature
Source: https://docs.upflow.io/en-us/upflow-configuration/your-user-profile/set-up-my-profile-signature
Personalize Upflow email reminders by adding and managing a professional signature on your profile, reinforcing your brand in every customer message.
Personalizing your email reminders with a signature adds a professional touch and strengthens your brand identity. Upflow makes it simple to add and manage your email signature to ensure consistent communication with your customers.
## Adding your email signature
### Step 1: Access your profile
1. Log in to your Upflow account.
2. Click on your logo in the bottom-left corner of the screen.
3. Select Profile.
### Step 2: Create your signature
#### Gmail:
1. Copy your signature (and images) from the settings of your Gmail Settings
2. Paste your signature into the dedicated field on Upflow
3. Click on Save and wait for the confirmation to pop up
#### Outlook:
If you use Outlook, depending on the logos and attachments in your signature, the result in Upflow might not be as expected due to a limitation from Outlook's format.
If you encounter this issue, you can submit a request at the top with the following:
1. From your Outlook settings, copy your signature (without logos/attachments)
2. Paste it in a Google doc > import the logo from your computer
3. Share the document in your support request, specifying you allow our team to configure your signature.
### Step 3: Save your signature
Review your signature to ensure it appears as intended.
Click Save to finalize your changes.
## Adding a GIF to my signature
If your signature included a GIF, include it as you would an image or a logo as detailed in Step 2 above.
If you experience any issues with adding a functioning GIF to your signature, it can be because the image file is too big. Our provider, Mailgun, doesn't state the exact limits, but anything more than a few megabytes will probably not make it into the inbox of the recipient. Even if it can't be delivered (due to size), the GIF will still be displayed on Upflow in the email signature field.
* Submit a Support request, and share more information on where/how you exported/downloaded this file, as well as mentioning the file size.
## Updating or removing your signature
#### To make changes or remove your signature:
1. Return to the Email Signature section in your profile.
2. Edit or delete the existing signature as needed (**text only - same format as the line you edit**).
3. If the format is more specific, **reset** the signature and paste the entire new format for Gmail\*. For Outlook, please follow the creation process above.
4. Save your updates.
\*If you need to add attachments not present in your Gmail signature, please follow the same process as for Outlook above.
## Important
The user profile is unique to the user, and not to the organization they belong to. If you're part of multiple Upflow organizations/accounts, your profile signature will be reflected across all your accounts.
# What language is used across Upflow?
Source: https://docs.upflow.io/en-us/upflow-configuration/your-user-profile/ui-language
Choose between English (US), English (UK), and French (FR) for your Upflow app interface, and learn how dates, amounts, and tags adapt by language.
Across countries and languages, dates and amounts have different formats. Using the wrong format may confuse your contacts and add friction to the payment process. This is why we offer different languages across the app, depending on the situation.
## Your app language
Selectable in [your Profile](https://app.upflow.io/organization/-/profile/general), it allows you to choose between English (US), English (UK) or French (FR). It will impact all the data you see in the app, excluding the custom tags or the portal.
## Collection keys/tags language
When you use a [collection tag](/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter) like "Today" or "Carrying invoice due date", we look for the best format for your customer.
Indeed, you can have your app in English (US), but work with customers in the UK who could be confused by the 5/22/2025 date.
Today, we rely on the customer's outstanding invoice currency and the following rules:
**Date format**
| If the customer only has USD outstanding invoices... | ...then we use the American format `MM/DD/YYYY`... | ...if any other currencies, we apply the French format `DD/MM/YYYY` |
| - | - | - |
| | | |
**Amount format**
| If the customer only has EUR outstanding invoices... | ... then we use the FR format `3 234,12€`... | ...if any other currencies, we apply the American one `\$3,234.12` |
| - | - | - |
| | | |
## The portal language
On the portal, we use the viewer browser location (`en_US`, `en_GB`, `fr_FR`). If the browser location is not supported, then it falls back to `en_US`.
Any questions? [Contact us](mailto:support@upflow.io)!
# Apply bank transactions to invoices
Source: https://docs.upflow.io/en-us/cash-application/application-logic/apply-bank-transactions-to-invoices
Match unapplied bank transactions to the invoices they pay using Upflow's matching interface — link a customer, select invoices, and apply payment in one modal.
Cash application is the process of matching a bank transaction to the invoices it pays. Upflow's matching interface lets you work through your Unapplied transactions one by one, link each one to a customer, select the relevant invoices, and apply the payment — all in a single modal.
When the match is clear, the [Cash App agent](/en-us/cash-application/cash-app-agent) can apply transactions for you automatically.
## Open the matching interface
From the [**Bank transactions**](https://app.upflow.io/organization/-/bank-transactions) page, click the blue **Apply** button in the top-right corner to open the matching interface for all Unapplied transactions in the selected bank account.
The matching interface opens as a modal with two panels:
* **Left panel** — the list of all Unapplied transactions for this bank account, sorted by posted date (newest first). Use the search bar or the sort dropdown to navigate.
* **Right panel** — the matching workspace for the currently selected transaction.
The left panel shows the total Unapplied amount and currency for the bank account at the top. Clicking a transaction in the list loads it in the right panel.
> 👉 You can also open the matching interface for a single transaction by clicking the small **Apply** button on that row in the list. This opens the same modal without the left-hand transaction list.
## Match a transaction
### Step 1 — Review the transaction details
At the top of the right panel, you can see the transaction's **date** and **description** as provided by your bank feed. These are the clean, human-readable fields from your bank provider.
The header also shows the transaction's **payment method** and **check number** when they're known. Both fields are also available as columns on the [**Bank transactions**](https://app.upflow.io/organization/-/bank-transactions) list; they aren't shown by default, so add them from the column picker if you want them there.
### Step 2 — Select a customer
Use the **customer dropdown** to link the transaction to a customer. Start typing to search across all your customers.
Once you select a customer, the invoice table loads with their outstanding invoices. The interface switches to the **Suggested** tab if a match was automatically proposed.
> 👉 If you want to link the transaction to a customer but not apply it to any invoice yet, click **Match customer only** at the bottom of the modal. The transaction will be synced to your accounting system as an Unapplied customer payment.
### Step 3 — Select invoices
Switch between tabs to find the invoices you want to apply:
* **Invoices** — all outstanding invoices for the selected customer, with search and filter options
* **Selected** — invoices you have already selected in this session
* **Suggested** — invoices automatically proposed by Upflow based on the transaction amount and customer
To apply an amount to an invoice:
1. Click the **→** arrow button on an invoice row to automatically fill in the outstanding amount.
2. Or type a custom amount directly in the **Amount to apply** field.
The footer shows a running total: **amount selected** / **remaining to apply**, so you always know how much of the transaction is still unallocated.
### Step 4 — Apply
Once you have selected your invoices and entered amounts, click the apply button in the footer:
* **Apply fully** — when the selected amount equals the full transaction amount (€0.00 remaining)
* **Apply partially** — when the selected amount is less than the full transaction amount
* **Match customer only** — when no invoices are selected but a customer is linked
After clicking, Upflow applies the transaction and automatically moves to the next Unapplied transaction in the left panel list.
## Exclude a transaction
If a transaction is not relevant to accounts Receivable (for example, a payroll transaction or an accounts Payable payment), click **Exclude** at the bottom of the left panel. Excluded transactions are hidden from the Unapplied list and will not be synced to your accounting system.
## Transaction statuses
| Status | Meaning |
| - | - |
| **Unapplied** | The transaction has not been applied to any invoice. Applied amount = €0. |
| **Applied** | The transaction has been fully applied. Applied amount = transaction amount. |
| **Auto-applied** | The transaction has been fully applied by the [Cash App agent](/en-us/cash-application/cash-app-agent). |
| **Excluded** | The transaction has been marked as irrelevant to accounts Receivable. |
A transaction must be linked to a customer before it can be synced to your accounting system as a customer payment. If no customer is linked, the transaction will not be synced.
## Edit an applied transaction
To update a transaction that has already been applied, click the **Apply** button on that row in the bank transactions list. The matching interface opens in edit mode, defaulting to the **Selected** tab showing the invoices that were applied.
You can change the applied amounts, add or remove invoices, or change the customer. When you click **Update**, a confirmation modal will appear describing the impact on your accounting system before the change is saved.
# Review match suggestions
Source: https://docs.upflow.io/en-us/cash-application/application-logic/review-match-suggestions
Review Upflow's automatic transaction-to-invoice match suggestions and approve them in a single click instead of searching customers and invoices manually.
When a new bank transaction is imported, Upflow automatically analyzes it and tries to identify the most likely customer and invoice match. If a suggestion is found, it is surfaced directly in the [**Bank transactions**](https://app.upflow.io/organization/-/bank-transactions) list and pre-filled in the matching interface — so you can approve it with a single click instead of searching manually.
When the match is clear, the [Cash App agent](/en-us/cash-application/cash-app-agent) can skip the review step and apply the transaction for you automatically.
## Identify transactions with suggestions
In the [**Bank transactions**](https://app.upflow.io/organization/-/bank-transactions) list, the **Suggestions** column shows a badge with the number of suggested invoice matches for each transaction.
A badge of **+1** means Upflow found one suggested invoice match. Transactions without a badge have no suggestion and must be matched manually.
## Review and approve a suggestion
1. In the [**Bank transactions**](https://app.upflow.io/organization/-/bank-transactions) list, click the **Apply** button on a transaction that has a suggestion badge.
The matching interface opens with the **Suggested** tab active. The suggested invoice is listed, along with the matched customer and the invoice amount.
2. Click the **→** arrow button on the suggested invoice row to fill in the outstanding amount.
Upflow auto-fills the customer dropdown and the amount to apply, and moves the invoice to the **Selected** tab. The footer updates to show the total selected and remaining amount.
3. Click **Apply fully** to apply the transaction.
> 👉 If the suggested amount does not match the full transaction amount, the button will read **Apply partially** instead.
## Override or ignore a suggestion
If the suggestion is incorrect, you can switch to the **Invoices** tab and select the right customer and invoices manually. The suggestion is not applied unless you click **Apply**.
Switching tabs does not delete the suggestion — if you come back to the **Suggested** tab later, the original proposal is still there.
## How suggestions are generated
Upflow runs a matching algorithm each time a new bank transaction is imported. Suggestions are built using the following information:
* The transaction memo and any invoice reference numbers it contains
* The payer name, matched against your customer names
* Your previous cash application history for the same payer
* The transaction amount, compared against outstanding invoice amounts
The higher the quality of the match, the more confident the suggestion.
# Connect your bank account for automatic transaction import
Source: https://docs.upflow.io/en-us/cash-application/bank-feed/connect-your-bank-account-for-automatic-transaction-import
Set up a bank feed in Upflow to import transactions automatically every day through Plaid, with duplicate detection and no manual file uploads required.
To perform Cash Application, Upflow needs access to your bank transactions on a regular basis. Rather than manually uploading files, you can connect your bank account directly to Upflow for automatic daily imports — this is called a **bank feed**.
👉 Bank feeds are the recommended way to import bank transactions into Upflow. Once set up, transactions sync automatically every day with no manual effort required.
## How it works
Upflow uses **Plaid**, a trusted third-party service, to securely connect to your bank. Once your bank account is linked:
* Transactions are imported automatically, at least once per day.
* Duplicate transactions are detected and filtered out.
* The **payment method** is derived from the details your bank sends, and the **check number** is imported for check transactions. Bank data isn't standardized, so neither is guaranteed — a transaction Upflow can't classify simply arrives without a payment method.
* You no longer need to download or upload files from your bank.
This connection uses a secure OAuth flow — Upflow never sees your banking credentials.
The payment method and check number follow the transaction all the way to your accounting system when you apply it to invoices. If you use NetSuite, map your payment methods once so they export correctly — see [Payment method mapping](/en-us/integrations/netsuite/payment-method-mapping).
## Connect your bank account
1. Go to [**Settings > Cash Application**](https://app.upflow.io/organization/-/settings/cash-application).
2. In the **Bank and accounts** section, click **Add bank or account** and select your region.
3. The Plaid connection window opens. Select your bank and follow the on-screen steps to authenticate via your bank's secure login.
4. Select the account(s) you want to import transactions from and confirm.
Once connected, transactions will start syncing automatically.
## Check if your bank is supported
Plaid connects to over 12,000 financial institutions. The easiest way to check if your bank is supported is to start the connection flow in Upflow — the Plaid window includes a search bar where you can look up your bank by name.
If your bank does not appear in the search results, it is not currently supported for automatic import. In that case, you can still [import transactions manually from a CSV file](/en-us/cash-application/csv-import/upload-bank-transactions).
👉 If you're having trouble connecting, visit [Plaid's troubleshooting page](https://plaid.com/trouble-connecting/) for common issues and fixes.
## Manage your bank connection
From [**Settings > Cash Application**](https://app.upflow.io/organization/-/settings/cash-application), you can:
* **View** your active bank connections and their sync status.
* **Edit** or update connection details.
* **Disconnect** a bank account if it is no longer needed.
## Link bank accounts to GL accounts
Each bank account can be mapped to a GL account from your chart of accounts. This mapping tells Upflow which ledger account to use when syncing applied transactions back to your accounting system.
To assign a GL account, click the dropdown next to the relevant bank account and select the appropriate GL account. Click **Save** to confirm.
## What happens if my bank connection is lost?
In some cases, your bank connection may become inactive — for example, if your bank refreshes its security tokens or requires re-authentication. If this happens:
* A banner will appear on your bank transaction screen indicating that the connection is unauthorized.
* Click **Reconnect** in the banner to be taken to the Cash Application settings page, where you can re-authenticate via Plaid's secure OAuth flow.
👉 If you need help setting up or reconnecting your bank account, reach out to [support@upflow.io](mailto:support@upflow.io).
# Cash App agent
Source: https://docs.upflow.io/en-us/cash-application/cash-app-agent
Learn how Upflow's Cash App agent auto-applies bank transactions to invoices when matches are unambiguous, and which transactions stay as suggestions.
The Cash App agent automatically reconciles bank transactions to your invoices when the match is clear — so your team only has to step in when a decision actually needs to be made.
The agent is conservative by design: it only acts on the safest matches. Anything ambiguous still surfaces as a suggestion for review.
## What the agent applies
The agent applies a transaction only when it can confidently link it to a single open invoice in your account. If there's any doubt — multiple possible candidates, an amount that doesn't line up, an unfamiliar payer — the transaction stays as a suggestion for you to review and apply manually.
## What the agent never applies
These transactions are never applied automatically by the agent:
* Transactions explicitly **excluded** by you or by a smart rule
* Transactions **older than 90 days** at the time of import
* Transactions that were previously auto-applied and then **Unapplied** — they won't be picked up again
* Transactions where the invoice is already marked as paid in your accounting system
The agent only runs on bank transactions as they are imported (or updated by a sync). Turning the setting on does **not** retroactively apply your existing backlog of unapplied transactions — those stay as suggestions until you act on them.
## Enable the agent
The agent is controlled by a single admin setting at the organization level.
1. Go to [**Settings → Cash application**](https://app.upflow.io/organization/-/settings/cash-application).
2. Toggle **Enable the Cash App agent** to ON, then click **Save**.
3. The next time a bank transaction is imported, the agent will evaluate it.
This setting is admin-only and applies to the whole organization. Turning it off does not revert past auto-applications — only new incoming transactions stop being auto-applied.
## Identify auto-applied transactions
Auto-applied transactions have a distinct **Auto-applied** status, separate from the regular **Applied** status used for transactions you've applied manually.
On the [**Bank transactions**](https://app.upflow.io/organization/-/bank-transactions) page, you can filter the list to see only auto-applied transactions using the pre-built **Auto-applied** saved view in the views dropdown.
You can also filter manually: click **Filter → Status → Auto-applied**.
## Sync to your accounting system
Auto-applied transactions sync to your accounting system the same way as manually applied ones. On NetSuite, the synced payment carries a memo: **"Auto-applied by Upflow"**, so your finance team can tell at a glance which payments were applied by the agent.
## Unapply an auto-applied transaction
If the agent applied a transaction incorrectly, you can revert it in one click — the flow is the same as for manually applied transactions.
1. From the [**Bank transactions**](https://app.upflow.io/organization/-/bank-transactions) page, click **Edit** on the auto-applied transaction.
2. Uncheck the invoice in the matching panel.
3. Click the red **Unapply** button in the footer, then confirm.
Once a transaction is unapplied, the agent will **not** apply it again, even if the match would still be valid. To re-apply it, you'll need to do so manually.
## Related articles
* [Apply bank transactions to invoices](/en-us/cash-application/application-logic/apply-bank-transactions-to-invoices)
* [Review match suggestions](/en-us/cash-application/application-logic/review-match-suggestions)
* [Connect your bank account for automatic transaction import](/en-us/cash-application/bank-feed/connect-your-bank-account-for-automatic-transaction-import)
# Import bank transactions via CSV
Source: https://docs.upflow.io/en-us/cash-application/csv-import/upload-bank-transactions
Manually upload bank transactions into Upflow from a CSV file when your bank isn't connected through a bank feed, with column mapping and an import history to track every upload.
To perform Cash Application, Upflow needs your bank transactions on a regular basis. When your bank can't be connected through an automatic [bank feed](/en-us/cash-application/bank-feed/connect-your-bank-account-for-automatic-transaction-import), you can still bring your transactions in by uploading a CSV file you exported from your bank.
This guide covers how to format your file, upload it, map its columns to Upflow fields, and check the result.
If your bank is supported by our [bank feed](/en-us/cash-application/bank-feed/connect-your-bank-account-for-automatic-transaction-import), connect it instead — transactions then sync automatically every day with no manual upload.
## Before you start
You need at least one bank account set up in Upflow to receive the imported transactions. You can review and add bank accounts from [**Settings > Cash Application**](https://app.upflow.io/organization/-/settings/cash-application). When you start an import, you'll choose which of these accounts the transactions belong to.
## Prepare your CSV file
Export your transactions from your bank as a CSV file, then make sure it includes the columns Upflow needs. **Each row is one transaction.**
**Required columns**
| Column | Details | Example |
| - | - | - |
| External ID | A unique identifier for each transaction. Upflow uses it to recognize transactions and avoid creating duplicates. Free text. If there is none in your bank export, you will need to create one (e.g. concatenate transaction date and amount). | `TXN-10024` |
| Transaction date | The date the transaction occurred. Use the `YYYY-MM-DD` format. | `2026-06-02` |
| Amount | The transaction amount. Use a period (`.`) for decimals, with no currency symbol and no thousands separator. | `1250.00` |
**Optional columns**
| Column | Details | Example |
| - | - | - |
| Posted date | The date the transaction was posted to your account. Use the `YYYY-MM-DD` format. | `2026-06-03` |
| Currency | The transaction currency, as a three-letter ISO code. If omitted, the currency of the selected bank account is used. | `EUR` |
| Description | The transaction description from your bank. Helps you and the [Cash App agent](/en-us/cash-application/cash-app-agent) match it to an invoice. Free text. | `Invoice INV-4471 payment` |
| Counterparty name | The name of the payer as provided by your bank. Free text. | `ACME Corp` |
| Payment method | How the transaction was paid. Must be one of: `CARD`, `WIRE_TRANSFER`, `DIRECT_DEBIT`, `CASH`, `CHECK`. | `WIRE_TRANSFER` |
| Check number | The check number, when the transaction was paid by check. Free text. It can also be used to export the bank transaction reference. | `1042` |
Your bank doesn't provide a unique transaction reference? Build your own External ID by combining the transaction's date, amount and description into a single value, and use that column in your file.
**Only credit (incoming) transactions are imported.** To keep your reconciliation accurate, Upflow imports incoming transactions only — any debit transaction in your CSV is ignored.
Your file must be a `.csv` and smaller than 20MB.
## Import your file
1. From the [**Bank transactions**](https://app.upflow.io/organization/-/bank-transactions) page, click **Import bank transactions** in the top-right corner and select **Import transactions (.CSV file)**.
2. In the **Import transactions** window, choose the **Bank account destination** — the account these transactions belong to.
3. Open the dropdown to pick the relevant bank account.
4. Drop your CSV into the upload zone or click **Select file** to choose it from your computer, then click **Import**.
## Map your columns
After uploading, the **Match properties** step shows a sample of your file. For each column, choose which Upflow field it corresponds to — you don't need to map every column, only the ones you want to import.
* Keep **This file contains headers** checked if your CSV's first row contains column titles.
* The **External ID**, **Transaction date** and **Amount** fields are required. They appear under **Required columns** and must each be matched before you can continue.
* Once your required columns show **Matched**, click **Submit**.
Your transactions are imported into the selected bank account and appear in your **Unapplied** list, ready to be [matched to invoices](/en-us/cash-application/application-logic/apply-bank-transactions-to-invoices).
## Check your import history
To review your past uploads, click **Import bank transactions** and select **Import history**. This list shows every file you've uploaded, who imported it, and the result.
Each row shows the file's **Status**, along with how many transactions were **Created** and **Updated**:
* **Success** — the file was processed and its transactions imported.
* **Failure** — the file couldn't be processed. Review the error, correct your file, and upload it again.
Because Upflow recognizes transactions by their **External ID**, re-uploading a corrected file won't create duplicates — transactions that already exist are updated rather than added again.
Need a hand with a failed import or your file format? Reach out to [support@upflow.io](mailto:support@upflow.io).
# Notify my team in Upflow
Source: https://docs.upflow.io/en-us/collection-and-collaboration/collaboration/notify-your-team
Use @mentions in Upflow to ping colleagues across Finance, Sales or C-level teams and keep internal cash collection conversations logged on the customer timeline.
Cash collection can involve many teams at different levels: Finance and Accounting departments, Sales and Account Management, and even C-levels.
Different teams are likely to use different tools; and will not be tracking Upflow if they only need to pop in occasionally. Make sure they do not miss any information and are involved at the right moment using our @mention feature!
In short, it allows you to ping another user of your Upflow platform without switching to another tool, and keep everything (including internal conversations) logged on your customer’s timeline!
## How does it work and what does it look like?
The magic starts in your customer timeline. As long as the teammate you want to loop in or ask to intervene has an Upflow account, you can tag them, by clicking on *Add note*
* at your customer level
* at an invoice level
Your mentioned team members will then be notified
* in app, systematically
* by e-mail, if the notifications are not disabled
* via slack, if the integration is enabled
## My teammate is not available to tag
If you're trying to mention a teammate into a customer timeline, but their name is not available to tag, it can be due to two reasons:
1 - The user status must be "Joined", otherwise, they will not be available to be mentioned. Head to your Settings > Users list view and check this user's status.
2 - If they're a Member + Account manager (the most limited combination), this person will need to be assigned to the customer to be mentioned/tagged into their timeline, as this combination only allows access to customers assigned to the user.
***
❗ You can edit a note with an @mention. However it will not retroactively trigger a notification. Better safe than sorry, if you need to get somebody’s attention, just add a second note!
***
# Templates
Source: https://docs.upflow.io/en-us/collection-and-collaboration/collaboration/templates
Reuse predefined action content across workflows and campaigns in Upflow, so updating a template instantly applies to every linked email, task, call, SMS or letter.
Templates let you define the content of an action once — subject line, message body, recipients, attachments — and reuse it across your workflows and campaigns. When you update a template, every action referencing it reflects the change automatically, so you don't have to update the same wording in multiple places.
## What is a Template?
A template is a reusable preset for an action. It stores the default content for a given action type (email, task, call, SMS, or letter) and can be linked to workflow steps or applied to campaigns.
The key benefit: **edit the template once, and everything that references it updates** — instead of manually updating the same content across multiple workflow steps.
## When is it useful?
Templates are helpful when:
* Your team regularly sends similar emails and wants to avoid rewriting them each time
* You want consistent wording across all actions of the same type
* Multiple workflows need to share the exact same email content
* You want to update a recurring message in one place and have it apply everywhere
## How to create a Template
### From scratch
Use this approach when you're setting up Upflow for the first time, or if you want to create a new workflow or update one or multiple existing ones.
**1. Go to** [**Menu > Templates**](https://app.upflow.io/organization/-/settings/action-content-templates)
Click your company logo in the left sidebar, then select **Templates**.
**2. Create a new template**
Click **New template** in the top right. A panel will open where you can configure the template.
**3. Fill in the template fields**
Depending on the action type, you can define:
* **Name** — used to identify the template across workflows and actions
* **Type** — Email, Task, Call, SMS, or Letter
* **Assignees** — the team members responsible for actions using this template
* **Content** — subject line, message body, attachments, recipients, and other type-specific fields
**4. Save**
Click **Save**. The template is now available to use in your workflows and campaigns.
### From an existing workflow action template
Use this approach if you're already using Upflow and want to turn a workflow action template you've already written into a reusable template.
**1. Go to** [**Menu > Workflows**](https://app.upflow.io/organization/-/settings/action-content-templates)
Open the workflow that contains the action template you want to save as a template.
**2. Open the action editor**
Click the action to open its editor.
**3. Check "Save as template"**
Below the **Name** field, check the **Save as template** checkbox. This option only appears if the action isn't already linked to a template.
**4. Save**
Click **Save**. The action's content is now saved as a template and available across your organization. The "Save as template" checkbox will no longer appear — instead, you'll see **Edit template** and **Detach template** buttons, indicating the action is now linked to a template.
**Note:** Templates can be copied to another organization via **Duplicate to** action in the template menu. This is a manual one-time copy — it does not sync future changes across orgs.
## How to use a Template
### In your workflows
When editing a workflow action template, a **Template** dropdown appears at the top of the action editor. Select a template to apply it.
Once a template is selected:
* All content fields (subject, body, recipients, attachments) are **pre-filled and locked** — they reflect the template content and cannot be edited directly from the workflow
* Click **Edit template** to update the template itself — this affects all action templates referencing it
* Click **Detach template** to unlink the action template and edit it independently, without affecting the original template
*⚠️ If a template is used in automated workflow steps, the **From** field cannot be set to "Current user". Use a specific sender, alias, or group instead.*
### In manual actions
When setting up a campaign or performing a manual action, a **Template** dropdown appears at the top of the action form. Selecting a template pre-fills the content, you can still customize the content if needed.
## Managing Templates
Go to [**Menu > Templates**](https://app.upflow.io/organization/-/settings/action-content-templates) to see all templates in your organization. From there you can:
* **Search** by name or filter by type (Email, Call, SMS, etc.)
* **Edit** a template — changes apply to all workflow steps and campaigns using it
* **Duplicate** a template to use as a starting point for a variation
* **Delete** a template — if it's used in workflow steps, you'll be asked to reassign those steps first
## Testing an email template
For email templates, you can send a test email to yourself to preview what your customers will see. Open the template and click **Send me a test email**.
## FAQ
**Can I use variables or placeholders in a template?**
Yes — you can use [collection tags](/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter) (such as customer name or invoice amount) in the subject and body fields. Tags are resolved when the action is created or sent.
**What if I want to change a template?**
Edit it anytime from [**Menu > Templates**](https://app.upflow.io/organization/-/settings/action-content-templates). Changes will apply to all workflows and campaigns that reference it — existing sent actions are not affected.
**Can I have multiple templates for the same action type?**
Yes. You can create as many templates as you need, each with a different name and content. Each workflow action or campaign references one template at a time.
**What happens if I detach a template from a workflow action?**
The action keeps its current content but is no longer linked to the template. Future changes to the template won't affect it.
# Action emails not delivered
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/action-emails-not-delivered
Investigate failed Upflow reminder emails using the Team Activity analytics view, count delivery failures per month and identify the root causes behind them.
In your Analytics list view, access your Team Activity saved view:
Scroll down to the "Action email not delivered" widget to see how many emails failed for each month.
## Understand the data
Clicking on each bar will redirect you to the Contacts list view, which has the filter "Email status = Invalid email."
Please note that the number of contacts displayed under this filter might not match the number of emails not delivered in the Analytics widget.
This can be due to:
* multiple emails failed to be delivered for the same contact;
* a contact marked as invalid at the time the email was sent is now valid.
Check our article [Invalid emails](/en-us/core-entities/contacts/invalid-emails) to handle invalid email addresses.
## Export the data
To have a detailed view of this widget, you can export it (CSV/Excel):
The default view will be as follows:
Here are a few tips to see all emails and reasons on individual lines.
1. Select a spreadsheet and click relevant cells.
2. Go to Data and open Split text to columns.
3. Click Separator and open Custom.
4. Type @, and Google Sheets splits the username and domain name.
Now, all address emails are in different cells but horizontally.
To get a vertical display, copy the cells with the addresses, then choose the cell where you want the transposed data to start. Right-click on the chosen cell, navigate to "Paste special," and select "Transposed."
## Microsoft Exchange "Direct Send" rejections
When an email is sent from Upflow, where both the sender and recipient share the same email domain and their mailboxes are hosted in Outlook (Exchange Online) with Direct Send disabled, the message is rejected.
This is caused by Microsoft's [Direct Send](https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365#option-2-send-mail-directly-from-your-printer-or-application-to-microsoft-365-or-office-365-direct-send) feature, which blocks emails sent on behalf of your domain by a third-party service.
This is not an Upflow-side issue: the same behavior is documented by other providers, e.g. [Salesforce](https://help.salesforce.com/s/articleView?id=000389721\&type=1).
### How to resolve it
Your IT team needs to allow Upflow as an authorized sender in the Microsoft 365 / Exchange settings. They should contact Microsoft Support or follow the [official Microsoft guidance](https://learn.microsoft.com/en-us/exchange/mail-flow-best-practices/how-to-set-up-a-multifunction-device-or-application-to-send-email-using-microsoft-365-or-office-365) to review their Direct Send configuration.
Setting up [your own sending domain](/en-us/collection-and-collaboration/emails/sending-emails-configure-your-domain) in Upflow does not resolve this — the rejection happens on the recipient's Exchange tenant, not on the sender's side.
# Collection agents
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/collection-agents
Let an AI collection agent handle inbound customer emails in Upflow — reply, log promises to pay and raise disputes.
A collection agent helps you handle inbound customer emails directly in Upflow. Instead of reading, deciding and writing every reply by hand, you set up an agent, choose how much autonomy it has, and assign it to your workflows.
Each agent has three skills — **Replies**, **Promise to pay** and **Disputes** — and you decide, skill by skill, whether the agent stays out of the way, prepares suggestions for you to review, or acts on its own.
You manage agents from the [**Collection agents**](https://app.upflow.io/organization/-/settings/collection-agents) settings page.
## Before you start
Collection agents act on the replies that land in your Upflow inbox, so you first need to be managing replies in Upflow. If you haven't already, turn on **Handle replies in Upflow** and set up reply import — see [Manage your customers' replies in Upflow](/en-us/collection-and-collaboration/emails/manage-customer-replies).
Only **admin** users can create and configure collection agents.
## What a collection agent can do
An agent is made up of three skills. Each one works on the inbound emails matched to a customer in your Upflow inbox:
* **Replies** — handles inbound customer emails in the AR Inbox by drafting or sending a response.
* **Promise to pay** — detects when a customer commits to a payment date and creates a promise to pay from the email.
* **Disputes** — detects when a customer contests an invoice and creates a dispute from the email.
## Autonomy modes
Each skill runs at one of three autonomy levels. You set them independently, so a single agent can, for example, only suggest replies while automatically logging promises to pay.
| Mode | What the agent does |
| - | - |
| **Off** | The agent does nothing for this skill. The action behaves exactly as it does today. |
| **Suggestions only** | The agent prepares the work — a drafted reply, or a detected promise to pay or dispute — and leaves it for you to review, edit and confirm. Nothing is sent or created without you. |
| **Auto-mode** | The agent acts on its own — sends the reply, or creates the promise to pay or dispute — without waiting for you. |
When a skill is in **Auto-mode**, the agent only executes automatically when it is confident. If there is any doubt, then it will act as if it was in the **Suggestions-only mode**, so you can take over. Emails that don't need an answer — a simple "thanks", for example — are left alone.
## Create a collection agent
1. Go to [**Collection agents**](https://app.upflow.io/organization/-/settings/collection-agents) in your settings.
2. Click **New agent**.
3. Give the agent a **Name** and pick an **Avatar** colour. The name and avatar are how the agent's actions are identified across Upflow, so choose something recognisable (for example, the segment it serves).
4. Under **Agent skills**, set a mode for each of **Replies**, **Promise to pay** and **Disputes**.
5. (Optional) Add **Custom instructions** for the **Replies** skill to steer the agent's tone and content — see [Custom instructions](#custom-instructions) below.
6. (Optional) Keep **Pause collection when creating a promise to pay** enabled so that reminders stop for a customer once the agent logs a promise to pay. This is on by default.
7. Click **Save**.
Once saved, the agent appears in your list with a summary of its modes — **Auto-mode**, **Suggestions only**, or **Mixed modes** when its skills use different levels — and the number of workflows it's assigned to.
## Assign an agent to a workflow
An agent only starts working once it's attached to a workflow. Workflows decide which customers each agent handles.
1. Open the workflow you want the agent to run on, from [**Settings > Workflows**](https://app.upflow.io/organization/-/settings/workflows).
2. In the **Collection agent** block at the top of the workflow, open the agent picker.
3. Choose an agent from the list — or select **No agent** to remove one. You can also create a new agent from here.
You can assign the same agent to as many workflows as you like, but a workflow can only have one agent at a time. The **Collection agent** column in your [Workflows](https://app.upflow.io/organization/-/settings/workflows) list shows which agent each workflow uses at a glance.
## Review a suggested reply
When the **Replies** skill is in **Suggestions only** mode, the agent drafts a reply and leaves it for you — it never sends on its own. You'll find the draft in the reply action, alongside your other actions in the [Actions](https://app.upflow.io/organization/-/actions) list.
Open the action and the draft appears in the **Email** composer. A banner names the agent that wrote it, and the recipients, subject and message are pre-filled.
From here you can:
* **Edit** the draft — adjust the wording, recipients or subject before you send.
* **Send** the reply as it stands once you're happy with it.
* **Ignore** the action if no reply is needed.
The banner always shows which agent produced the draft (above, an agent named *Suggestion only*), so it's clear when a reply was written by an agent rather than a teammate.
## Custom instructions
The **Replies** skill accepts free-text **custom instructions** that run alongside Upflow's own guidance whenever the agent drafts a reply. Use them to set the tone, spell out how to handle recurring situations, or tell the agent when to hand a conversation back to a human.
### Auto-generate instructions
If you'd rather not write custom instructions from scratch, click **Auto-generate instructions** below the instructions box. Upflow reads the past six months of email conversations you've had with your customers and drafts instructions that reflect how your team already replies — the tone you use, the situations that come up, and the way you handle them.
The generated text fills the **Custom instructions** field, ready for you to review and edit before you click **Save**. Running it again replaces the current text, so tweak what's in the box after generation rather than regenerating if you want to keep your edits.
## Good to know
* **You stay in control.** In **Suggestions only** mode, nothing is sent or created until you confirm it. Agent actions appear in your timelines and actions list just like manual ones, identified by the agent's name and avatar.
* **The agent works from what's in Upflow.** Its answers are based on the customer, invoice and conversation data available in Upflow, which is why it won't reply when it isn't confident.
* **Sender address.** In **Auto-mode**, replies are sent from the alias the customer originally wrote to. If the recipient address isn't a recognised alias in your organization, the reply is left as a manual action for you to send.
* **Deactivating an agent.** Removing an agent from a workflow stops it from acting on that workflow's customers; the workflow keeps running its reminders as normal.
# Connect to a custom SMTP server
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/connect-to-a-custom-smtp-server
Send Upflow reminders through your own SMTP server when Mailgun is not an option, with authentication steps and details on the email-tracking limitations involved.
You can send emails by using your own SMTP server. This is convenient if you can't use your domain and subdomain with Mailgun. However, the emails won't be tracked by Upflow.
## Choose "Connect to your SMTP server"
In the **Deliverability** section of your **Settings**, click on "Connect to your SMTP server"
## Authenticate with your SMTP server
Complete the required fields to set up the SMTP server.
## Last step
Then you simply need to save those fields. While saving, we will make sure we can properly access your server. Once the records are saved, all the emails will be sent from your own email address.
# Deliverability - HTTPS links
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/deliverability-https-links
Ensure outbound Upflow emails use HTTPS links to improve deliverability, verify your DNS records in the Deliverability settings and fix issues if they are invalid.
To improve the deliverability of your emails and the links you send to your customers, HTTPS links are enabled by default, as long as your DNS is properly configured.
You can check this from your [Deliverability settings](https://app.upflow.io/organization/-/settings/domain/dns).
If you see the following message, it means one of your DNS records might be invalid:
If you do not see an invalid record, click *Verify your domain*, and it should appear.
Contact your IT team or the person in charge of your domain, for them to update the configuration (cf. [Sending emails - Configure your domain](/en-us/collection-and-collaboration/emails/sending-emails-configure-your-domain).
Once done, you can click *Verifiy your domain*, and the record should move back to *Verified.* The HTTPS links should then be enabled again, ensuring a better deliverability for your customers, and smoother access to customer portal links.
# Draft email replies automatically with Upflow's AI
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/draft-email-replies-automatically-with-upflows-ai
Generate context-aware reply drafts to customer emails directly in Upflow with Suggested Replies, then review, customize and send without rewriting from scratch.
Tired of manually writing replies from scratch to your customers day after day? This time is over. With Upflow Suggested Replies, you can ask your AI assistant to help you write your emails.
No need to start from scratch. Just click, review, customize, and send.
## How does it work
1. Open a customer reply in your Actions list view > To do.
2. Click the “**AI editor**” button
3. Upflow generates a suggested response based on:
👉 Your customer’s message
👉 Their invoice(s) and collection status
👉 Their Upflow portal link
4. Review, click **Insert** to use the reply, and edit if needed.
## What can be included in the draft
* Personalized greeting
* Context-aware response
* Invoice number (if relevant)
* Payment portal link (if relevant)
* Polite closing line
## Why use AI replies
| Benefit | Description |
| - | - |
| Save time | No need to retype common replies |
| Stay consistent | Standardized, professional communication every time |
| Improve collections | Keep conversations moving, without delays |
## Try it now
Simply reply to any customer email and click “**Help me write**”.
📌 *You must manage your replies in Upflow, using one of* [*these options*](https://app.upflow.io/organization/-/settings/replies) *(or both):*
## Good to know
* You’re always in control. AI replies are suggestions. You can edit or discard them.
* Drafts won’t send until you confirm.
* Suggestions improve as more customer interactions are handled via Upflow.
## What's next?
This is just the beginning. Upflow is building toward autonomous AI assistants to handle more complex actions with human-level oversight. Learn more in our [AI Vision](https://upflow.io/features/upflow-ai)!
# Import customer emails automatically with Gmail Integration
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/gmail-email-import-beta
Connect Gmail to Upflow to import customer emails in near real-time, sync up to 90 days of history and centralize every conversation on the customer timeline.
**Get the full picture of your customer conversations by connecting your Gmail account to Upflow.**
## What is the Gmail integration?
The Gmail integration allows Upflow to automatically import emails from your inbox, giving you a complete view of customer conversations.
**Benefits of connecting your Gmail account:**
* **Automatic import** - Emails sync in near real-time (within 10 minutes)
* **Historical context** - Import up to 90 days of past emails
* **Complete visibility** - See both sent and received emails in customer timelines
* **Attachments included** - Documents and images are imported automatically
## How it works
Upflow connects to your Gmail account and synchronizes all the emails, sent and received, related to the active aliases in your organization.
1. **You activate the Gmail integration feature** - From your organization settings
2. **You grant access** - Connect your Gmail account from your profile settings
3. **We sync your emails** - Upflow imports emails related to your verified aliases
4. **We match them automatically** - Emails are linked to the right customers, contacts, and actions
5. **You see them in context** - View all conversations in customer timelines
**Sync logic**
If your verified alias is [collections@acme.com](mailto:collections@acme.com), Upflow will import:
* Emails you sent FROM [collections@acme.com](mailto:collections@acme.com)
* Emails customers sent TO [collections@acme.com](mailto:collections@acme.com)
* Emails where [collections@acme.com](mailto:collections@acme.com) is in CC or BCC
## Setting up the integration
### Step 1: Activate email import for your organization
1. Go to [**Settings > Import emails and aliases**](https://app.upflow.io/organization/-/settings/import-emails)
2. Toggle on **Import emails from Gmail**
3. Review the list of users and their connection status
You'll see a table showing:
* **User** - Team members in your organization
* **Connected account** - The Gmail account they connected
* **Status** - Connection state
| Status | Description | Action needed |
| - | - | - |
| **NOT CONNECTED** | The user hasn't granted access to their Gmail account yet | Connect your Gmail account |
| **SYNCING** | Initial sync is in progress (importing up to 90 days of history) | Wait for sync to complete |
| **ACTIVE** | Email sync is working correctly | None - emails are importing automatically |
| **UNAUTHORIZED** | Upflow can't access the Gmail account (token expired or revoked) | Re-authenticate your account |
### Step 2: Select aliases to use for email sync
Upflow only imports emails related to your verified aliases (e.g., [finance@yourcompany.com](mailto:finance@yourcompany.com), [collections@yourcompany.com](mailto:collections@yourcompany.com)).
1. At the bottom of the page, look at the Alias section
2. Verify you have at least one verified alias
If not, click **Add alias** and follow the verification steps
1. Activate the **email sync** for the appropriate aliases.
### Step 3: Connect your Gmail account
1. Go to your [**Profile Settings > Email access**](https://app.upflow.io/organization/-/profile/email) section
2. Click **Connect Gmail**
3. Sign in with your Google account when prompted
4. Review and accept the permissions Upflow requests
5. Once connected, Upflow will begin syncing your emails
**Note:** You can connect a Gmail address different from the one you use to log into Upflow. For example, you might log in with [jdoe@company.com](mailto:jdoe@company.com) but sync emails from [collections@company.com](mailto:collections@company.com).
The Upflow app might require approval by your Gmail admin. In that case, reach out to them for approval.
## Revoking access
You can revoke Upflow's access to your Gmail account at any time:
1. Go to your **Profile Settings > Emails**
2. Click **Disconnect Gmail**
3. Your previously imported emails will remain in Upflow unless deleted by an administrator
You can also revoke access directly from your [Google Account permissions page](https://myaccount.google.com/permissions).
## Managing email import for multiple organizations
If you have multiple Upflow organizations and use a single Gmail account to run collection, emails from your account will be synced to **all organizations** where email import is activated.
We recommend you do **not** activate the “Import all emails” feature for all your organizations. Otherwise, emails that belong to organization 1 will create temporary customers in organization 2.
# Import your customers replies automatically
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/import-your-customers-replies-automatically
Forward customer email replies to a dedicated Upflow address so they appear on the right timeline next to the original reminder, manually or through automatic rules.
Forward your customers’ replies to Upflow with specific filters so they’re centralized on their dedicated Timeline, along with the reminders they follow up on. You can manually forward them individually or automate the process to gain time and not miss a single message!
## Why import your customer replies in Upflow?
* Get all the information you need before sending a reminder from Upflow, your team, and your customer.
* Don't spend your time looking for a potential reply to your last email reminder, and avoid context-switching.
## Technically speaking
An Upflow email address is automatically generated with each of your organizations.
You can find it in the *Replies* section of your *Settings.*
Emails sent to this address are cross-referenced with your completed actions. When there’s a match, they are imported to the right customer’s timeline.
1. We check if the email is in reply to a reminder sent via Upflow. If that's the case, then we import the email and link it to that customer. If it's not linked to a reminder...
2. We check if the sender of the email is a customer contact in Upflow; if the contact belongs to only one customer, we match it to that customer.
3. Otherwise, we ignore the email. We would rather show less than more.
### Replies attachments
💡 Attachments within the following limitations are imported
* **Formats: PDF, DOCX, XLSX, ODT, ODS**
* Size per file: 26214400 bytes / 25 MB per file.
* Number of files: 500
#### Limitations
Today, images can be visible in imported replies, only if:
* In the email body when the email is sent from Outlook (not as attachment).
* As attachment if the email is sent from Gmail (not if in the email body).
## Setting up the import
To import your customers' replies, we invite you to create filters + forwards in your Gmail settings and Rules in your Outlook settings. You can create as many as needed.
We recommend configuring the filter with words you use in your email templates' subjects. If the wording differs from one template to the other, create multiple filters.
The filters must be created for each user sending email reminders from Upflow, including your [alias](/en-us/collection-and-collaboration/workflows-customize-your-collection/aliases) if you use any.
If replies are sent to an email group, add your Upflow [forwarding email address](https://app.upflow.io/organization/-/settings/replies) to the group members.
### Create filters in Gmail
Before proceeding with the below recommendations, we advise to check our [Gmail integration documentation](/en-us/collection-and-collaboration/emails/gmail-email-import-beta), which provides more reliable and easier email imports into Upflow.
#### Forwarding address
Start by adding the Upflow forwarding address to your Gmail Settings.
Copy it from your Upflow [Settings > Replies](https://app.upflow.io/organization/-/settings/import-emails). Then head to your Gmail Settings > Forwarding...
Add the address and follow the suggested process.
Once you get to the verification step below,
Refresh your tab, and click save at the bottom of the page.
It should validate the process, as our system verifies this automatically.
#### Filters
From your Gmail Settings, head to your *Filters and blocked addresses* :
Click on "Create a new Filter":
Here, we want to fill the following fields:
* **To:** *your email address* (or the one you're configuring, a generic address or alias address).
* **Contains the words:** add the most recurring word you use in your email reminders subjects, such as "invoice" for example. You can also add your company's name if it's mentioned in your template subject under the tag "Company name".
Here's how it looks like:
It works with or without a comma between your key words.
Now, the following steps will be to:
1. Click *Create filter*
2. Configure the right behaviour
* Check the *Forward it to* option and select the dedicated forwarding address, which you'll find in your Upflow Settings > Replies. Click Add forwarding address if it's not yet known by your Gmail settings.
* Update the filter!
### Create rules in Outlook
Head to your Outlook settings, and click Rules > Add new rule.
Name it, then add the two following essential conditions:
1. To: your email address (or the one you're configuring)
2. Subject includes: add the wording used in each of your templates (or the one you're configuring - if more, create a filter per wording).
Then add the following action:
→ **Redirect** to: Add your [organization forwarding rule](https://app.upflow.io/organization/-/settings/import-emails).
You can add more actions, such as "Mark as read" or "Categorize" to find these emails quickly in Outlook.
Don't forget to click Save at the bottom!
## Google Groups
For Google Group addresses, add your Upflow dedicated forwarding address as a member. Follow these steps from Google: [Add people to your group directly](https://support.google.com/groups/answer/2465464?hl=en).
From your Google Account, access your Groups:
Then click "Members" at the left, and "Add members" from [this page](https://groups.google.com/a/upflow.io/g/-/members).
Finally, add your [Upflow forwarding address](https://app.upflow.io/organization/-/settings/replies) as a member:
### Edge case: customer's group address
If your customer's contact is a group address, let say [billing@acme.co](mailto:billing@acme.co,). When you send email reminders to this contact, other people from this group might reply to it, let's say [john@acme.co](mailto:john@acme.co).
But John isn't a known contact in Upflow. His reply might not be imported to the customer's timeline, if he doesn't add billing@ to the loop.
To prevent this issue, you have two solutions:
* Ensure all known contacts for a customer exist in Upflow (you can add them to your source system or directly to Upflow - [Your Upflow contacts](/en-us/core-entities/contacts/your-upflow-contacts)).
* Enable the *Import all replies* feature. This option will ensure the reply is imported even if our system can't link it directly to the dedicated customer. It will generate a temporary customer, that can then be merged with the original one. (Learn more in [Manage your customers replies in Upflow](/en-us/collection-and-collaboration/emails/manage-customer-replies)).
## Multiple organizations
Each organization has its forwarding email address.
If you manage several organizations and want to import replies to all of them, follow the same steps as above. But make sure to have:
* One filter per organization (at least)
* To refer to your "Company name" in your email subjects and to add the exact same name in your filter.
* **And to ensure the forwarding address you use is for the right organization. Each Upflow organization has its own.**
## Combining the import with the Reply-to feature
When configuring a workflow, you indicate who receives your actions’ replies: their sender or a custom address.
Make sure all senders or the custom address selected have the filters/rules set up properly.
## Questions
**How long does it take for the import to be in my history?**
The import is done within a few seconds to a few minutes.
**Can I create a group list that includes the Upflow reply email?**
Yes, you can! If you CC this group email (rather than the specific Upflow reply email), the response will also be imported into the customer timeline.
# Manage your customers' replies in Upflow
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/manage-customer-replies
Centralize incoming customer replies in your Upflow inbox, decide how new emails impact ongoing dunning workflows and respond without switching to another tool.
The sooner you hear from and respond to your customers regarding cash collection, the better. This is why Upflow offers a centralized inbox experience, allowing you to manage incoming and outgoing communication with your customers right from our platform.
To set up email replies import, follow the dedicated configuration guidelines: [Automatic collection replies import](/en-us/collection-and-collaboration/emails/import-your-customers-replies-automatically). Once you've done this, here are the different options for managing them from Upflow.
## What is the impact of a new email received on Upflow?
By default, Upflow will simply notify you that a new email has been received. You can see it and reply to it from your interface, but it will not impact your existing workflows.
You can reply to it by clicking on the reply icon on the timeline next to the email.
If you want to stop the workflow until you reply to that email or ignore it, you must activate the following settings: Handle replies in Upflow.
From that moment, any new reply imported will generate an action to perform.
### Reply actions and notifications assignment
This action is assigned to:
* Owners > if none, falling back on Finance users > if none, falling back on the organization.owner.
When replies are imported, if they're linked to a sent email reminder, the notifications will be sent to:
* the user who performed the manual email (clicked sent)
* the organization owner if the manual email sender was set on an alias
* the user set up as Sender in the email template (workflow)
* the organization owner if the automatic sender is set on an alias.
* no notification will be sent if the imported reply is not linked to a sent reminder
#### Reply to actions pausing the collection
Until that action is sent or ignored, no other action in the workflow will be performed.
We recommend this solution to prevent automated reminders from being sent after your customer tells you that there is an issue or that a payment is on its way. Preserving a good customer experience.
You can disable this setting at any time, by untoggling the option "Include ad hoc actions when calculating the contact delay of workflows." from your [Collections settings](https://app.upflow.io/organization/-/settings/collection).
### Mass ignore reply actions
From your Actions list view, you can mass ignore reply actions generated by imported replies.
Filter on "Action state contains To do" and type "Reply to" in the search bar to identify them.
If you need to ignore only certain of these actions, add more filters to identify them.
Then select them all (tick the Action name column + click the blue link at the top right of the list if more than 50). Click Actions > Ignore:
## How does Upflow match new emails to invoices, customers, or actions?
### Import only emails we can match
By default, Upflow will only import the emails it knows are related to the collection process.
To do this, we:
1. check if the email is in reply to a reminder sent via Upflow. If that's the case, then we import the email and link it to that customer. If it's not linked to a reminder, we
2. check if the sender of the email is a customer contact in Upflow; if the contact belongs to only one customer, we match it to that customer.
3. check if the domain of the sender is the same as the domain of the main contact of a single customer
4. otherwise, we ignore the email. We would rather show less than more.
Another option is available on demand: match any replies not falling into the three above logics, if they match one Parent customer's domain only in the organization.
### Import all emails
If you want to match the entire inbox from Upflow, you can activate the "Import all replies" settings.
In that case, when we can't match the email to a specific customer, we will create a temporary customer to whom the email will be linked. The name of that customer will be the email address of the sender.
From there, you can either continue the conversation this way or merge that temporary customer with the appropriate customer. To do this, you can click on the merge icon next to the customer name or head over to the customer details page.
Those customers are easily identifiable from the customer list as you can filter on the medium = "INCOMING\_MESSAGE."
#### How “Import all emails” matches incoming messages
When you use the Import all replies feature, Upflow follows a set of rules to decide which customer timeline an incoming email belongs to.
The system checks in this order:
1. Reply to an Action email sent from Upflow → The email is matched to the same customer timeline as the Action.
2. Reply to a previous linked incoming email → The email is matched to the same customer timeline.
3. Otherwise, check the sender’s contact information:
* Exact contact match: if the sender’s email address is linked to a single customer in Upflow, the email is linked there.
* Multiple customer match: if the same contact is linked to more than one customer, the system cannot choose. The email appears in the “incoming\_message” bucket for your team to merge manually.
* No contact match, but domain match: if the sender is not in Upflow, but their domain matches the main contact domain of a single customer, the email is assigned to that customer.
* Example:
* [john@acme.com](mailto:john@acme.com) is not in Upflow
* But [alice@acme.com](mailto:alice@acme.com) is the main contact for Acme
* Result: John’s email is matched to Acme.
→ Note: Domain matching has been applied only to emails received after August 12th 2025 (if the related contact already exists as an "incoming\_message" customer, their emails will keep being linked there, instead of the related main customer > delete or merge the temporary customer to the main one to solve this situation).
#### Why emails sometimes remain unassigned
* If a sender’s address is linked to multiple customers (e.g. parent company + entity), Upflow cannot link the email.
* If the sender’s address doesn’t exist in Upflow and the domain isn’t linked to a unique customer, the email also stays unlinked.
These cases will show up in the “incoming\_message” bucket (Customers list view filtered on "Medium contains incoming\_message"), where your team can manually merge the message into the correct customer timeline, or delete it\*.
\*If this customer can't be deleted (error message) due to linked events, you can exclude them from Upflow ([learn more](/en-us/core-entities/customers/exclude-customers)).
### Delete a reply-generated customer
If a reply was imported to the wrong organization, you can delete it individually from its detail page, top right:
Or in bulk, after filtering on "Medium = INCOMING\_MESSAGE" > Actions button:
# Re-linking or deleting emails
In addition, you can re-link an email to the appropriate customer or delete it. From any timeline, you can do it by hovering on the email and clicking on the corresponding icon.
It will then recompute the actions of each customer to know what reminders should be sent next.
## FAQ
## What happens to the customer workflow if the customer replies to an email reminder from an invoice level workflow?
* If the incoming message is a reply to an invoice action: It will halt the invoice level workflow *but* it will not block the customer collection workflow.
* If the incoming message is a reply to a customer workflow action: It will halt the customer level workflow *but* it will not block the invoice collection workflow.
* If the incoming message is only matched to a customer (via their contacts): It will not halt the invoice collection workflow *but* it will block the customer collection workflow.
## What happens when I receive multiple emails from the same customer?
The last incoming email will be the pending Reply action for that customer or invoice collection workflow.
# Sending emails
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/sending-emails
Compare the three ways to send Upflow email reminders, from the default Mailgun sender to a custom domain, subdomain or SMTP server, and pick the right option.
By default, all email actions are sent from [*reminder@upflow-mail.com*](mailto:reminder@upflow-mail.com) along with the name of the user performing the action.
To increase deliverability and your customers' trust, we encourage you to send emails from your own domain. Here are the 3 solutions that can be implemented:
| **Option** | **Advantages** | **Drawbacks** | **Note** |
| - | - | - | - |
| 1. [Configure your domain](/en-us/collection-and-collaboration/emails/sending-emails-configure-your-domain) | You keep the same email
Email tracking available | Mailgun can't be used for your domain elsewhere | Preferred solution |
| 2. [Configure a subdomain](/en-us/collection-and-collaboration/emails/sending-emails-configure-a-subdomain) | If you are already using Mailgun internally and want to keep tracking emails | Emails are sent from [mark@finance.facebook.com](mailto:mark@finance.facebook.com)
Requires a redirection from those addresses to your standard ones | |
| 3. [Connect to a custom SMTP server](/en-us/collection-and-collaboration/emails/connect-to-a-custom-smtp-server) | No need to update your DNS | No email tracking available | |
After you have completed the configuration, your customers will start receiving your reminders from the email address of the user performing the action.
If one of your members’ addresses isn’t registered on your domain, their reminders will be sent from [reminders@upflow-mail.io](mailto:reminders@upflow-mail.io). When you use a subdomain, we check that the user's address matches at least with the top domain.
If you have multiple organizations, you can set up the same domain across them.
## Email tracking settings
Admins can choose what Upflow tracks on the emails sent to your customers. Go to the [Deliverability](https://app.upflow.io/organization/-/settings/domain/dns) menu in your Settings and scroll to the **Email tracking** section.
| **Setting** | **What it does** | **Availability** |
| - | - | - |
| **Track email opens** | Records the date on which recipients open your emails. | Default sender and custom DNS domains |
| **Track link clicks** | Records when recipients click on the links of your emails. Links are redirected through your tracking domain. | Custom DNS domains only |
Both settings are on by default. The **Email tracking** section is hidden when you send emails through a [custom SMTP server](/en-us/collection-and-collaboration/emails/connect-to-a-custom-smtp-server), because those emails are never tracked.
Upflow applies the settings when it sends an email. Emails already sent keep the tracking they were sent with.
### Turning on open tracking
Tracking opens requires the consent of your recipients. When you turn on **Track email opens**, Upflow asks you to confirm that you have informed your recipients that the collection emails they receive are tracked. Click **I confirm, enable tracking** to turn it on.
For more details, see [Tracking pixel in reminder emails](/en-us/legal-and-security/data-protection/tracking-pixel-in-reminder-emails).
### What changes when tracking is off
When **Track email opens** is off:
* Opens are hidden from the customer timeline, including opens recorded before you turned the setting off.
* The open rate column of the workflow action list shows **N/A** for email actions.
* The **Action emails open rate** analytics widget shows an empty state instead of the chart. Admins see a **Go to email tracking settings** button. Other members are asked to contact an administrator.
When **Track link clicks** is off, clicks are hidden from the customer timeline, including clicks recorded before you turned the setting off.
# Sending emails - Configure a subdomain
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/sending-emails-configure-a-subdomain
Send Upflow reminders through a Mailgun subdomain when your main domain is already in use, including DNS verification and required email routing rules.
If you are already using Mailgun internally, this option is for you. This will allow you to send emails via your domain and use email tracking.
In that case, you will be using **billing.mycompany.com** instead of **mycompany.com** to send emails.
The process is similar to the main domain process, with the added step of adding email routing to your regular email addresses.
## Configure your DNS
Once you have decided which subdomain you want to use (e.g. billing.mycompany.com) follow the steps described in [this article](/en-us/collection-and-collaboration/emails/sending-emails-configure-your-domain) to verify the subdomain ownership.
## Set up email routing to your regular email addresses
To receive customer replies at your usual email address, you will need to (1) add the subdomain to your email account. And (2) assign the subdomain addresses as a new alias for the users.
* [Here's how to do it for Gmail accounts](https://support.google.com/a/answer/7502379?hl=en#zippy=%2Cadd-a-domain-alias-give-users-an-address-at-another-domain).
* [Here's how to do it for Microsoft accounts](https://learn.microsoft.com/en-us/microsoft-365/admin/email/add-another-email-alias-for-a-user?view=o365-worldwide)
# Sending emails - Configure your domain
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/sending-emails-configure-your-domain
Set up the DNS records required by Mailgun to send Upflow reminders from your own domain, with step-by-step guidance for your technical team and admins.
To send emails, we are using an email sending provider called Mailgun. In this article, we will explain how you can give Mailgun and us the right to send emails on your behalf.
Don't hesitate to share this article with your technical team along with Upflow admin access.
## Configuring your domain DNS
Go to the [Deliverability](https://app.upflow.io/organization/-/settings/domain/dns) menu in your Settings and select **Configure your DNS**
### Adding a domain
Enter your domain name. If your address is [john@apple.com](mailto:john@apple.com), then the domain name is "apple.com".
### Adding records to your DNS provider.
A list of records to add to your DNS provider is now displayed. The first two allow us to send emails on your behalf, and the last one enables email tracking.
### Validating the domain verification
Once those records are added to your DNS, click on the "Verify your domain button". If the records are properly created, each record should display a green tick, and your domain is now verified.
Congratulations! Emails are now sent from this domain if the user performing the action matches the address. If not, it will fall back to [reminders@upflow-mail.com](mailto:reminders@upflow-mail.com).
## Choosing what is tracked
Once your domain is configured, Upflow tracks email opens and link clicks by default. Admins can turn each one on or off in the **Email tracking** section of the Deliverability settings. See [Email tracking settings](/en-us/collection-and-collaboration/emails/sending-emails#email-tracking-settings).
## DNS setup guide by provider
You can find how to set up the DNS records in your DNS provider by following the articles from our partner Mailgun.
* [Cloudflare](#)
* [GoDaddy](#)
* [Namecheap](#)
* [Google Domains](#)
* [DigitalOcean](#)
## FAQ
### Mailgun already used
If you receive the following error message: *“It seems that this domain is already used by a Mailgun account. Please contact our Support* ” and still need Mailgun for another use case, you should use one of the 2 other options for sending emails.
### Testing the record propagation
If, after updating your DNS provider, the records are still not valid in Upflow, you can use this [DNS lookup tool](https://mxtoolbox.com/DNSLookup.aspx) to check what is actually published on your domain. It will help troubleshoot the issue.
# Understanding Email Display in Timelines
Source: https://docs.upflow.io/en-us/collection-and-collaboration/emails/understanding-email-display-in-timelines
Learn how Upflow matches incoming and outgoing emails to customers or invoices, and how the resulting timeline display changes based on your collection workflow setup.
This article explains how emails sent from, and received in Upflow, appear in customer and invoice timelines, based on your collection configuration. Whether you use customer-level workflows, invoice-level workflows, or both, understanding these display rules will help you track communications more effectively.
## Default/global logic (core matching rules)
### Email matching priority:
1. **Reply to an action** → Matches to the specific action (customer or invoice level)
2. **From a known contact** → Matches to customer with that unique contact
3. **Domain matching** → If enabled, matches by email domain
4. **No match** → Creates temporary customer (if "import all emails" is enabled)
Learn more: [Import only emails we can match](/en-us/collection-and-collaboration/emails/manage-customer-replies).
### 1. Customer-level collection only
**Scenario:** You only use customer-level workflows (cf. [Customer-level workflow trigger](/en-us/collection-and-collaboration/workflows-basics/customer-level-workflow-trigger)).
Any email reminder sent at the customer level, and any related import email/reply, will be displayed in the customer timeline.
#### In invoice timeline display:
| Email Source | Displays in Invoice Timeline? |
| - | - |
| **All customer-level workflow actions** | ✅ Yes - Shows in all invoices with an issue date **before** the action’s performed date |
| **All replies to customer actions** | ✅ Yes - Shows in all invoices with an issue date **before** the action’s performed date |
| **All contact-matched emails** | ✅ Yes - Shows in all invoices with an issue date **before** the action’s performed date |
**Why This Happens:**
* Every email related to the customer appears in every invoice timeline, as long as the invoice issue date is **before** the email’s sent date. For example, if an invoice is issued on March 1st
* The system shows full customer context on each invoice
**Example:**
* Invoice #123 issue date is March 1st
* An email is sent at the customer level on March 15th
* The email will be displayed in the customer’s timeline, and the invoice’s timeline
**Counter example:**
* Invoice #456 issue date is March 25th
* An email is sent at the customer level on March 15th
* The email will be displayed in the customer’s timeline, in invoice #123 timeline, but **not** in invoice #456 timeline.
### 2. Two levels collection (invoice + customer workflows)
**Scenario:** You use customer-level **and** invoice-level workflows (cf.[Double level of communication](/en-us/collection-and-collaboration/workflows-basics/invoice-level-workflow-trigger)).
Any customer-level communication will be displayed as in the first example above.
Any invoice-level communication will be displayed only in the related invoice’s timeline, and the related customer’s timeline.
### In invoice timeline display:
| Email Source | Displays in Invoice Timeline? |
| - | - |
| **Invoice-level workflow action** for one specific invoice | ✅ Yes - Only in this invoice’s timeline + customer timeline |
| **Invoice-level workflow action** for another invoice | ❌ No |
| **Customer-level workflow action** | ✅ Yes - Shows in all invoices with an issue date **before** the action’s performed date |
| **Reply to invoice-level action** | ✅ Yes - Only in related invoice’s timeline + customer timeline |
| **Reply to customer-level action** | ✅ Yes - Shows in all invoices with an issue date **before** the action’s performed date |
| **Contact-matched email** (not replying to action) | ✅ Yes - Shows in all invoices with an issue date **before** the action’s performed date |
**Note:** Customer-level communications provide context across all invoices, while invoice-level communications stay isolated to their specific invoice.
### 3. Invoice-level collection only
**Scenario:** You only use invoice-level workflows (cf. [Invoice-level workflow trigger](/en-us/collection-and-collaboration/workflows-basics/invoice-level-workflow-trigger))
Any email reminder sent at the invoice level, and any related import email/reply, will be displayed in the customer timeline, and only in the related invoice’s timeline. No other invoices’.
### In invoice timeline display:
| Email Source | Displays in Invoice Timeline? |
| - | - |
| **Invoice-level action for this invoice** | ✅ Yes - Only in this invoice’s timeline + customer timeline |
| **Invoice-level action for other invoices** | ❌ No - Stays isolated |
| **Reply to this invoice's action** | ✅ Yes - Only in this invoice’s timeline + customer timeline |
| **Reply to other invoices’ action** | ❌ No |
| **Contact-matched email** (not replying to action) | ⚠️ Shows in all invoices (falls back to customer-level display) |
**Note:** Invoice-level workflows provide complete isolation - each invoice's reminders only appear in that specific invoice's timeline, plus related customer’s timeline.
## Troubleshooting common scenarios
#### "I don't want emails showing across all invoices"
**Solution:** Switch from customer-level workflows to invoice-level workflows. This will ensure each invoice's communications stay isolated.
#### "I need full customer context on each invoice"
**Solution:** Use customer-level workflows. This is the intended behavior - all customer communications will appear across all invoices.
#### "Some emails appear everywhere, others don't"
**Check:** You're likely using mixed workflows (both customer-level and invoice-level). Review which workflow type sent each email to understand the display behavior.
# Postal reminders pricing
Source: https://docs.upflow.io/en-us/collection-and-collaboration/letters/postal-reminders-pricing
Review the per-letter fees billed in addition to your Upflow subscription, including monthly invoicing terms and how to access discounted letter bundles.
You can contact your customers via different channels as part of your Workflows. The following fees apply to your postal reminders—in addition to your subscription.
***
💡 Letters are billed at the beginning of the month following their sending, unless you purchase a letter bundle.
***
*If you are interested in purchasing a **letter bundle** as a part of your Upflow subscription, please reach out to [support@upflow.io](mailto:support@upflow.io) or your dedicated CSM.*
## For our US-based users
If your company is based in the US, the following pricing applies to the postal letters you may send from Upflow:
| **Option** | **Price per letter (USD)** |
| - | - |
| Letter, First Class | \$1.2 |
| Additional page | \$0.2 |
| International fees | \$1.23 |
The total fees for billing is calculated by summing the letter fees ( i.e. \$1.2), additional page fees and international letter fees (if letter is sent outside the US).
* If you send a letter from the US to the US, one-pager, your letter will cost \$1.2
* If you send a letter from the US to the US, three pages, your letter will cost \$1.6
* If you send a letter from the US to the international, one-pager, your letter will cost \$2.43
The fees apply whether your letter is black & white or with colors.
## For our users in the rest of the world
If your company is located outside of the US:
***
⚠️ The color fees will be applied based on your logo: if your logo is black and white, the color fees won't apply.
***
# Send postal reminders from Upflow
Source: https://docs.upflow.io/en-us/collection-and-collaboration/letters/send-postal-reminders
Add regular or registered letters to your dunning workflows in Upflow to escalate overdue customers when email and phone calls fail to recover payment.
If, in spite of your written reminders and phone calls, a customer still hasn’t paid you, it might be time to send a postal letter notice. Among the existing communication channels you can pick on Upflow, you will find letters (regular or registered).
❗This is a paying feature. If you use it, you will be charged additional fees at the end of the month ([learn more](https://docs.upflow.io/en-us/collection-and-collaboration/letters/postal-reminders-pricing)).
## Brand and personalize your communications
Upload the logo you want displayed on your letters from the [**Company**](https://app.upflow.io/organization/-/settings/company) section of your Settings. You can also add a footer to your reminders from the [**Letters**](https://app.upflow.io/organization/-/settings/letters) section.
These elements will systematically appear on any communication sent out by postal mail.
Now moving to the stage(s) of your Workflows where you want to send a letter. Select your preferred option (registered or not) and configure it/them as you would any other action: define an assignee, set a trigger date, write down the appropriate content…and save!
👉 You can send [ad hoc letters](https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/ad-hoc-actions) (not as part of a workflow) at any time!
## Next steps
Letters can be sent manually - allowing their assignee(s) to review them (add tags, edit the recipient) prior to sending - or automatically. They will appear on the Actions list view come their completion date: in the To do list of its assignee(s) if manual or if the customer's contact or address is invalid/missing. Both manual and automated letters are visible in the Actions > All list.
By default, letters are sent to the customer's main contact. You can edit the recipient only for manual/ad hoc letters.
If a customer has no Contact, the letter can't be sent, even if they have a postal address filled in Upflow. You then must create a dedicated contact to send your postal letter. You can create it:
* directly from the "To" field of your manual letter
* from the customer's details page > Contacts tab
* by importing a CSV file to import contacts in bulk ([learn more](https://docs.upflow.io/en-us/core-entities/contacts/import-and-update-your-contacts-via-csv))
* from your billing tool - the contact will be synced automatically to Upflow
From their to do list, the assignees will be able to edit the content and pick another recipient among your customer’s contacts or create a new one on the fly. Select any of the customer’s due/overdue invoice(s) or upload a document from your computer (limited to 25 MB).
If you changed your mind, you can update the type for another channel, skip the action or pause your customer's collection to pick it up later.
Happy with the result? Click on *Preview and send* for a last peek. The attached file(s) are not part of the preview but will be sent out.
Eventually click on **Preview & Send**, review and validate the document, and track your mail on your customer’s timeline!
## Failed letters
Whether your letter action is manual or automated, if your customer's address is missing or invalid, the letter will be displayed in the action's assignees to do list and highlighted in both the pending action and on the customer's detail page.
# Live calls from Upflow
Source: https://docs.upflow.io/en-us/collection-and-collaboration/live-calls/live-calls-from-upflow
Call your customers directly from Upflow — set up Live Calls and your outbound caller ID, place calls from a workflow action, and navigate phone menus with the in-call dial pad.
Don’t lose context as you switch tools and call your customers directly from Upflow. You can call from a shared Upflow number or from your own verified business number, so your calls look credible and get answered.
## Before you start
Your customers’ contacts need a **valid phone number, with the accurate country/area code** (+33 for France, +44 for the UK, etc.) to be reachable. The number can contain hyphens, dashes or spaces, or none at all, as long as the + and country code are there.
Contacts should have a phone number in international format to be reachable (e.g. +33601483057). If a number isn’t in international format, Upflow uses your organization’s default country code to place the call.
Contacts synced from your accounting tool or Salesforce need their phone number updated there. Contacts created in Upflow can be updated manually or via CSV.
## Set up Live Calls
### Turn Live Calls on
From your [Settings > Calls section](https://app.upflow.io/organization/-/settings/calls), enable **Live Calls**.
### Add call actions to your workflows
From your workflow(s), add call actions and configure them based on your needs. Note that our default workflows already contain a call action.
As for any other action type, name it for internal usage, select the owner(s) and the trigger. Then the recipients, and type your script for your team to follow. Don’t forget to save.
### Set your outbound caller ID
By default, calls are placed from a shared Upflow number. To make your calls more recognizable, you can call from your own verified business number instead — customers are far more likely to answer a number they know.
From your [Settings > Calls section](https://app.upflow.io/organization/-/settings/calls), open **Set outbound phone numbers** and enable Custom Caller ID.
#### Verify a number you own
1. Add the phone number you want to call from.
2. Upflow shows a verification code on screen.
3. You’ll receive a call on that number — answer it and enter the code on your phone’s keypad when prompted.
4. Once confirmed, the number is verified and ready to use.
You can add and verify several numbers this way. Editing or removing a number clears its verification.
#### Choose a default number
Set one of your verified numbers as your organization’s default. It applies to everyone on your team.
#### Pick a number for a specific call
When you start a call, the number it will go out from is shown, pre-filled with your organization’s default. You can change it for that call before dialing — useful when a customer is more likely to answer a local number.
## Call your customers
Within a call action, you will see the **Call now** button, hit it, and get started.
If the button isn’t available yet, head over to your [Settings > Calls section](https://app.upflow.io/organization/-/settings/calls), and go back to your pending action.
The first time you use this feature, we’ll request access to your microphone.
### Navigate phone menus with the dial pad
Some customers route calls through a phone menu (IVR) or ask you to dial an extension. Use the in-call dial pad to send those digits without leaving Upflow.
Once your call is answered, click the dial pad button in the call controls to open the keypad. The button is unavailable while the call is still ringing.
From the dial pad, you can:
* Click any key (0–9, \*, #) to send the corresponding tone.
* Type the digits on your keyboard while the pad is open.
* See the digits you’ve entered so far during the call, displayed above the keys.
Use it to reach the right department in an automated menu, enter an extension, or respond to prompts like “press 1 to continue.”
### End the call and log the outcome
Once your call is over, click the phone icon to stop:
Finally, don’t forget to close your pending action and specify the call disposition.
## Call recording & transcript
You can record the calls you place from Upflow and get an automatic transcript, so your team has visibility into how each conversation went.
See [Call recording & transcript](/en-us/collection-and-collaboration/live-calls/recording-and-transcripts) to turn it on, start or pause a recording mid-call, and listen back.
## Good to know
* Upflow uses a 3rd-party to place your calls. When you hit the call button, they call your customer and put you through.
* Depending on usage, the calls are billed to you — see [Live calls pricing](/en-us/collection-and-collaboration/live-calls/live-calls-pricing).
# Live calls pricing
Source: https://docs.upflow.io/en-us/collection-and-collaboration/live-calls/live-calls-pricing
Pay only for the minutes spent calling customers from Upflow Live Calls, and review the additional per-minute fee that applies when recording and transcripts are enabled.
Want to call all your customers directly from Upflow?
Simply [activate the Live Calls](https://app.upflow.io/organization/-/settings/calls) feature and get started!
Only pay for the time you spend on the phone, and see its impact to your collection efficiency.
## Call recording and transcript
When you use call [recording and transcript](/en-us/collection-and-collaboration/live-calls/recording-and-transcripts), there is an additional \$0.034/min of call.
## Call pricing
Live calls depend on where you call in the world and what carriers your recipient is using.
**For the United States of America & Canada**
| **Destination** | **Price / min (USD)** | **Destination pre-fix** |
| - | - | - |
| Standard rate | 0.0225 | 1 |
| United States & Canada - Toll Free | 0.0225 | 1800, 1833, 1844, 1855, 1866, 1877, 1888 |
| United States - Alaska | 0.123125 | 1907 |
| United States - Hawaii | 0.0225 | 1808 |
| Canada - Yukon Territory | 0.195625 | 1867 |
**For France**
| **Destination** | **Price / min (USD)** | **Destination pre-fix** |
| - | - | - |
| France (Landline) | 0.023375 | 33 |
| France - Mobile - Bouygues | 0.194 | 336003, 336009, 336444, 336445, 336446, 3364950, 33650, 336530, 336531, 336532, 336533, 336534, 33658, 33659, 3366, 33698, 33699, 33718, 33719, 337521, 337522, 337523, 337524, 337525, 337527, 337528, 337529, 337540, 337541, 337542, 337544, 337545, 3376 |
| Mobile - Free | 0.194 | 336000, 336006, 33651, 33652, 33695, 33781, 33782, 33783 |
| Mobile - Orange | 0.194 | 336001, 336008, 336020, 336021, 33607, 33608, 33630, 33631, 33632, 33633, 336365, 336366, 336367, 336368, 336369, 33637, 33638, 33640, 3364160, 3364161, 336417, 33642, 33643, 336441, 336442, 336443, 33645, 33647, 33648, 336490, 336491, 336492, 336493, 336494, 3364951, 3364952, 3364953, 3364954, 3364955, 3364956, 3364957, 3364958, 3364959, 336496, 336497, 336498, 3364992, 3364993, 33654, 3367, 3368, 3375061, 3375062, 3375063, 3375064, 3375065, 3375066, 3375067, 3375068, 3375069, 33770, 33771, 33785, 33786, 33787, 33788, 33789 |
| Mobile - SFR | 0.194 | 336002, 336007, 33601, 336022, 336023, 336024, 336025, 33603, 336040, 336041, 336044, 336045, 336046, 336047, 336048, 336049, 336050, 336051, 336052, 336053, 336054, 336064, 336065, 336066, 336067, 336068, 336069, 33609, 3361, 3362, 33634, 33635, 33636, 3363801, 3363802, 3363803, 3363804, 3363805, 3363807, 3363808, 3363809, 3364005, 3364006, 3364007, 3364008, 3364009, 336410, 336411, 336412, 336413, 336414, 336415, 3364163, 3364164, 3364166, 3364167, 3364168, 3364169, 336418, 336419, 336440, 336447, 336448, 336449, 33646, 3364990, 3364991, 3364995, 3364998, 3364999, 33655, 3365666, 3365667, 3365668, 3365669, 336567, 336568, 336698, 337500, 337501, 337505, 3375060, 337507, 337508, 337509, 337520, 337526, 3375432, 33755, 3375707, 3375717, 337575, 337576, 337577, 337578, 33759, 337713, 337714, 3377150, 3377151, 3377152, 3377153, 3377154, 33777, 33778, 33779, 33780 |
| Mobile Other | 0.194 | 336, 336055, 336056, 336057, 336058, 336059, 337, 337510, 337511, 337512, 337513, 337514, 337515, 33753, 33758 |
| Special Services | 0.66125 | 33806, 33807, 33808, 33809, 3381, 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389 |
**For the United Kingdom**
| **Destination** | **Price / min (USD)** | **Destination pre-fix** |
| - | - | - |
| United Kingdom (Landline) | 0.02375 | 44, 44203, 44207, 44208, 44800, 44808 |
| Mobile | 0.04125 | 447106, 447107, 447300, 447301, 447302, 447303, 447304, 447305, 447306, 447307, 447308, 447309, 447310, 447311, 447312, 447340, 447341, 447342, 447357, 447360, 447365, 447366, 447367, 4473682, 4473683, 4473684, 4473685, 4473686, 4473687, 4473688, 4473689, 447375, 447376, 447377, 4473781, 4473782, 4473783, 4473784, 4473785, 4473786, 4473787, 4473788, 4473789, 447379, 4473801, 4473802, 4473803, 4473804, 4473805, 4473806, 4473807, 4473808, 4473809, 447381, 447382, 447383, 447384, 447385, 447387, 447388, 4473890, 4473891, 4473897, 4473898, 447391, 447392, 447393, 447394, 447395, 447396, 4473970, 4473971, 4473972, 4473973, 4473975, 4473976, 4473977, 4473978, 4473979, 447398, 447399, 447400, 447401, 447402, 447403, 447404, 447405, 447407, 447409, 447410, 447411, 447412, 447413, 447414, 447415, 447416, 4474170, 4474173, 4474174, 4474175, 4474180, 447419, 447420, 447421, 447422, 447423, 447424, 447425, 447426, 447427, 447428, 447429, 447430, 447431, 447432, 447433, 447434, 447435, 447436, 447437, 447438, 4474400, 4474401, 4474402, 4474403, 4474404, 4474405, 4474406, 4474407, 4474416, 447442, 447443, 447444, 447445, 447446, 447447, 447448, 447449, 447450, 4474527, 4474528, 4474529, 447453, 447454, 447455, 447456, 4474583, 4474586, 4474589, 447459, 447460, 447461, 447462, 447463, 447464, 4474652, 4474654, 4474656, 4474657, 4474658, 4474659, 447466, 447467, 447468, 447469, 447470, 447471, 447472, 447473, 447474, 447475, 447476, 447477, 447478, 447479, 447480, 447481, 447482, 447483, 447484, 447485, 447486, 447487, 4474884, 4474885, 4474887, 4474889, 447489, 447490, 447491, 447492, 447493, 447494, 447495, 447496, 447497, 447498, 447499, 447500, 447501, 447502, 447503, 447504, 447505, 447506, 447507, 447508, 44751, 447521, 447522, 447523, 447525, 447526, 447527, 447528, 447529, 447530, 447531, 4475320, 4475321, 4475322, 4475323, 4475324, 4475326, 4475327, 4475328, 447533, 447534, 447535, 447536, 4475374, 4475378, 4475379, 447538, 447539, 44754, 447550, 447551, 447552, 447553, 447554, 447555, 447556, 447557, 44756, 447570, 447572, 447573, 447574, 447575, 447576, 447577, 447578, 447579, 447580, 447581, 447582, 447583, 447584, 447585, 447586, 447587, 447588, 44759, 447701, 447702, 447703, 447704, 447705, 447706, 447707, 447708, 447709, 447710, 447711, 447712, 447713, 447714, 447715, 447716, 447717, 447718, 447719, 447720, 447721, 447722, 447723, 447724, 447725, 447726, 447727, 447728, 447729, 447730, 447731, 447732, 447733, 447734, 447735, 447736, 447737, 447738, 447739, 447740, 447741, 447742, 447743, 447745, 447746, 447747, 447748, 447749, 447750, 447751, 447752, 4477531, 4477532, 4477533, 4477534, 4477535, 4477536, 4477537, 4477538, 4477539, 447754, 447756, 447757, 447758, 447759, 447760, 447761, 447762, 447763, 447764, 447765, 447766, 447767, 447768, 447769, 447770, 447771, 447772, 447773, 447774, 447775, 447776, 447778, 447779, 447780, 447782, 447783, 447784, 447785, 447786, 447787, 447788, 447789, 447790, 447791, 447792, 447793, 447794, 447795, 447796, 447798, 447799, 447800, 447801, 447802, 447803, 447804, 447805, 447806, 447807, 447808, 447809, 447810, 447811, 447812, 447813, 447814, 447815, 447816, 447817, 447818, 447819, 447820, 447821, 4478228, 447823, 447824, 447825, 447826, 447827, 447828, 4478290, 4478291, 4478292, 4478293, 4478294, 4478295, 4478296, 447830, 447831, 447832, 447833, 447834, 447835, 447836, 447837, 447838, 447840, 447841, 447842, 447843, 447844, 447845, 447846, 447847, 447848, 447849, 447850, 447851, 447852, 447853, 447854, 447855, 447856, 447857, 447858, 447859, 447860, 447861, 447862, 447863, 4478640, 4478641, 4478642, 4478643, 4478645, 4478646, 4478647, 4478648, 4478649, 447865, 447866, 447867, 447868, 447869, 447870, 447871, 4478720, 4478721, 4478723, 4478724, 4478725, 4478726, 4478728, 4478729, 4478731, 4478732, 4478733, 4478734, 4478735, 4478736, 4478737, 4478738, 4478739, 4478740, 4478741, 4478742, 4478743, 4478746, 4478747, 4478748, 4478749, 447875, 447876, 447877, 447878, 447879, 447880, 447881, 447882, 447883, 447884, 447885, 447886, 447887, 447888, 447889, 447890, 447891, 4478923, 4478924, 4478926, 4478927, 4478928, 4478929, 4478932, 4478934, 4478935, 4478936, 4478937, 447894, 447895, 447896, 447897, 447898, 447899, 447900, 447901, 447902, 447903, 447904, 447905, 447906, 447907, 447908, 447909, 447910, 447912, 447913, 447914, 447915, 447916, 447917, 447918, 447919, 447920, 447921, 447922, 447923, 447925, 447926, 447927, 447928, 447929, 447930, 447931, 447932, 447933, 447934, 447935, 447936, 447938, 447939, 44794, 447950, 447951, 447952, 447953, 447954, 447955, 447956, 447957, 447958, 447959, 447960, 447961, 447962, 447963, 447964, 447965, 447966, 447967, 447968, 447969, 447970, 447971, 447972, 447973, 447974, 447975, 447976, 447977, 447979, 447980, 447981, 447982, 447983, 447984, 447985, 447986, 447987, 447988, 447989, 447990, 447999 |
| Mobile - Other | 0.405 | 447, 4474065, 4474172, 4474181, 4474183, 4474184, 4474185, 4474186, 4474408, 4474409, 4474414, 4474512, 4475206, 4475377, 4475593, 4475595, 4475718, 4475899, 4477000, 4477003, 4477007, 4477008, 447781, 4478221, 4478297, 4478298, 4478299, 4478360, 4478361, 4478369, 4478722, 4478727, 4478744, 4478939, 4479782, 4479783 |
| Mobile - from SurchargeZone1 | 0.555 | 447300, 447301, 447302, 447303, 447304, 447340, 447341, 447342, 447375, 447376, 447377, 4473781, 4473782, 4473783, 4473784, 4473785, 4473786, 4473787, 4473788, 4473789, 447379, 4473801, 4473802, 4473803, 4473804, 4473805, 4473806, 4473807, 4473808, 4473809, 447385, 447387, 447388, 4473890, 4473891, 447391, 447392, 447393, 447396, 4473970, 4473971, 4473972, 4473973, 4473975, 4473976, 4473977, 4473978, 4473979, 447398, 447399, 447400, 447401, 447402, 447403, 447404, 447405, 447407, 447409, 447410, 447411, 447412, 447413, 447414, 447415, 447416, 4474170, 4474173, 4474174, 4474175, 4474180, 447419, 447420, 447421, 447422, 447423, 447424, 447425, 447426, 447427, 447428, 447429, 447432, 447433, 447434, 447435, 447436, 447437, 447438, 4474400, 4474401, 4474402, 4474403, 4474404, 4474405, 4474406, 4474407, 4474416, 447442, 447443, 447444, 447445, 447446, 447447, 447448, 447449, 447450, 4474527, 4474528, 4474529, 447453, 447454, 447455, 447456, 4474586, 4474589, 447459, 447460, 447462, 447463, 447464, 4474652, 4474654, 4474656, 4474657, 4474658, 4474659, 447466, 447467, 447468, 447469, 447470, 447471, 447472, 447473, 447474, 447475, 447476, 447477, 447478, 447479, 447480, 447481, 447482, 447483, 447484, 447485, 447486, 447487, 4474884, 4474885, 4474887, 4474889, 447490, 447491, 447492, 447493, 447494, 447495, 447496, 447497, 447498, 447500, 447501, 447502, 447503, 447504, 447505, 447506, 447507, 447508, 447527, 447528, 447529, 447530, 447531, 4475320, 4475321, 4475322, 4475323, 4475324, 4475326, 4475327, 4475328, 447533, 447534, 447535, 447536, 4475374, 4475378, 4475379, 447538, 447539, 447550, 447551, 447552, 447553, 447554, 447555, 447556, 447557, 447570, 447572, 447573, 447574, 447575, 447576, 447577, 447578, 447579, 447580, 447581, 447582, 447583, 447584, 447585, 447586, 447587, 447588, 447717, 447721, 447722, 447723, 447726, 447727, 447728, 447733, 447735, 447737, 447741, 447747, 447748, 447757, 447758, 447760, 447765, 447766, 447767, 447768, 447769, 447770, 447771, 447772, 447773, 447774, 447775, 447776, 447778, 447779, 447780, 447782, 447785, 447786, 447787, 447788, 447789, 447790, 447791, 447792, 447794, 447795, 447796, 447798, 447799, 447800, 447804, 447805, 447806, 447807, 447810, 447811, 447812, 447813, 447814, 447815, 447816, 447817, 447818, 4478228, 447823, 447824, 447825, 447826, 447827, 447828, 4478290, 4478291, 4478292, 4478293, 4478294, 4478295, 4478296, 447830, 447831, 447832, 447833, 447836, 447837, 447838, 447846, 447847, 447848, 447852, 447853, 447854, 447855, 447859, 447861, 447862, 447863, 447865, 447866, 447867, 447868, 447869, 447870, 447875, 447876, 447877, 447878, 447879, 447880, 447881, 447882, 447883, 447884, 447886, 447887, 447888, 447890, 447891, 447896, 447897, 447898, 447899, 447900, 447901, 447903, 447904, 447905, 447906, 447908, 447909, 447910, 447913, 447914, 447915, 447916, 447917, 447918, 447919, 447920, 447929, 447930, 447931, 447932, 447939, 44794, 447950, 447951, 447952, 447953, 447954, 447956, 447957, 447958, 447959, 447960, 447961, 447962, 447963, 447964, 447965, 447966, 447967, 447968, 447969, 447970, 447971, 447972, 447973, 447974, 447975, 447976, 447977, 447979, 447980, 447981, 447982, 447983, 447984, 447985, 447986, 447987, 447988, 447989, 447990 |
| Mobile - from SurchargeZone2 | 3.54175 | 447300, 447301, 447302, 447303, 447304, 447340, 447341, 447342, 447375, 447376, 447377, 4473781, 4473782, 4473783, 4473784, 4473785, 4473786, 4473787, 4473788, 4473789, 447379, 4473801, 4473802, 4473803, 4473804, 4473805, 4473806, 4473807, 4473808, 4473809, 447385, 447387, 447388, 4473890, 4473891, 447391, 447392, 447393, 447396, 4473970, 4473971, 4473972, 4473973, 4473975, 4473976, 4473977, 4473978, 4473979, 447398, 447399, 447400, 447401, 447402, 447403, 447404, 447405, 447407, 447409, 447410, 447411, 447412, 447413, 447414, 447415, 447416, 4474170, 4474173, 4474174, 4474175, 4474180, 447419, 447420, 447421, 447422, 447423, 447424, 447425, 447426, 447427, 447428, 447429, 447432, 447433, 447434, 447435, 447436, 447437, 447438, 4474400, 4474401, 4474402, 4474403, 4474404, 4474405, 4474406, 4474407, 4474416, 447442, 447443, 447444, 447445, 447446, 447447, 447448, 447449, 447450, 4474527, 4474528, 4474529, 447453, 447454, 447455, 447456, 4474586, 4474589, 447459, 447460, 447462, 447463, 447464, 4474652, 4474654, 4474656, 4474657, 4474658, 4474659, 447466, 447467, 447468, 447469, 447470, 447471, 447472, 447473, 447474, 447475, 447476, 447477, 447478, 447479, 447480, 447481, 447482, 447483, 447484, 447485, 447486, 447487, 4474884, 4474885, 4474887, 4474889, 447490, 447491, 447492, 447493, 447494, 447495, 447496, 447497, 447498, 447500, 447501, 447502, 447503, 447504, 447505, 447506, 447507, 447508, 447527, 447528, 447529, 447530, 447531, 4475320, 4475321, 4475322, 4475323, 4475324, 4475326, 4475327, 4475328, 447533, 447534, 447535, 447536, 4475374, 4475378, 4475379, 447538, 447539, 447550, 447551, 447552, 447553, 447554, 447555, 447556, 447557, 447570, 447572, 447573, 447574, 447575, 447576, 447577, 447578, 447579, 447580, 447581, 447582, 447583, 447584, 447585, 447586, 447587, 447588, 447717, 447721, 447722, 447723, 447726, 447727, 447728, 447733, 447735, 447737, 447741, 447747, 447748, 447757, 447758, 447760, 447765, 447766, 447767, 447768, 447769, 447770, 447771, 447772, 447773, 447774, 447775, 447776, 447778, 447779, 447780, 447782, 447785, 447786, 447787, 447788, 447789, 447790, 447791, 447792, 447794, 447795, 447796, 447798, 447799, 447800, 447804, 447805, 447806, 447807, 447810, 447811, 447812, 447813, 447814, 447815, 447816, 447817, 447818, 4478228, 447823, 447824, 447825, 447826, 447827, 447828, 4478290, 4478291, 4478292, 4478293, 4478294, 4478295, 4478296, 447830, 447831, 447832, 447833, 447836, 447837, 447838, 447846, 447847, 447848, 447852, 447853, 447854, 447855, 447859, 447861, 447862, 447863, 447865, 447866, 447867, 447868, 447869, 447870, 447875, 447876, 447877, 447878, 447879, 447880, 447881, 447882, 447883, 447884, 447886, 447887, 447888, 447890, 447891, 447896, 447897, 447898, 447899, 447900, 447901, 447903, 447904, 447905, 447906, 447908, 447909, 447910, 447913, 447914, 447915, 447916, 447917, 447918, 447919, 447920, 447929, 447930, 447931, 447932, 447939, 44794, 447950, 447951, 447952, 447953, 447954, 447956, 447957, 447958, 447959, 447960, 447961, 447962, 447963, 447964, 447965, 447966, 447967, 447968, 447969, 447970, 447971, 447972, 447973, 447974, 447975, 447976, 447977, 447979, 447980, 447981, 447982, 447983, 447984, 447985, 447986, 447987, 447988, 447989, 447990 |
| Personal | 0.595625 | 4470, 4474179, 4475890, 4476433, 4478933 |
| Premium Services | 1.314875 | 449 |
| Special Services | 0.3175 | 44843, 44844, 44845, 44870, 44871, 44872, 44873 |
| Special Services - Other | 0.04875 | 443, 445, 44551107, 4455114, 445516, 44555500, 4455551, 4455553, 4455554, 4455555, 44558866, 4455888, 4456 |
| SpecialSvcsOther - from SurchargedZone1 | 0.27125 | 443, 445, 44551107, 4455114, 445516, 44555500, 4455551, 4455553, 4455554, 4455555, 44558866, 4455888, 4456 |
| SpecialSvcsOther - from SurchargedZone2 | 0.53 | 443, 445, 44551107, 4455114, 445516, 44555500, 4455551, 4455553, 4455554, 4455555, 44558866, 4455888, 4456 |
| from SurchargeZone1 | 0.27125 | 44, 44203, 44207, 44208, 44800, 44808 |
| from SurchargeZone2 | 0.53 | 44, 44203, 44207, 44208, 44800, 44809 |
For other destinations, please reach out to [support@upflow.io](mailto:support@upflow.io).
# Call recording & transcript
Source: https://docs.upflow.io/en-us/collection-and-collaboration/live-calls/recording-and-transcripts
Record the calls you place from Upflow and get an automatic transcript — turn recording on, start or pause it mid-call, then listen back and read the transcript from your customer's timeline.
Thanks to call recording and transcripts, you can gain visibility into previous calls and understand how they went. Once activated, all your calls can be recorded, and you are no longer left wondering how it went for your team.
This applies to calls placed from Upflow — see [Live calls from Upflow](/en-us/collection-and-collaboration/live-calls/live-calls-from-upflow) to set up and place a call.
## Activating call recording & transcripts
To activate that feature, head to the [calls settings](https://app.upflow.io/organization/-/settings/calls) and toggle on Call recordings. It will automatically include the transcripts. We recommend you also toggle on the *Start recording* option when the call starts, so you never forget about it.
Recording and transcripts add a per-minute fee on top of the call itself — see [Live calls pricing](/en-us/collection-and-collaboration/live-calls/live-calls-pricing).
## Recording a call
If you haven’t activated the call recording by default, you can do so right after the call starts.
You will see a red dot next to your microphone whenever a call is being recorded.
You can pause the recording at any time and restart afterward.
There is no automatic mention that the call is being recorded. If you operate in a jurisdiction requiring bi-directional consent to recording, we recommend you tell your contact.
## Listening to call recordings
You can listen to the call recording a few seconds after the call. Head to your customer’s timeline to access it. Simply use the player to listen to each conversation:
If needed, you always have the option to delete the call recording, hit the Delete recording button to do so:
## Reading call transcripts
Click on the expand button to see the transcript of the call. You will be able to see what each speaker said as well as when they said it.
Transcripts are only available in English today.
# Action campaigns
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/action-campaigns
Send personalized batch communications to selected customers in Upflow, regardless of balance or workflow status, to request updated payment details or run targeted outreach.
With our Campaigns feature, you can send personalized, batch communications to your customers with ease. Whether you're requesting updated payment methods or banking details, Campaigns allow you to reach all customers, regardless of their balance and ongoing collection process. Streamline your outreach and enhance your cash collection process like never before.
**Note:** Campaigns require automatic actions to be enabled. If your organization is in Test mode or automatic actions are disabled, campaign will not be sent. [Learn how to enable automatic actions](/en-us/upflow-configuration/organization-configuration/test-mode).
## How to set up a campaign?
Unlike usual collection reminders, the campaigns are not handled from the Workflows list view.
Head to your Customers list view, and select your customers. You can select them all, select them based on applied filters or search for customers sharing a keyword in their name (such as groups).
If you need to select more than 50 customers, tick the customers column, then click the blue link at the top right of the list to select all related customers.
#### Now, click the Actions button at the top right of the list, and select "Create action campaign", then the type you wish to send (email/sms/letters):
####
#### We recommend renaming your campaign first, to not forget!
See below, it became ***Test Campaign***.
#### Fill in the necessary fields and write your content:
You can use our [collection tag inserter](/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter) feature to personalize your content:
#### Once you're satisfied with your campaign, you can click the Send button.
## How to check my sent campaigns?
The campaign actions are sent within 10 minutes after hitting the Send button.
### Notifications
Once the campaign has been executed, the person who created it\* will receive a notification with the number of actions sent and the actions that couldn’t be sent.
If there is any issue with sending the action, e.g., a missing contact, **those actions become manual,** and the person who created the campaign will see them in their Actions To Do section. From there, they can either send the action or ignore it.
| Campaign fully successful! | Campaign partially successful | Campaign failed |
| - | - | - |
|
|
|
|
*\* The person who created and sent the campaign, will be the one receiving the notifications, regardless of the selected sender (different user or alias).*
### Actions list view
Once they're sent, you'll be able to see them in your Actions list view. Use the filter "Campaign" and select the one(s) you want to check:
And see the details:
You can also view the campaign action in your customers' timeline.
### Customer replies to the campaign
When a customer replies to a campaign email, the reply will go to the email address selected in the From field, regardless of the user who clicked "Send".
For example, if you create and send a campaign from your profile, but select an alias in the From field, then the replies will be redirected to the alias. Same if you select another user in that field.
What happens if I select a user who's Member/Account manager?
You can send a campaign using any user or alias in the From field. However, the above-mentioned combination is the most limited in Upflow ([read more](/en-us/upflow-configuration/your-teams-access/invite-and-manage-your-organizations-users)). A member/account manager can only see the customers they're assigned to and their dedicated reminders/reply actions.
In that case, the replies from the customers this user is not assigned to will fall in the To Do section of the user who created the campaign. Note that if the user who sends the campaign has this combination, they will be able to send it only to the customers they're assigned to.
### Conclusion
* Campaigns are available at the Customer level.
* Actions generated are sent automatically within 10 minutes.
* If the email can't be sent (i.e. contact issue), the email becomes manual.
* Campaign emails are visible in the Actions list view > All section.
* They have **no impact** on workflows.
* They are accounted for in the Analytics.
Do you have any questions, or feedback? Submit a Support request at the top of this article!
# Ad hoc actions
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/ad-hoc-actions
Create standalone tasks and reminders in Upflow outside any workflow to track manual follow-ups, team coordination or one-off collection actions on any customer or invoice.
Ad hoc actions allow you to create standalone tasks and reminders in Upflow without needing a specific customer workflow or invoice status. Use them to manage follow-ups with specific customers, coordinate actions with your team, or track any collection-related task that doesn't fit into your automated workflows.
## What are ad hoc actions?
Ad hoc actions are manual actions you can create on demand. Unlike workflow actions that are automatically generated based on your collection workflow configuration, ad hoc actions give you the flexibility to:
* Create an ad hoc action for a specific customer or invoice
* Start from an existing template or write your own message
* Works with any invoice status
NB: Ad hoc actions **are taken into account** in the calculation of the workflows’ minimum contact delay.
### Ad hoc actions vs. workflow actions
| Feature | Ad hoc actions | Workflow actions |
| - | - | - |
| **Creation** | Created manually by users | Generated automatically by workflows |
| **Use case** | One-off tasks, team coordination | Systematic collection process |
| **Requirements** | No specific invoice nor invoice status is needed | Requires active workflow and outstanding invoice |
| **Workflow impact** | **Do affect** the workflow’s minimum contact delay calculation | Respect the workflow minimum contact delay |
## When to use ad hoc actions
Ad hoc actions are ideal for:
* **Team coordination**: "Review credit limit for Customer X before their renewal"
* **Follow-up reminders**: "Call customer next week about payment plan discussion"
* **One-off tasks**: "Send thank you note after large payment received"
* **Investigation tasks**: "Research why invoice was disputed"
* **Internal reminders**: "Update payment terms in billing system"
* **Pre-emptive outreach**: "Contact customer before invoice becomes overdue"
**Tip:** For regular, systematic collection reminders, continue using your configured workflows. Use ad hoc actions for everything that falls outside your standard process.
## Creating an ad hoc action
### Step 1: Access ad hoc action creation
You can create ad hoc actions from several places in Upflow:
1. **From a customer detail page**: Click **"New ad hoc action"** at the top right of the page
2. **From an invoice detail page**: Click **"New ad hoc action"** at the top right of the page
**Where will the action appear?**
* **Customer-level** (created from the Customer detail page): visible in the **Customer timeline** only
* **Invoice-level** (created from the Invoice detail page): visible in the **Invoice timeline** and the related **Customer timeline**
### Step 2: Fill in action details
**Create ad hoc action**
Use an existing template to save time, or start from scratch:
* **Email**: Draft and send an email
* **Call**: Log a phone call
* **Task**: Create a general to-do item
* **SMS**: Send a text message
* **Letter**: Prepare postal mail
#### Add images to your email/letter
When creating an ad hoc email or letter, you have the ability to add images in-line.
To do so, you can either:
* Copy/paste an image in your email/letter body
* Drag the image from a file to your email/letter body
* Upload an image by clicking the dedicated icon
Note that while it's possible to proceed in ad hoc or manual actions, this is not yet possible in workflow steps or shared [Templates](/en-us/collection-and-collaboration/collaboration/templates).
Supported formats are: png, jpeg, gif and webp. Images have the same max file size as regular attachments: 15MB.
### Step 3: Execute immediately
* Click **"Send", “Done, or “Mark as completed”** (based on the action type) to perform the action right away
## Managing your ad hoc actions
### Viewing ad hoc actions
All ad hoc actions appear in your [Actions list view > All](https://app.upflow.io/organization/-/actions-list).
* Filter on “Source contains Ad hoc” for specific results. Add more filters based on your needs to narrow the displayed results.
## Frequently asked questions
#### Who can create ad hoc actions?
All Upflow users with action permissions can create ad hoc actions (learn more: [Roles & Positions](/en-us/upflow-configuration/your-teams-access/invite-and-manage-your-organizations-users)).
#### Do ad hoc actions affect my workflows?
Yes. Ad hoc actions are taken into account in the calculation of the workflows’ minimum contact delay.
#### Can I bulk-create ad hoc actions?
Not currently. Each ad hoc action must be created individually. For bulk communications, use campaign actions instead (cf. [Action campaigns](/en-us/collection-and-collaboration/run-your-collection/action-campaigns)).
#### Can I assign an ad hoc action to a collaborator?
Not today. This is something we’d like to offer later.
#### Can I schedule an ad hoc action to be performed on a future date?
Not today. This is something we’d like to offer later.
# AI editor assistant
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/ai-editor-assistant
Turn rough bullet points into polished reminders and notes inside Upflow with an AI editor that improves writing, fixes grammar, translates and adjusts tone.
As you write your reminders and notes, just write a few bullet points and let the AI editor assistant finish the work.
#### With the AI editor assistant, you can:
* **Improve writing** : the AI will take your content and figure out ways to improve it, by making it simpler, clearer, and without spelling mistakes.
* **Fix grammar and spelling** : the AI will take your existing content and ensure there are no grammar and spelling mistakes, without changing your content.
* **Translate** : the AI will translate your content into the language of your choice (see suggested list in-app).
* **Change the tone** : the AI will update your content to use the appropriate tone
* Friendly
New customers, good payment history, or when a softer approach is preferred.
* Encouraging
Customer expresses difficulty paying or you want to preserve long-term customer loyalty.
* Professional
Early-stage reminders or for important customers where positive relations matter.
* Concise
When the urgency is high, you want to respect the recipient’s time.
* Firm
Late payments with no response; to prompt immediate action.
Each time you use the AI editor assistant, it will provide the new content, and you can then:
* **Accept** : you are happy with the result and want to replace the original content
* **Insert below** : you like the new content but want to compare it with the original content. In that case the new content is inserted below the previous content
* **Reject** : you are not happy with the result and want to keep the original content
The AI editor assistant is available in your **actions** and **notes**.
When you are working on a reply action, it will also offer to suggest a reply to your customer
# Collection troubleshooting - what blocks my reminders
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/collection-troubleshooting-what-blocks-my-reminders
Diagnose why expected dunning reminders are not being sent in Upflow by reviewing workflow triggers, customer status and other conditions that pause collection.
As you may have seen already, we mention your collection reminders triggers in dedicated articles, for [customer-level](/en-us/collection-and-collaboration/workflows-basics/customer-level-workflow-trigger) or [invoice-level](/en-us/collection-and-collaboration/workflows-basics/invoice-level-workflow-trigger) collection.
In certain cases, you may expect for reminders to be sent/triggered to your customers, yet, it doesn't seem to be happening as expected. This can be due to diverse conditions or situations. Let's break them down.
You can check your customer's collection state from:
* The Actions list view > All section filtered
* Their timeline - check their latest reminder and date
* Their detail page (top right)
Let's first focus on what we see from the customer detail page at the top right!
## No action to do
If you see the following on your customer's page, either:
1. They have no outstanding invoices, therefore, no reminder can be triggered for them. If you need to contact them, you can use our [Campaign](/en-us/collection-and-collaboration/run-your-collection/action-campaigns) or [Ad hoc actions](/en-us/collection-and-collaboration/run-your-collection/ad-hoc-actions) features.
2. The customer is assigned to an empty workflow or "No workflow".
3. They have open invoices, but their balance is null or negative, due to unapplied transactions. In this case, we invite you to apply as many transactions as possible from your accounting tool. If you identify discrepancies, please [submit a support request](https://support.upflow.io/hc/en-us/requests/new) sharing the following examples:
* Customer name(s)
* References
* Screenshots of the latter from your tool
## Actions to-do
A manual action is pending and is waiting to be managed by its assignee(s).
If the button is Blue, you are the action assignee or one of them. Click the button, which will redirect you to your To do list and send or ignore the action.
If the button is white, it means you're not assigned to the action. You can see the action name and assignee(s) by clicking the button.
You can see more information from your Actions list view, All section, by filtering on the status "To do" + "Due date" = today's date, and search by customer name if needed. You'll see how long it has been pending and who should have managed it.
This can also be related to missing or invalid contacts to update.
## Next (automatic) action scheduled
This information mentions when the next action is planned/scheduled for.
## Check your workflow minimum contact delay
### Actions scheduled later than expected
You may see *Next manual/automation \[action] scheduled on date* for your customer(s), but don't understand why they're not due now, based on the invoice's age and the action's trigger.
But depending on the last action's performed date and your workflow minimum contact delay (MCD), there might be a bigger delay than expected.
The MCD is here to ensure your customers are not contacted within the delay you set up, to avoid spamming them.
Which means that, if you have two reminders with triggers that are less than the MCD, the latter will apply and delay the following action.
For example, your MCD is 5 days (default), but your 2nd reminder is planned 7 days after the date, and your 3rd reminder is 10 days after the date. Here, we only have 3 days between those two reminders, when we have a 5-day MCD. The 3rd reminder will then be sent 12 days after the due date, instead of 10, to respect the MCD.
Based on your process and needs, we advise to either:
* Change your reminders triggers to respect the MCD
* Decrease the MCD to adapt to your triggers
### Actions triggered sooner than expected
Similar to the above scenario, certain actions can be triggered sooner than what you would expect.
For example, if you planned a delay of 10 days between two reminders:
The 2nd reminder was sent, but the 3rd reminder was sent 5 days later, when you would expect it to be sent 10 days later.
This might be due to the carrying invoice age. If the latter is older than the trigger, the workflow will only apply the minimum contact delay between performed actions.
Same as above, you might want increasing the minimum contact delay in your workflow or create a dedicated workflow for customers with old carrying invoices.
# Email reminders: Delivery Statuses
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/email-reminders-delivery-statuses
Track whether your email and letter reminders are sent, delivered, opened or refused from the customer timeline in Upflow, and learn what each status means.
When sending reminders to your customers through Upflow, you can view the status of your outgoing actions from the customer timeline. Whether it's an email or a letter, track their status to see if your customers have received, opened, or refused them.
In your customer's timeline, you can see whether your email has been opened, received, or ignored, as long as your Deliverability is configured ([learn more](/en-us/collection-and-collaboration/emails/sending-emails-configure-your-domain)). Regarding your letters, you can find out if they have been delivered or are still being dispatched.
### Email reminders statuses
🚨 When your [Deliverability](https://app.upflow.io/organization/-/settings/domain) isn't configured, or is invalid, it can lead to emails delivery issues.
Some email providers might block Upflow's emails such as [reminders@upflow-mail.com](mailto:reminders@upflow-mail.com).\
[Here's how to resolve it](https://docs.upflow.io/en-us/collection-and-collaboration/emails/sending-emails-configure-your-domain)!
# Execute an action out of the workflow
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/execute-an-action-out-of-the-workflow
Trigger a manual reminder or log an unplanned call in Upflow before the next workflow step is due, while keeping all customer communication mirrored on the timeline.
Your collection sometimes cannot wait for the next action to be triggered. End of a billing period, an impromptu phone call to log, new contact to loop in…there are many reasons to complete a reminder prior to its scheduled date. Own your communication and make sure it is mirrored in Upflow with actions out of the blue!
#### **❗Actions out of the blue are only available**
* to a customer’s Owners and Admins
* when they have a positive outstanding amount (null or negative will prevent this option)
* as long as the next action is not due yet or planned in the next 24hrs if automated.
If the above-mentioned conditions are met, you can complete an action from a customer’s details page:
Click on the Remind now button in the top-right corner of the screen.
**💡 Alternatively, you will see**
* the clickable next action’s name if one was triggered and assigned to you
* a non-clickable “action due now” mention if one was triggered and assigned to someone else
* a non-clickable “No action to do” mention if the customer doesn’t owe you anything
#### Edit your template
When clicking the Remind now button, you will be redirected to an action editor, landing on an action template from the customer's assigned workflow (usually the next template scheduled in their workflow):
Click on the action type (Call, Email, etc) button to see your templates library and pick the one you'd like to send from any of your workflows.
Adjust it as you would when completing a manual action: pick the template you'd like to use and the involved parties, update its content or minute the phone call, and save or send to log it into your customer’s timeline.
### What is the impact on the collection
❗ Actions out of the blue are taken into consideration when calculating the next workflow action’s trigger date. They will be updated to meet your workflow's minimum contact delay.
But it will not replace the next action planned by the assigned workflow.
**FAQ**
* Is it possible to add recipients in cc/bcc when sending an action out of the blue?
Yes. The draft will, by default, add the contacts in cc/bcc from the suggested template. You can add more and/or remove some.
# Ignore or skip a step in my workflow
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/ignore-or-skip-a-step-in-my-workflow
Skip pending dunning actions for a customer or invoice in Upflow to jump to the next reminder earlier when the standard workflow timing no longer fits the case.
Even if every customer is assigned to a specific workflow, we are aware that each case is different and that it may be necessary to skip to the next reminder earlier than expected.
## Ignore a pending manual action
From your *[Actions](https://app.upflow.io/organization/-/actions) To do* section, click on the reminder you'd like to ignore, and click on the *Ignore* button at the bottom of the action:
Once you clicked on it, you'll see this message displayed:
Don't forget to refresh the *[Actions](https://app.upflow.io/organization/-/actions)* to do to see the next action (if there is one following immediately for this customer).
## Bulk ignore actions
Still from your Actions list view, "All" section, search for or filter your actions (on a specific customer, the action due date, etc.), select them, click Actions > Ignore.
## Identify an ignored action
From the same list view, you can filter actions on the "Ignored" status, and narrow your search on the filters "Due date" or "Performed date".
From the Customer's timeline:
Do you still have a question? [Submit a Support request](https://support.upflow.io/hc/en-us/requests/new)!
# Manage your Collection: optimize & pause your reminders
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/manage-and-pause-collection
Control when and how Upflow contacts your customers by enabling or disabling automatic actions and pausing the whole collection process from your organization settings.
Whether you're just getting started or need to adjust your collection setup, you can manage when and how your customers are contacted.
Note that the following features are not yet enabled by default. If you do not see them, but would like to benefit from them, please [submit a Support request](https://support.upflow.io/hc/en-us/requests/new) and let us know how this will help you. 😊
## Manage your collection settings
If you’re optimizing your organization, before going live or reviewing your process, you can enable or disable automatic actions from your Settings:
If *Enable automatic actions* is untoggled, you will see the following blue banner at the top of your screen:
### Enable/disable collection
From your **Settings > Collection section**, you can independently enable or disable Automatic Actions.
By disabling them, no collection emails or reminders will be sent without your control, allowing you to safely:
* Complete your setup without triggering outreach.
* Review or update your workflows.
* Temporarily pause collection activity for internal processes.
💡 Once automatic actions are enabled, your organization is considered fully live, and emails will be sent and recorded in customer timelines. Once enabled, the corresponding actions will be sent and recorded.
## Test your email reminders safely
You can preview and send test emails directly from each workflow template. This ensures your content and logic are as expected, without affecting your live collection or chase your customers.
➡️ [How to send a test email from a workflow.](/en-us/collection-and-collaboration/workflows-customize-your-collection/test-your-email-templates)
Any questions or feedback? [Submit a Support request](https://support.upflow.io/hc/en-us/requests/new)!
# Pause a customer's collection
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/pause-a-customers-collection
Delay pending or scheduled dunning actions for a specific customer in Upflow when payment is agreed for a later date, then automatically resume after the pause expires.
This article explains how to pause a specific customer collection. To pause your entire collection, please refer to [Manage your Collection: optimize & pause your reminders](/en-us/collection-and-collaboration/run-your-collection/manage-and-pause-collection).
Whether you need to delay a pending or coming action, or you agreed with your customer to delay their collection process and payment, you can pause their collection for a defined time.
For example: If you spoke to your customer recently and they mentioned the payment will be done by the end of the month, you can pause the actions they're linked to and will be reminded after the pause is stopped. For this specific example, you can also add a [Promise to pay](/en-us/core-entities/invoices/promise-to-pay) to the dedicated invoice(s).
## From the Actions To do list
In the [Actions list view, To do section](https://app.upflow.io/organization/-/actions), click on the "Pause" button and indicate the date at which you would like to have it planned. This will pause the customer's collection entirely (or the invoice if the collection is at [the invoice level](/en-us/collection-and-collaboration/workflows-basics/invoice-level-workflow-trigger)) until the selected date.
The action will only appear again as to be performed on the date you've paused it until.
## From the customer detail page
Whether the customer has a pending action or one to come soon, you can pause their collection from their detail page. Click "Pause collection".
...select the date you wish to pause the collection until:
You'll then see on the same page, top right, that the collection is paused until the date you selected, and you'll see a Restart button where the Pause collection one was before:
Finally, you can also see the pause on your customer's timeline:
## Identify paused customers
From the Customers list view, filter on "Collection status is Paused":
You can also add the column "End of pause" and sort it for better management. Don't hesitate to click "Save as new" at the top left to find this result in a few clicks ([Your Upflow list views](/en-us/upflow-configuration/organization-configuration/list-views)).
## Good to know
📍 Upflow pauses the collection at the beginning of the day UTC. In the platform, if the collection is paused until 1st of July, we guarantee that no actions will be sent for that customer before the 30th of June included. But collection would resume on 1st of July. Please, take the timezone you specified in your [Settings](https://app.upflow.io/organization/-/settings/company) into consideration.
If the collection is supposed to restart on a Friday, we advise you to push it till the following Monday.
When the pause ends, if the next action is due, it will:
* Appear in the action's assignees to do lists if manual.
* Be triggered on the next business day if automated and passed your scheduling time.
# Perform actions in bulk
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/perform-actions-in-bulk
Ignore or perform multiple manual collection actions at once from the Upflow actions list view, and learn which prerequisites unlock the bulk Perform option.
Do you have a lot of manual actions you would like to send in bulk? Via the actions list view, you can bulk ignore or perform those actions.
The bulk ignore action is available for all by default. However, the bulk Perform action is only available when using our feature [Send invoices from Upflow - Beta version](/en-us/collection-and-collaboration/send-invoices-from-upflow/overview).
## Bulk perform actions
You can select any action and click the **Perform** button. If we can, we will send it.
When we send it, it won’t be instantaneous but will happen within 10 minutes.
You can send any action you can access in the Actions list, even if you are not assigned specifically to that action.
You can perform up to 50 actions in bulk.
You will be able to see emails, letters, and SMS in the timeline with the automated icon.
For calls and tasks, a note will be added to clarify that it was performed in bulk.
### Reasons why actions can’t be performed
* Action is not TO DO
* Action content is empty (e.g., Reply actions)
* The contact is missing or invalid
## Bulk ignore actions
Similarly, you can ignore actions in bulk. This is particularly useful when you want to jump to a different workflow step for several customers, or ignore imported replies.
In that case, all the actions type will appear as Ignored.
# Reassign an action
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/reassign-actions
Change who is responsible for a To do action in Upflow, one at a time or in bulk, without changing the customer's owner or your workflow settings.
Every action is assigned automatically when it is created, based on your workflow settings. You can change who is responsible for a **To do** action at any time, by adding or removing assignees.
Reassigning is useful when:
* A customer reply reaches several people and you want one of them to handle it
* A colleague is away and their actions need picking up
* Work needs rebalancing across the team
Reassigning an action does not change the customer's owner, does not affect any other action, and does not change your workflow settings.
If the wrong people are assigned to *every* action of a given step, change the assignees on the workflow step instead. Reassigning handles one-offs — it does not change what the workflow does next time.
## Who can reassign actions
Owners, admins, and members with the **Finance user** position can reassign actions.
Members with the **Accountant** or **Account manager** position can be assigned actions and work them, but cannot pass them to someone else. If the assignees are shown but you cannot change them, this is why.
## Reassign a single action
**From your own To do list**
1. Go to your [**Actions**](https://app.upflow.io/organization/-/actions) list and open the **To do** tab.
2. Select the action you want to reassign.
3. In the action header, click the **Assignee(s)** field.
4. Tick the members you want to add, untick the ones you want to remove.
5. Click **Apply**
**For an action assigned to someone else**
Your **To do** tab only shows actions assigned to you. To reassign a colleague's action, open the **All** tab, click the action's name to open it, then use the **Assignee(s)** field in the same way.
An action cannot be unassigned; it must always have at least one assignee.
Action assignments respect customer permissions: members can only be assigned actions for customers they have access to.
If you remove yourself from an action in your To do list, it disappears from your list and you move on to the next one.
## Reassign several actions at once
1. Go to your [**Actions**](https://app.upflow.io/organization/-/actions) list and open the **All** tab.
2. Filter the list to **To do** actions. The All tab opens on **Done** actions by default.
3. Tick the actions you want to reassign. To cover every action matching your filters, use **Select all**.
4. Click **Actions**, then **Assign to**.
5. Choose the members, then click **Apply**.
Only **To do** actions can be reassigned. Any action in another state is skipped, so filter your list before selecting.
The picker shows who is already assigned across your selection. A tick means the member is assigned to every selected action; a dash means they are assigned to some of them. Leaving a dash as it is keeps those assignments untouched.
Large reassignments run in the background. You can carry on working, and you will get a notification once it is done.
## What happens to your choice afterwards
Once you reassign an action yourself, Upflow stops recalculating its assignees. Your choice stays in place until someone changes it again.
There is one exception: if the workflow step behind the action changes, the action is rebuilt and returns to automatic assignment. You will need to reassign it again.
## When someone leaves your team
If you remove a member who is still assigned to To do actions, Upflow asks you to pick a replacement. The replacement takes over the actions they have access to. Anything else returns to automatic assignment, so no action is left with someone who has gone.
## Related articles
* [Your Actions list view](/en-us/core-entities/actions/your-actions-list-view)
* [Perform actions in bulk](/en-us/collection-and-collaboration/run-your-collection/perform-actions-in-bulk)
* [Why can't I see some reminders or the same number as my colleague's?](/en-us/collection-and-collaboration/run-your-collection/reminder-visibility-differences)
# Why can’t I see some reminders or the same number as my colleague’s?
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/reminder-visibility-differences
Understand why your Upflow Actions tab shows a different number of reminders than your colleagues, based on your role and the Assignee(s) field assigned to each action.
You have a different number of actions compared to your other colleagues in Upflow? No worries, that could be due to two things:
* You may have different roles in Upflow (Financial manager, Account manager, Accountant...)
* You may have been given different actions (the "Assignee(s)" field in an action’s description - you can add as many as you want) ⤵️
Every person having the role added to this section, will see the action pending in their [Actions](https://app.upflow.io/organization/-/actions) tab. You can add several roles in this section: Account manager, Accountant, Financial manager or any specific person ⤵️
⚠️ Only users having the roles selected in this section will see the actions to perform. If your role is different, this will explain why you don’t see any actions to perform for a customer that should have one. Check the workflow assigned to this customer: if your role isn’t displayed in the assignee’s section, you will not see this action.
🚨 When customers aren't assigned to an account manager, they will be automatically considered assigned to the platform owner:
Have any other questions? [Contact us!](mailto:support@upflow.io)
# Why does a reminder action appear in my actions whereas I planned it for a later date?
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/reminders-unexpected-scheduling
Find out why a reminder you postponed reappears in your Upflow To-do list, usually after a workflow change or a payment shifting the carrying invoice.
Did you decide to program an action for a later date whereas it is still appearing in your reminder actions?
Programming a new date can be overridden for two reasons:
* You may have changed your customer’s workflow. The next action to carry out is determined depending on the new workflow’s reminder settings.
* An invoice with the oldest due date has been paid. Now the reminder is based on the date of the next receivable in line with the oldest due date.
Still have a question? Don’t hesitate to contact us!
# Sending payment receipts to your customers
Source: https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/sending-payment-receipts-to-your-customers
Confirm payments to your customers with automatic email receipts in Upflow, and give them access to the paid invoice PDF and outstanding balance via their portal.
Complete your customers’ payment experience with a payment receipt, confirming the operation went through and allowing them to retrieve a paid invoice PDF from their portal (where they’ll also see potential outstanding invoices!).
Please note that this feature applies ONLY for payments synced into Upflow from another source, but does not apply to payments processed through Upflow's portals (*Upflow Payments* or *Upflow Payments Lite*).
Any payment processed through Upflow's portals will generate an immediate email receipt, whether this feature is enabled or not.
## How to enable it?
Set this feature from the [*Invoicing*](https://app.upflow.io/organization/-/settings/invoicing) menu of your Settings by toggling the ***Send payment receipts***.
## What will happen then?
Every weekday morning between 8am and 9am (in the organization’s timezone), the main contacts of your customers who have completed a (several) payment(s) within the past 72 hours will receive a confirmation from [notifications@upflow.io](mailto:notifications@upflow.io)
They will not get an email per payment but a global one summing up payments received; along with a link to their Customer Portal.
# Send invoices from Upflow ✨
Source: https://docs.upflow.io/en-us/collection-and-collaboration/send-invoices-from-upflow/overview
Issue invoices directly from Upflow over email, postal mail or AP portals, customize the billing message and keep billing and collection visible in one place.
Start sending invoices from Upflow to
* Ensure your customers receive the invoice via email, letter or AP portals
* Customize the billing message content
* Have the full picture of billing and collection in Upflow
## How to set it up?
### Activate Send invoices from Upflow
To activate Send invoices from Upflow, you must head to your [settings](https://app.upflow.io/organization/-/settings/invoicing) and switch the toggle on.
Once activated, any new invoice imported into Upflow will be considered UNSENT regardless of your accounting/billing software status.
For example, if you have a direct debit in place and your system automatically considers those invoices PAID, we will still consider them UNSENT, so you can send them a copy of the invoice.
An UNSENT invoice is not considered in your analytics, the collections reminders, or the portal.
You can see all your UNSENT invoices in the [invoice list view](https://app.upflow.io/organization/-/invoices?filters=%7B%22status%22%3A%7B%22in%22%3A%5B%22UNSENT%22%5D%7D%7D).
Each UNSENT invoice generates an action that you can customize. The manual actions are visible in your to-do list > Billings:
## Choose how Upflow sends each customer's invoices
Choose how each customer receives their invoices. Use it when your customers need different delivery routes, or when some of their invoices still go out outside Upflow.
The channels available depend on your organization's configuration:
* **Email** — Upflow sends the invoice as a billing email, using the billing template of the customer's assigned workflow.
* **AP portal** — Upflow submits the invoice to the customer's AP portal (for example, Coupa). This option is only available for portals enabled on your organization.
* **Do not send** — Upflow won't send invoices to this customer. Unsent invoices are marked as sent automatically, so you handle delivery yourself.
### From a customer page
Open the customer page and set **Invoice delivery** in the main information block. Switching a customer to **Do not send** asks for confirmation, since it stops future billing emails for that customer. Invoices already waiting to be sent move on to their due date, and collection carries on as usual.
### For many customers at once
From the customer list, filter or select the customers to update, then click **Actions > Change invoice delivery**. Pick the channel, confirm, and Upflow queues a bulk update. You are notified once the operation completes.
Invoices already sent are not affected. Only invoices still waiting to be sent move to the new channel (or are released to their due date, when you switch to **Do not send**).
### Automatically, with a smart rule
Use the **Set invoice delivery** action in a [customer smart rule](/en-us/collection-and-collaboration/smart-rules/customer-smart-rules) to keep the channel in sync with a customer property (segment, country, custom field, and so on). The rule sets the channel every time its trigger fires, so new customers land on the right channel from the start.
## Configure the billing templates
To configure the billing templates, head over to your workflows to specify the content of the billing actions.
Only customer workflows handle the billing templates; all the corresponding invoices will use the same template. If you intend to rely on invoice collection, create an empty customer workflow to manage the billing templates only.
#### Billing template for customer hierarchy
If you have a parent and child customers, we will use the one who owns the invoice in your accounting system to determine the billing template to use. Even if the children’s invoices are displayed at the parent level, the billing template used for a child’s invoice, will be from the child assigned workflow.
If the child customer has no assigned workflow, no billing templates will be directly generated for their invoices. In this case, our system will fall back to the parent's assigned workflow's billing template. If the latter has no assigned workflow, you must assign a workflow to either the parent or the children, which can be empty, as the billing template will be included regardless as showed in the screenshot above.
### Customization options
The standard customization options apply. Learn [more here](/en-us/collection-and-collaboration/workflows-customize-your-collection/customize-collection-reminders).
You must only focus on the **carrying invoices tags** , as mentioned in the first example above.
If you insert tags such as \[Customer outstanding amount], \[Customer due amount], the related fields will not take the unsent invoice into account. Unsent invoices are included in the customer's amounts, only**after** it is sent, so **after** the related billing email is sent.
### Send invoices with a delay
You can choose to send your invoices a certain delay **before** or **after** the invoice's issue date, depending on your processes:
## Sending invoices from Upflow
### Automatic sending
Billing actions of type Email, Letter & SMS can be executed automatically. In that case, they are sent based on the delay’s value.
If the Delay is at 0 days and the action is automatic, we will send the invoice as soon as we receive it or on the issue date (if imported early). If it’s over 1 day, we will send the invoice on the appropriate day, at your organization's sending time.
If we can’t send the invoice, e.g., there is no contact, this action will be turned manual and assigned to the assignee of the action.
### Manual sending
If you want to offer a personalized approach, you can send invoices manually. In that case, the assignees of each action will see it in their to-do list.
If you ignore the billing actions, the invoices will still be considered sent and picked up by your collection workflows, the analytics, or the customer portal. Learn more [here](/en-us/collection-and-collaboration/run-your-collection/perform-actions-in-bulk).
### Manual bulk sending
From your Actions list view > All, you can filter billing actions to bulk send your invoices.
Filter on "Action state contains To do" + "Source contains Billing. You can also add the "Due date" filter if you wish to identify specific invoices (via their billing actions). The due date will be based on the invoice's issue date.
Then, select all billing actions, click Actions at the top right of the list, and Perform:
This will send all selected invoices in bulk to your customers, each invoice generating its individual billing email.
## Mark invoices as Sent
If you wish to update your invoices status, from "Unsent" to "Due", "Overdue", or "Paid", without sending communication to your customer, head to:
* the **Invoices list view** , filter unsent invoices, select the ones you wish to mark as sent. Click Actions > Mark as sent:
➡️ You can select up to 200 invoices for the bulk action. Above 200, nothing will happen.
* the **invoice detail page** , click the three dots at the top right:
* the **Actions tab > To do**: click ignore on the billing action. This will update the invoice status.
* the **Actions tab > All**: select the invoice (and more if needed), then Actions > Ignore.
* you can identify them quickly with the filters "Source = Billing" + "Status = To do". You can also add the "Due date" filter. The billing action due date will match the invoice's issue date.
## Exclude paid invoices from Collection
If invoices are synced with an outstanding amount at 0.00, you can prevent Upflow from sending them to your customers and stop them from triggering a billing action.
To enable this, head to your [Invoicing settings](https://app.upflow.io/organization/-/settings/invoicing) and turn on **Don't send paid invoices**. This toggle is only available when **Send invoices from Upflow** is on.
Once the toggle is on, any new invoices synced into Upflow with an outstanding balance of 0.00 will be imported as Paid directly, instead of Unsent, and won't be sent to your customers.
## Notes
* An UNSENT invoice is not considered in your analytics, the collections reminders, or your customer portal. Only your team can see unsent invoices in Upflow, to manage them and collaborate on their timelines.
* ‼️ To manage your unsent invoices, either to send them or ignore the billing action, your customers must be assigned to an empty workflow at least to benefit from the billing template. If assigned to "No workflow", no billing template will be available for their unsent invoices, meaning you will not be able to send them or ignore them.
# Customer smart rules
Source: https://docs.upflow.io/en-us/collection-and-collaboration/smart-rules/customer-smart-rules
Apply customer-level automations in Upflow with smart rules built from a trigger, optional filters and a final action, and review the triggers available.
To discover and understand our smart rules logic and behavior, we invite you to read [Smart rules](/en-us/collection-and-collaboration/smart-rules/smart-rules) first.
Customer smart rules apply to any customers in Upflow unless they have been excluded.
Smart rules have three steps, out of which the first and third are mandatory, while the second is optional based on your needs: **Trigger > *Filter* > Action**.
## Triggers
Here are the triggers available for customer smart rules:
| **Trigger** | **Description** |
| - | - |
| Customer is created | Triggered when a customer is created |
| Customer is created or updated | Triggered when a customer is created or updated. Updates relate to customer properties, including the outstanding balance, custom fields or workflow assignments. |
| Customer outstanding amount threshold | Triggered when a customer's outstanding amount exceeds or falls below a certain value. You will need to specify exceeds vs. falls below, as well as the appropriate value. |
| Customer rating threshold | Triggered when a customer rating exceeds or falls below a certain value. You will need to specify exceeds vs. falls below, as well as the appropriate value. (see examples at the bottom of this article) |
| Customer average payment delay threshold | Triggered when a customer's average payment delay exceeds or falls below a certain value. You will need to specify exceeds vs. falls below, as well as the appropriate value. |
## Filters
You can then add the specific filters/conditions this rule should follow to be applied. You can add as many conditions as you want, and those conditions will be additive (Condition 1 **AND** Condition 2).
* If you add multiple conditions, they will be additional:
Within the same field, multiple values will not be complementary\*, but independent from each other:
* If Country is US **Or** CA **Or** GB, then...
Filters apply to customer properties, including custom fields (cf. [Filters in Upflow](https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/filters#filters-in-upflow)).
## \*Text type fields
For Text type fields, you will see the options "Contains" and "Does not contain". The value you enter in this condition must have the exact same wording both in the rule and at the customer level.
If in the rule you use "B2B" as value, the value in the customer custom field must be "B2B". If it's "b2b", it will not apply. If your rule is set on "Contains = B2B, B2C", it will not apply either, as the rule will look for customers with the exact value "B2B, B2C".
If you wish to use the same behavior for multiple values, please duplicate the rule. One rule per value.
## Actions
Finally, you can select which action this rule should perform. Each rule only supports one action:
| **Action** | **Description** | **Example scenario** |
| - | - | - |
| Assign users | Assign users to the corresponding customer. You can specify one user or use a custom field with the email address of the corresponding users. | Assign all the Sales and CSMs to their customers depending on a custom field value |
| Assign a workflow | Assign a workflow to the corresponding customer. | Assign workflows automatically depending on countries, payment behavior, etc. |
| Assign payment methods | Assign payment methods to the corresponding customer. | Assign the card payment method to all your SMB customers |
| Set invoice delivery | Set how [Upflow sends this customer's invoices](/en-us/collection-and-collaboration/send-invoices-from-upflow/overview): by email, through an AP portal, or **Do not send**. Only channels enabled on your organization appear. | Route Coupa-onboarded customers to Coupa, or switch customers you invoice outside Upflow to **Do not send**. |
| Exclude from Upflow | Exclude the customer from Upflow. Be careful; you will not be able to import it back afterward. | Exclude from Upflow your internal customers |
| Send a notification\* | Send a notification to the person of your choice via the channel of your choice and with personalized content. | Send a notification to the customer's CSM when their outstanding amount is over their credit limit. |
When you are done, click the **Save & Close** button at the top right. Don't forget to give your rule a name so you remember what's in it. And activate it!
## Delete or deactivate a rule
## Apply the rule to existing customers
The rule you created will only apply to customers matching the rule’s trigger as detailed above.
For existing customers, you must ensure to use the option “Apply to all existing objects matching the rule’s conditions” when activating or reactivating the rule.
For more detailed examples, check [Smart Rules - Assignment Best Practice](/en-us/collection-and-collaboration/smart-rules/smart-rules-assignment-best-practice).
## When the customer rating threshold...
The rule trigger "Customer rating threshold" is usually meant to receive internal notifications to take actions, based on your customers' rating changes.
Note that there's no "equal to" condition today for this trigger. For the rule to apply, the rating has to actually exceed or fall below the selected rating in the rule.
The rules' creation will depend on the changes you want to be notified for.
When a customer rating threshold...
* Exceeds B, it will apply for any customers moving to rating A.
* Exceeds C, it will apply for any customers moving above C, so to A and B.
* Falls below A, it will apply for any customers moving from A to B/C/D
* Falls below C, it will apply to any customers rating A/B/C moving to D.
* Etc.
# Invoice smart rules
Source: https://docs.upflow.io/en-us/collection-and-collaboration/smart-rules/invoice-smart-rules
Automate invoice-level processes in Upflow with smart rules triggered on creation or update, then filter and apply actions tailored to your collection logic.
To discover and understand our smart rules logic and behavior, we invite you to read [Smart rules](/en-us/collection-and-collaboration/smart-rules/smart-rules) first.
Invoice smart rules apply to any invoice on Upflow.
## Triggers
| **Trigger** | **Description** |
| - | - |
| Invoice is created | Triggered when an invoice is created |
| Invoice is created or updated | Triggered when an invoice is created or updated |
## Filters
You can then add the specific filters/conditions this rule should follow to be applied. You can add as many conditions as you want, and those conditions will be additive (Condition 1 AND Condition 2).
* If Status contains Overdue **And** Outstanding amount is greater than \$5k, **THEN**...
Within the same field, multiple values will not be complementary\*, but independent from each other:
* If Status contains Due **Or** Overdue, then...
### Available filters
* Customer
* Status
* Due date
* Outstanding amount
* Paid amount
* Total amount
* Aging bucket
* Currency
* Issue date
* Payment date
* Workflow name
* Invoice visibility
* *Custom fields*
→ Filters related to the promise to pay status are not supported.
## Actions
| **Action** | **Description** | **Example scenario** |
| - | - | - |
| Assign a workflow | Assign a workflow to the corresponding invoice. | Assign workflows automatically depending on invoice due date. |
| Send a notification | Send a notification to the person of your choice via the channel of your choice and with personalized content. | Send a notification to the customer's CSM when the invoice is created. |
| Hide / Show invoice | Hide / Show the invoice from your customers | Hide invoices that are disputed from your customers while you resolve the dispute. |
## Delete or Deactivate a rule
## Apply the rule to existing invoices
The rule you created will only apply to invoices matching the rule’s trigger as detailed above.
For existing invoices, you must ensure to use the option “Apply to all existing objects matching the rule’s conditions” when activating or reactivating the rule.
For more detailed examples, check [Smart Rules - Assignment Best Practice](/en-us/collection-and-collaboration/smart-rules/smart-rules-assignment-best-practice).
# Smart rules
Source: https://docs.upflow.io/en-us/collection-and-collaboration/smart-rules/smart-rules
Automate manual tasks in Upflow with event-based smart rules combining entity, trigger, filter and action, and centralize every rule from the settings panel.
Smart Rules automate your manual tasks by leveraging an event-based engine. With Smart Rules, you can trigger actions based on specific events and conditions, simplifying your processes and saving time. You can access all your rules from [here](https://app.upflow.io/organization/-/settings/smart-rules).
## What is a rule?
A rule is a combination of:
* An entity: what is impacted by the rule (e.g. customer, invoice)
* A trigger: when is the rule triggered (e.g. Customer is created)
* A filter: what conditions should the entity meet (e.g. Country = US)
* An action: what should be done (e.g. Send a notification)
The triggers, filters, and actions will depend on the entity to which they are applied to. You can find more details about those in the following articles:
* [Customer Smart Rules](/en-us/collection-and-collaboration/smart-rules/customer-smart-rules)
* [Invoice Smart Rules](/en-us/collection-and-collaboration/smart-rules/invoice-smart-rules)
# Creating a rule
To create a rule, head to your Smart rules section and hit the **New rule** button.
## Activating a rule
Each rule can be activated or deactivated according to your needs. To do this, use the toggle in the smart rule list:
Or the rule's page:
Both options will generate the following message, allowing you to apply the rule's conditions to existing entities. To do so, click "Trigger all active rules for existing entities":
## Editing and deleting a rule
You can edit any rule after it’s been created. However, proceed with caution, if you make changes and save them while the rule is active, the rule will stay active and immediately start functioning based on the updated parameters.
You can delete a rule from the details view.
## Rule hierarchy - managing multiple rules
You can create as many rules as you need. When conditions are conflicting, the first rule in the list takes precedence. You should therefore place your most important rule at the top of the list. You can easily reorder the rules by dragging and dropping them to fit your needs.
## Isolate customers from being impacted by rules
It's not possible to ensure a customer is never impacted by a rule, especially if they met some rules' conditions. The solution is actually... a smart rule!
The rule's conditions depend on what you need for them. Let's say you need these customers to have no workflow assigned, or a specific one.
1. Create an Upflow custom field (or from your source of truth), such as Boolean type (True/False), named "Smart Rules", for example.
2. Create a smart rule in Upflow and ensure it's at the top of the list.
3. Save and activate it!
4. Head to your Customers list view, select all customers concerned by this rule, and mass update the Smart Rules field with the value "False".
# Smart Rules - Assignment Best Practice
Source: https://docs.upflow.io/en-us/collection-and-collaboration/smart-rules/smart-rules-assignment-best-practice
Bulk update existing customers and invoices when creating or editing a smart rule in Upflow, so the new logic applies retroactively to records already in the platform.
Before looking at specific use cases, it’s essential to note that you will need to update your existing customers or invoices when creating/updating a rule, to ensure they’re aligned with it.
You can refer to our [main article](/en-us/collection-and-collaboration/smart-rules/smart-rules) for more insights on what smart rules are and how they work.
## Manually bulk update customers/invoices
If you created or updated a rule in Upflow, you must take into account that it’ll apply only when the rule’s trigger (and conditions) are met. For existing customers (or invoices), you must ensure the following option is ticked:
Wait for the sync to happen (delay depends on the volume to update).
Then go to your Customers or invoices list view, refresh and check the data.
#### Rule update or manual application update
If you just edited an existing and active rule, and wish to apply this new behavior to existing objects (customers or invoices), we recommend you deactivate the rule, and reactivate it while ticking the option “Apply to all existing objects matching the rule’s conditions” (screenshot above).
Wait for the sync to happen (delay depends on the volume to update).
Then go to your Customers or invoices list view, refresh and check the data.
### Simple rule to assign a workflow
Activate the rule by ticking the option "Trigger all active rules for existing entities", OR
Head to your Customers list view and tick the Customer column. If this is for more than 50 customers, click the blue link at the top right of the list.
Then click Actions > Assign a workflow > select the workflow (here: Collection Agency).
Same process for invoices: Head to your Invoices list view, tick the Reference column, click the blue link > Actions > Assign a workflow > Select the workflow.
### Rule to assign a workflow based on a filter
Activate the rule by ticking the option "Trigger all active rules for existing entities", OR
Head to your Customers list view and filter on “Overdue amount = min = 1000”.
Tick the Customer column. If this is for more than 50 customers, click the blue link at the top right of the list.
Then click Actions > Assign a workflow > select the workflow (here: Collection Agency).
Same process for Invoices.
## Rules based on the customer threshold
If you decide to use the following trigger in your rules, "When a customer outstanding amount threshold 'exceeds/falls below' *amount* ", you need to take into account that if:
1. Existing customers already match this amount range, they will not be impacted by the rule.
2. If they are updated (field value, balance), but are still within the same amount range, it will not trigger the rule.
Let's say your rule is the following:
Your customer has a balance of 7k and is assigned to another workflow. They pay one of their invoices for 1k, which updates their balance. But they were already and still are above 5k. As they don't "exceed" 5k, the rule isn't triggered.
### Solutions
First, if you just created the rule, don't forget to mass assign the same behavior manually to existing customers, as detailed higher in the article.
You can create additional rules to take care of special cases as the example above. It can be based on the due, or overdue, or outstanding amount:
🚨 If you have other active smart rules, based on specific conditions, don't forget to take them into account here, and add the specificity to your new rule:
### Threshold rules - double management
If you use a rule based on the outstanding threshold, don't forget to create an additional one to support the reversed behavior.
If your rule is to unassign the workflow when the customer threshold **falls below** a certain amount, you'll want another rule to reassign a specific workflow when it **exceeds** a certain amount.
Feel free to share your needs and context with our [Support team](https://support.upflow.io/hc/en-us/requests/new) if you're not sure how to set this up.
## Assign users based on custom fields
### User email address
When using this option:
1. The custom field must absolutely be a TEXT type and contain the user’s email address.
2. If you need to assign more than one person, use one field per user.
3. Ensure the users are created in your Settings > Users, even if not invited.
### One of the fields is empty
If you decide to automatically assign users to your customers, based on custom fields, but one of the fields is empty, rest assured, the users present in the other one(s) will still be assigned.
Let’s say you need to assign three users to (some of your) customers:
1. AE email
2. CSM email
3. Sponsor email
But some customers only have a value in CSM email, while the AE and Sponsor email fields are empty. The CSM will still be assigned to the customer.
### Rule to assign users based on a custom field
Head to your Customers list view and filter on “CSM 1 = contains = *CSM email address*” - add the additional addresses if more than one field. Apply. (If you added a filter to your rule, add it to the view as well).
Tick the Customer column. If this is for more than 50 customers, click the blue link at the top right of the list.
Then click Actions > Assign users > ensure only the necessary users are ticked in blue, and others have a white box, not grey.
### Rule to assign users based on filters
Activate the rule by ticking the option "Trigger all active rules for existing entities".
# Smart rules - Filters best practices
Source: https://docs.upflow.io/en-us/collection-and-collaboration/smart-rules/smart-rules-filters-best-practices
Combine additive or independent filters when configuring Upflow smart rules, with practical examples covering the most common triggers and edge cases.
In this article, we’ll list some of the most recurring topics, questions, or examples you may need when using/configuring smart rules in Upflow.
You can refer to our [main article](/en-us/collection-and-collaboration/smart-rules/smart-rules) for more insights on what smart rules are and how they work.
## Rules with multiple filters
If you need your rule to be triggered based on multiple filters, you can add as many filters as you need, and those will be additive (1) or independent from each other (2):
* If you add multiple conditions, they will be additional:
Within the same field, multiple values will not be complementary\*, but independent from each other:
* If Country is US **Or** CA **Or** GB, then...
Filters apply to customer properties, including custom fields (cf. [Filters in Upflow](https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/filters#filters-in-upflow)).
## Text type fields
For Text type fields, you will see the options "Contains" and "Does not contain". Text conditions are **case-sensitive**. The value must match the field's content exactly, including uppercase and lowercase letters, spaces, and special characters.
If in the rule you use "B2B" as value, the value in the customer custom field must be "B2B". If it's "b2b", it will not apply. If your rule is set on "Contains = B2B, B2C", it will not apply either, as the rule will look for customers with the exact value "B2B, B2C".
If you wish to use the same behavior for multiple values, please duplicate the rule. One rule per value.
## Counter rule
When using specific conditions in a rule, you might want to create an additional one to handle the reversed behavior.
For example, if a rule is meant to assign a workflow based on a specific filter/condition, ensure the other rule(s) counter it.
Rule #1:
Rule #2
## Actions
Finally, you can select which action this rule should perform. Each rule only supports one action.
| **Action** | **Description** | **Example scenario** |
| - | - | - |
| Assign users | Assign users to the corresponding customer. You can specify one user or use a custom field with the email address of the corresponding users. | Assign all the Sales and CSMs to their customers depending on a custom field value |
| Assign a workflow | Assign a workflow to the corresponding customer. | Assign workflows automatically depending on countries, payment behavior, etc. |
| Assign payment methods | Assign payment methods to the corresponding customer. | Assign the card payment method to all your SMB customers |
| Exclude from Upflow | Exclude the customer from Upflow. Be careful; you will not be able to import it back afterward. | Exclude from Upflow your internal customers |
| Send a notification\* | Send a notification to the person of your choice via the channel of your choice and with personalized content. | Send a notification to the customer's CSM when their outstanding amount is over their credit limit. |
When you are done, click the **Save & Close** button at the top right. Don't forget to give your rule a name so you remember what's in it.
# SMS Reminders: Connect More Personally with Your Customers
Source: https://docs.upflow.io/en-us/collection-and-collaboration/sms/sms-reminders-overview
Add SMS reminders to your Upflow dunning mix to reach customers worldwide in one click, reduce manual work and boost the impact of your collection cycle.
## Introduction
At Upflow, we understand the importance of effective collection processes for merchants. To enhance the impact of collection reminders, we are introducing the capability to send SMS reminders directly through Upflow.
This feature aims to streamline the collection process, reduce manual work, and improve communication with customers.
## Benefits of SMS reminders
By incorporating SMS reminders into your collection processes, you can enjoy several benefits:
1. **Increased Impact**: SMS messages have a higher open rate compared to emails, ensuring that your collection reminders reach a larger audience.
2. **Improved Integration**: By using Upflow as the central repository for collection actions, you can consolidate all communication channels, including emails, calls, tasks, letters, and SMS reminders.
3. **Enhanced Customer Experience**: SMS reminders provide a convenient and direct way to notify customers about overdue balances, leading to faster payment responses.
4. **Efficient Tracking**: Upflow records the SMS reminders sent and displays their status in the customer and invoice timelines, allowing you to track the progress and effectiveness of your collection efforts.
## How SMS reminders work in Upflow
### SMS Reminders setup
Upflow integrates directly with Twilio, a popular SMS service provider. This integration enables us to offer SMS reminders within the Upflow platform. As a result, merchants do not need to set up separate SMS providers or integrate with different services.
To send SMS reminders in Upflow, add a new action type to your collection workflows. There you can define the details of the SMS reminder, including the action name, trigger (e.g., number of days after the due date), the assignee (who will send the SMS), and if you wish to automate it or keep it manual.
### SMS Status
The following status indicators are available:
* **Sent**: Indicates that the SMS has been successfully sent.
* **Delivered**: Confirms that the SMS has been delivered to the recipient's device.
* **Read**: Indicates that the recipient has opened and read the SMS.
* **Failed**: Indicates a delivery failure for the SMS.
* **Undelivered**: Indicates that the SMS could not be delivered to the recipient.
These status updates are displayed in the customer and invoice timelines, allowing you to monitor the progress and outcomes of your SMS reminders.
## Your contacts
Ensure your customers' contacts have a valid phone number, with the accurate country/area code (+33 for France, +44 for the UK, etc.).
The phone format can contain hyphens, dashes, spaces, or none, as long as the +/country/code area are there.
## Pricing
[SMS reminders pricing](/en-us/collection-and-collaboration/sms/sms-reminders-pricing)
# Current limitations
* All SMS are sent from a US-based phone number
* URL keys are not supported in Upflow SMS reminders
* Replies to that number are not imported into Upflow
# SMS Reminders: pricing
Source: https://docs.upflow.io/en-us/collection-and-collaboration/sms/sms-reminders-pricing
Review Upflow's pay-as-you-go SMS pricing, including the two cost components and how international destinations affect the rate of each text reminder sent.
Want to send more personal yet friendly payment reminders?
Incorporating SMS into your cash collection strategy is the way to go.
With SMS actions in Upflow, you can now send direct text messages to your customers in just one click — anywhere in the world.
The best part? SMS are incredibly affordable, and you only pay for what you send!
Our SMS pricing relies on 2 main components:
* number of “segments” (= length) of your message
* destination country of the recipient
A “segment” corresponds to:
* 160 characters if the message does not contain special ones like emojis or Chinese characters (153 if multiple segments in the same message)
* 70 characters otherwise (63 if multiple segments in the same message)
Pricing per segment varies for each destination country, for example:
* **US, Canada:** **\$0.02**\* per segment.
* UK: **\$0.05** per segment.
* France: \$**0.09** per segment.
* Other countries: variable; contact us for details.
Please note that only outbound SMS are supported for now.
\**carriers supported: AT\&T, Verizon, T-Mobile, US Cellular.*
# SMS Reminders: customize the sender name
Source: https://docs.upflow.io/en-us/collection-and-collaboration/sms/sms-sender-name
Replace the default Upflow sender with your own company name on SMS reminders so customers instantly recognize who's contacting them and trust your messages.
## Introduction
By default, SMS reminders sent from Upflow appear from **"Upflow"**. Because your customers may not recognize that name, they might ignore the message or report it as spam — reducing the impact of your SMS reminders.
To make your reminders instantly recognizable, you can replace the default sender with your own company name.
## Set your sender name
1. Go to [**Settings → SMS**](https://app.upflow.io/organization/-/settings/sms).
2. In the **Sender name** field, enter the name you want your customers to see.
3. Click **Save**.
Your new sender name applies to all SMS reminders sent from that point on.
## Naming rules
Sender names follow constraints set by mobile carriers. Your sender name must be:
* Up to **11 characters** long
* Made up of **letters** (A–Z, a–z), **digits** (0–9), and **spaces** only — no accents, punctuation, or other special characters
## Countries that don't support custom sender names
Some countries — for example the **US** and **Canada** — don't allow custom sender names. When your SMS recipient is in one of these countries, your reminder is sent from an Upflow phone number instead of your company name.
## Related articles
* [SMS Reminders overview](/en-us/collection-and-collaboration/sms/sms-reminders-overview)
* [SMS Reminders: pricing](/en-us/collection-and-collaboration/sms/sms-reminders-pricing)
# Add attachments to my emails
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/add-attachments-to-my-emails
Attach files to Upflow email reminders on the fly via drag and drop, or set default attachments at the workflow action level so every customer receives the same documents.
**Ad-hoc attachments**
You can drag and drop a file directly in the email or click on “Attach files” in your Actions list view.
**Default attachment**
If you need to send the same file(s) to all customers for a specific action, head to your workflow, click the action.
Then click the "Attach file" icon, and select your file from your computer:
## Add invoice PDF attachments automatically to the emails you send
From your [workflow](https://app.upflow.io/organization/-/settings/workflows) templates, for your automatic and manual actions, you can select which invoices you wish to attach by default to your email reminders:
The option is by default "None". You can update it at any times and save.
It can also be a different option per email reminder within the same workflow, or depending on the workflow.
# FAQ
#### Is there a file size limit?
Yes, your attachments and documents shouldn't exceed 15MB or 100 files.
#### Are all types of files supported?
Yes!
#### Can I add in-line images?
You can add images in-line only in ad hoc or manual emails and letters, and in timeline notes.
To do so, you can either:
* Copy/paste an image in your email/letter body
* Drag the image from a file to your email/letter body
* Upload an image by clicking the dedicated icon
Note that while it's possible to proceed in ad hoc or manual actions, this is not yet possible in workflow steps or shared [Templates](/en-us/collection-and-collaboration/collaboration/templates).
Supported formats are: png, jpeg, gif and webp. Images have the same max file size as regular attachments: 15MB.
# Collection tag inserter - Best practices
Source: https://docs.upflow.io/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter-best-practices
Pick the right collection tags in your Upflow email and letter templates, focusing on the carrying invoice and other key references to keep reminders accurate.
When configuring your collection email/letter templates, you can personalize them using our [collection tag inserter](/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter).
But, how to best use them to reflect the right information in your templates?
## Focus on the carrying invoice
The Carrying invoice is the oldest unpaid invoice of your customer, when the reminder is triggered. You can benefit from multiple tags based on this reference to focus your reminders on it. This is the reference (and tags) we'll offer in our default templates when creating a workflow or a new action.
## Due vs Overdue
When using due/overdue tags in your reminders, be mindful of when this reminder is meant to be triggered.
Any reminders scheduled **before the due date** must absolutely not use **Overdue** tags (invoice list or amount). As this reminder is meant to be triggered only if the customer has no overdue invoices, these tags would render blank or show a 0.00 amount.
**Before the due date...**
Focus on the Carrying invoice tags, the **Due**, or outstanding tags:
* Customer due amount
* Customer outstanding amount
* Due invoice number list
* Carrying invoice number
* Carrying invoice outstanding amount
* Any other carrying invoice tags
**After the due date...**
**You can then focus on the customer's entire balance:**
* Customer outstanding amount
* Outstanding invoice number list
And also add some overdue data additionally:
* Customer overdue amount
* Carrying invoice days since due date or Carrying invoice due date
""... of which Customer overdue amount has been overdue for Carrying invoice days since due date days." → "... of which \$2,500 have been overdue for 5 days.
## Highlight your customer's entire balance
If you want your collection reminders to show the outstanding balance and all open references, then we'd advise using the following tags:
* Customer outstanding amount
* Customer overdue amount
* Overdue invoice number list
* Due invoice number list
For example:
Or
## Highlight your customer's Overdue balance
Then, only use the following tags, and attachment option:
* Customer overdue amount
* Overdue invoice number list
Overdue tags must only be used in email templates sent after the due date (under the red banner "Invoice is due"). If used in templates scheduled before the due date, they will be blank in the received email, as these are only sent when the carrying invoice isn't overdue yet. Meaning the customer has then no overdue balance.
## Billing template specificities
If you use our feature to [Send invoices from Upflow ✨](/en-us/collection-and-collaboration/send-invoices-from-upflow/overview), you must only focus on the **carrying invoices tags** , as mentioned in the first example above.
If you insert tags such as \[Customer outstanding amount], \[Customer due amount], the related fields will not take the unsent invoice into account. Unsent invoices are included in the customer's amounts, only **after** it is sent, so **after** the related billing email is sent.
Please note that when testing a billing template (cf. [Test your email templates](/en-us/collection-and-collaboration/workflows-customize-your-collection/test-your-email-templates)), the template collection tags will be blank or incomplete in the received test email, as the unsent invoice is not taken into account in the customer's balance and related data, until it's actually sent.
Would you like suggestions on other use cases? Please let us know by submitting a Support request.
# Contact management overview
Source: https://docs.upflow.io/en-us/core-entities/contacts/contact-management-overview
Understand how Upflow imports and updates customer contacts from each native integration and the rules that govern main and additional recipients.
By default, your contacts are continuously imported and updated from your billing or accounting tool. Their specifics depend on your integration.
| **Integration** | **In your billing tool** | **In Upflow** |
| - | - | - |
| Chargebee | Main and additional contacts. | The main and additional contacts are imported. |
| NetSuite | Customer contact and relationships. | The main contact is imported, as well as the Relationships if related to the same account. |
| Pennylane | Contacts at the customer level | Upflow imports all contacts present in the customer field "Email address (optional)". The first one is considered the main contact. |
| QuickBooks | No contacts but email fields. | Each email is created as a contact. |
| Sellsy | Main and additional contacts. | The main and additional contacts are imported. |
| Stripe | One contact per customer. | Only the contact at the customer level is imported. |
| Xero | The main contact is flagged | Only Customers contacts. |
| Zuora | Main and additional contacts. | The main contact is the one from the "Bill to" section. |
You can alternatively [connect your Salesforce account](/en-us/integrations/salesforce/connect) to your Upflow organization(s), making your CRM the source system for your contacts.
❗Upflow information will mirror those of the designated source (CRM or billing tool), so any update you want to see applied must be performed there.
If your contacts are not managed in your billing tool and you are using a CRM not yet integrated with Upflow, you can manage them directly from Upflow. This includes bulk imports and adjustments on the fly — even while sending a reminder! You can also refer to the [API documentation](https://upflow.docs.apiary.io/#reference/0/contacts).
### Useful to know
When using one of the automated options, here's what the priority order would look like, depending on the configuration you have on your end:
1. Salesforce - as a native (secondary) integration, Salesforce data takes over API's requests, smart rules or manual updates - user assignment only.
2. API - If Salesforce isn't used for contacts, and you wish to automate a behavior to update/create contacts in Upflow.
3. Smart Rules - will overrule manual updates or CSV imports.
4. CSV imports or Manually from the app
# Send emails to a custom field address
Source: https://docs.upflow.io/en-us/core-entities/contacts/custom-field-email-recipients
Use an email address stored in a custom field as the recipient of your customer communications, so reminders reach the right person on each invoice or customer automatically.
Some invoices and customers need to reach a specific person — a billing contact that can differ from one invoice to the next. When that email address is stored in a custom field, you can use the field itself as the recipient, and Upflow pulls the right address every time it sends.
With this, you can:
* Use an email held in a custom field as the **To**, **Cc**, or **Bcc** of any email — in a workflow step, a template, a campaign, or a one-off email.
* Keep automated emails reaching the right person without copying the address in by hand
* Stay in sync with your source system — the field's current value is resolved each time the email is sent
## Before you start
The custom field must already exist and hold a valid email address. You can sync the value from your source system or enter it directly in Upflow.
Custom-field recipients use your existing **text** custom fields — there's no separate "email" field type to set up. See [Import and create custom fields into Upflow](/en-us/core-entities/others/import-and-create-custom-fields-into-upflow) for how to create a field or sync one from your ERP.
The field can hold a single address, or several addresses separated by a comma (`,`) or a semicolon (`;`). See [When the field holds several addresses](#when-the-field-holds-several-addresses) below.
## Use a custom field as a recipient
1. Open the email you want to configure — a step in a [workflow](https://app.upflow.io/organization/-/settings/workflows), a [template](https://app.upflow.io/organization/-/settings/action-content-templates), a campaign, or a one-off email.
2. Click the **To**, **Cc**, or **Bcc** field to open the recipient picker.
3. Your custom fields appear grouped in the list — invoice fields under **Invoice fields**, alongside your customer fields and team members. Each field shows its current value so you can confirm the address.
4. Select the field. Upflow uses that field's value as the recipient, resolving the current address on each invoice or customer every time the email is sent.
A custom-field recipient is treated like any other typed-in email address: no contact is created, and nothing is added to the customer's contact list.
## When a field is empty or invalid
Upflow normalizes and validates the field's value at send time.
* **Automatic actions** fall back to manual: if the field is empty or the address isn't valid, the email isn't sent automatically — it's surfaced for someone to handle manually instead.
* **Manual actions** flag the problem on the recipient — for example, *"Invoice recipient email" is missing or invalid*. Update the field's value to fix it.
If a message is sent but can't be delivered, it appears in the [Action emails not delivered](/en-us/collection-and-collaboration/emails/action-emails-not-delivered) widget as an *invalid email* — not an invalid contact, since the address doesn't belong to a contact. To resolve it, correct the value in the custom field.
## When the field holds several addresses
A text custom field can list several email addresses in a single value. Upflow accepts both `,` and `;` as separators, and tolerates spaces around them — for example `alice@acme.com, bob@acme.com; carol@acme.com`.
At send time, Upflow splits the value on those separators and treats each piece as a separate recipient in the same position (**To**, **Cc**, or **Bcc**):
* Each valid address is added individually — the field does not send one email to a joined string.
* Empty pieces and pieces that aren't valid email addresses are dropped silently.
* Duplicates in the same list are removed (case-insensitive), so the same address isn't emailed twice.
* If nothing valid remains after filtering, the field is treated as missing: automatic actions fall back to manual, and manual actions flag the recipient as missing or invalid, as described above.
This applies to customer and invoice fields used as recipients. Contact custom fields work differently — they filter existing contacts rather than carry an address value — so multi-address parsing doesn't apply to them.
## Good to know
Both customer and invoice custom fields can be used as recipients:
* **Customer fields** work everywhere — in both customer and invoice workflows.
* **Invoice fields** read the address from the invoice the email is about, so they're available wherever an invoice is in context: invoice workflows, one-off invoice emails, and the billing step of a customer workflow.
On a customer level workflow step — which isn't tied to a single invoice — use a customer field. If an invoice field is used in a template that runs there with no invoice in context, the email falls back to a manual action so you can choose the recipient.
## Related articles
* [Import and create custom fields into Upflow](/en-us/core-entities/others/import-and-create-custom-fields-into-upflow)
* [Customize Collection Reminders](/en-us/collection-and-collaboration/workflows-customize-your-collection/customize-collection-reminders)
* [Templates](/en-us/collection-and-collaboration/collaboration/templates)
* [Action emails not delivered](/en-us/collection-and-collaboration/emails/action-emails-not-delivered)
# Import and update your contacts via CSV
Source: https://docs.upflow.io/en-us/core-entities/contacts/import-and-update-your-contacts-via-csv
Bulk import or refresh customer contact details, positions and main-recipient flags into Upflow using a CSV when your billing tool does not sync them.
You do not use one of our native integrations to manage your contacts, or you need to import more/update their positions? Use CSV imports!
❗Your contacts' details can only be updated with this method if your organization **is not connected to a solution overwriting their information**. They can be imported into Upflow depending on your source system.
| **Your source system** | **Contacts main information** | **Contacts Positions** | **Is main** |
| - | - | - | - |
| Native integration | ❌ | ✅ | ✅ |
| API\* | ✅ | ✅ | ✅ |
| Salesforce + native integration | ❌ | ✅ | ✅ |
| Salesforce + API\* | ❌ | ✅\* | ✅ |
\*assuming your API setup allows it and doesn't overrule it.
## File content
Start with creating a compliant spreadsheet with the information you want to update. You can create it from scratch, or export your contacts from Upflow and update this file.
Save it as a CSV file. You can apply ";" (semicolons), "," (commas) and "|" (vertical bars) separators.
Create one line per contact, even if you have multiple contacts for one customer, with columns as fields you want to update. We strongly recommend naming them (however you want) to ease the mapping.
Duplicate the lines of accounts with multiple contacts (you only need to copy and paste the customers’ ID and/or name).
💡 Mandatory fields are listed below (🚩)
| **Columns** | **Details** |
| - | - |
| 🚩 Customer name | As displayed in Upflow. |
| 🚩 Client ID (External Id) | Your customer's ID in your accounting tool. |
| 🚩 Contact email address | One per line. |
| First name | Optional, but recommended. |
| Family name | Optional, but recommended. |
| Phone number | Optional, except if you wish to use SMS and/or call reminders. |
| Position | Highly recommended to define your reminders’ recipients. |
| Main contact | Add a “1” in this column on the contact’s line to designate it as your main contact. You can only have one main contact per customer. The latest update overwrites your existing configuration.\* |
\*If you use one of our native integrations, please check if the following option is active or not. If active, it will overrule the CSV import. Refer to the Main contact section of [Your Upflow contacts](/en-us/core-entities/contacts/your-upflow-contacts) for more information.
You'll find a template file to update your contacts attached at the bottom of this article.
## Import process and information
This feature is not available by default. Submit a Support request if you haven't used this feature before, so we can enable it for you.
Click **Add customers** in the top-right corner of your **Customers** list view and select the **Assign customers** option (if you're fully integrated with API or our legacy integration, you will see the option "Import customers").
## Map your file’s columns with the matching Upflow Customer fields. 💡 Mandatory fields are marked as **Required.**
Submit the document and wait for the completion of the import.
You can be notified in-app, via mail and/or Slack, per your **Profile > Notifications**.
Check your **Import history** (accessible from the same button as the import) to review the latest updates (timestamp and uploaded spreadsheet). Those marked as erroneous detail why some elements weren’t updated to help you fix the file. Error messageFixAccount manager not found; check the email. Create a member associated with the uploaded email address.
## Import errors
After importing your file, you will see an in-app notification at the bottom left. You can click it, or head directly to your Customers list view > Add customers > Import history.
Then click the import you need to check in the list, usually the most recent:
You will then see how many lines in your file failed, and the error reason:
You can click **Download lines with errors** to check them closely and filter on potential other errors not visible in this view. You can then correct your file and attempt a new import.
# Invalid emails
Source: https://docs.upflow.io/en-us/core-entities/contacts/invalid-emails
Identify contacts with an invalid email address in Upflow and mark them as valid again once you have confirmed or corrected the address.
When a reminder email bounces, Upflow flags the contact's email address as invalid and stops sending emails to it. Once you have confirmed the address is correct or updated it, you can mark it as valid so reminders resume.
## Identify invalid emails
Upflow marks a contact's email as invalid as soon as one of their email actions fails to deliver. You can spot invalid emails in two places:
* On the **Customer detail page**, in the Contacts section: the invalid email shows a red warning icon next to the address.
* In the **Contacts list view**, filtered on **Email Status is Invalid email**:
You can also enable delivery-failure notifications on your profile to be alerted the moment an action fails. See [Customize my Profile Notifications](/en-us/upflow-configuration/your-user-profile/customize-my-profile-notifications).
## Mark an email as valid
Before marking an email as valid, confirm with your customer that the address is correct, or update it if it is not.
* If the contact is synced from your accounting tool or CRM, update the email address in the source system. The correction syncs back into Upflow.
* If the contact was created in Upflow, edit the email address directly on the contact.
Once the address is confirmed:
1. Open the contact from the **Contacts** section of the customer detail page or from the **Contacts** list view.
2. Click the pen icon next to the contact to open the **Edit contact** panel.
3. Click **Mark as valid** next to the Email field, then click **Submit**.
Reminders resume from the contact's next scheduled action. Marking as valid does not resend failed reminders. If you need to reach out before the next scheduled reminder, create an [ad-hoc action](/en-us/collection-and-collaboration/run-your-collection/execute-an-action-out-of-the-workflow).
If the address bounces again, Upflow marks it as invalid a second time. In that case, double-check the address with your customer rather than marking it as valid again.
## Related articles
* [Your Upflow contacts](/en-us/core-entities/contacts/your-upflow-contacts)
* [Missing contacts and errors](/en-us/core-entities/contacts/missing-contacts-and-errors)
* [Action emails not delivered](/en-us/collection-and-collaboration/emails/action-emails-not-delivered)
# Missing contacts and errors
Source: https://docs.upflow.io/en-us/core-entities/contacts/missing-contacts-and-errors
Troubleshoot common Upflow contact issues including duplicate recipients in cc, missing contacts after sync and import errors from CSV or integrations.
You will find below the most recurring issues related to contacts creation/import in Upflow. Submit a Support request if your issue isn't listed below.
## Why is the same contact as main recipient and cc'd on the same email?
If you notice your contact appears both as main recipient and in cc or bcc within the same email, it might be due to your email template recipients configuration.
#### 1 - Either their position is set to be in all multiple fields:
\*Here, the main contact would be present at least twice through "Main contact" and "All contacts".\*
#### 2 - The selected specific position set in your email template could not be found at the customer level:
With the latter, if the contact position doesn't exist at the customer level, then it will fall back to the Main contact by default (applied to all recipients fields, cc/bcc included).
Rest assured, if the same contact is present multiple times as recipient in the same email, they will receive the email only once.
## "This email address is invalid"
This error might occur because your contact's address isn't valid anymore or contains a character that is not supported.
Only the following characters are supported today for contacts' email addresses:
* Letters: a-zA-Z
* Digits: 0-9
* Some symbols: + \_ ' . -
Any other symbol or character will prevent the contact from being added to Upflow, as they'd be rejected by our email provider, Mailgun.
As our email validation aims to be consistent with the Mailgun one, if your contact's address contains a character that isn't listed above, it'll probably and unfortunately be rejected.
## A contact wasn't synced from my billing tool
You're integrated with one of our native integrations and a contact wasn't synced into Upflow?
First check their format as mentioned in the first example above, for any unsupported character.
Or refer to the dedicated contact article based on your [Integration](https://support.upflow.io/hc/en-us/categories/13815951388945-Integrations).
## API contact import fail
You're trying to create/import a contact via API, but are getting an error.
Please submit a support request at the top and provide:
* The exact error you're getting when sending your API call
* Your API call details (preferably in code, but you can also share a screenshot additionally)
* Your contact and customer details
# Your Upflow contacts
Source: https://docs.upflow.io/en-us/core-entities/contacts/your-upflow-contacts
View, manage and segment the customer contacts Upflow uses for collection reminders, with details available on each customer or in a global tab.
Upflow contacts are your interlocutors with your customers and the people you reach out to throughout your collection process.
Their list is available in the Contacts section of your customers’ details or in the [dedicated tab](https://app.upflow.io/organization/-/contacts).
Each contact must at least have a valid email address.
You can flag your main interlocutor and elaborate with additional information, such as a contact’s name, phone number, or position.
## Update/Deletion of existing contacts
Any existing contact in Upflow can be edited or deleted depending on their source:
1. If created in Upflow (manually, or CSV), you can edit all fields, or delete the contact.
2. If synced from your accounting tool, you'll only be able to update their position. Any other field or their deletion must be done from your tool.
## Create a contact in Upflow
Whether you use one of our native integrations or not, you can create a contact on the go in Upflow.
From your Customer's detail page, Contacts section, click the "Add" button:
The essential information to fill will be the email address, but we highly suggest to add a name, surname and position to this contact.
Don't forget to click Submit when you're done. You can update your contact info or delete it at any point.
## Positions
By default, your contacts are continuously imported and updated from your billing or accounting tool, **except for their position**. You can alternatively connect your CRM (1) to Upflow and pull both your contacts and Account managers from there, or even go with manual updates.
(1) We offer a direct [integration with Salesforce](/en-us/integrations/salesforce/connect), which you can connect through your Settings > CRM.
For any other CRM, you can rely on an [API integration](https://upflow.docs.apiary.io/#reference/0/contacts).
Your contacts are by default imported without a position.
While not mandatory, their use is highly recommended: it allows you to designate a contact/group of contacts as your reminders’ recipients.
If you use specific positions as email recipients, ensure all your customers have at least one contact matching it. Otherwise, the email will be sent to the main contact by default ([learn more](/en-us/core-entities/contacts/missing-contacts-and-errors)).
### Create and update contact positions
From your Settings > Contact Management section, you will see four default positions: Accountant, Payer, Purchaser, and Sales.
➡️ Add new positions, update or delete existing ones, and Save!
If you decide to delete a position, decide between moving the contacts that were assigned to a new one or leaving them without a position. Actions scheduled for this position will then be redirected to your impacted customers’ main contact.
## Manage your contacts positions
You can define it for each in-app\*, via [CSV import](/en-us/core-entities/contacts/import-and-update-your-contacts-via-csv), or [API](https://upflow.docs.apiary.io/#reference/0/contacts). Or use [contact custom fields](/en-us/core-entities/contacts/contact-custom-fields) for Salesforce or NetSuite.
* At the contact level, from the customer detail page or the Contacts list view, click the Pen icon:
Select the position you wish to apply and Save!
💡 If you leave a customer’s contacts without a position, actions will be directed to their main contact.
## Main contact
### Main contact management source
The main contact varies depending on its source, especially for our native integrations (NetSuite, QuickBooks, etc.). Please refer to our Integrations section to find the dedicated documentation for your contacts management. You can also enable the *Main contact management* option from your Settings > Contact management.
If your contacts are imported by API or CSV files, then it will depend on the information provided when imported. If it's not mentioned, the first one to be imported will by default be the Main contact.
If created in Upflow, and the customer had no contacts yet, the first one to be created will be by default the main contact.
This role can be moved from one contact to the other using the pen icon in Upflow.
### Main contact - manual update
You can decide in Upflow, if a contact should be the main one. To do so, access the contact (from the Contacts list view or the customer's Contact section). Click the pen icon next to the contact, then tick the following option and Submit:
If the option is not available in the contact editor panel, it means that the main position is managed by your accounting tool, as detailed in the above section, and therefore, can't be edited manually.
## Invalid contacts
### Be notified
Be alerted if one of your actions fails to be delivered. You can receive notifications via your preferred channel (in-app, via email, and/or on Slack) and enable/disable them from your profile (i.e., [Customize my Profile Notifications](/en-us/upflow-configuration/your-user-profile/customize-my-profile-notifications)).
This notification will be triggered each time one of your customers' actions fail: emails, letters, sms.
### Identify and correct your contacts
As soon as an email or an SMS action's delivery fails, the concerned contact's email address or phone number will be marked as invalid.
#### Calls and SMS
Ensure your contacts have a phone number in Upflow. If they are synced from your accounting tool or Salesforce, ensure to update the phone number there. If the contact was created in Upflow, you can update their phone number manually or via CSV.
Ensure your customers contacts have a **valid phone number, with the accurate country/area code** (+33 for France, +44 for the UK, etc.).
The phone format can contain hyphens, dashes, spaces, or none, as long as the +/country/code area are there.
#### Emails
When an email action fails to deliver, Upflow marks the address as invalid and stops sending to it until you confirm or correct it.
➡️ See [Invalid emails](/en-us/core-entities/contacts/invalid-emails) to identify the affected contacts and mark an address as valid again.
# How do I include account managers in the payment reminder process?
Source: https://docs.upflow.io/en-us/core-entities/customers/account-managers-in-reminders
Bring sales and account managers into Upflow payment reminders by adding them as users, assigning customers, and looping them into collection emails.
Sending customer payment reminders often takes place separately from the sales cycle process. However, it should be a primary focus for your sales team/account managers since it is the key driver of your financial performance.
**Step 1: Add new members**
Are you looking to add your Account Managers to the platform but you don't know which status to give them?
To invite new members: Click in the top right corner settings menu Members. You then click on "Invite a member".
We recommend inviting them as a **Member** to give them access to the platform (while restricting access to the account settings), and to give them the **Account Manager** status so that they can view their customer portfolio with a personalized overview.
**Step 2: Assign account managers to their customer accounts**
[Here's](/en-us/core-entities/customers/assign-users-or-workflows-to-your-customers) the 3 alternatives on how to do this.
**Step 3: Assign a follow-up reminder action to your Account Managers**
From the **Action** tab, your Account Managers are able to follow-up on the actions that need to be performed. To do so, you have to include "Owners" in the field "Assignee(s)".
You can also add them by default to be in copy of reminder emails by adding the "Account Manager" in the copy field (CC) or as a hidden copy (CCI).
**Step 4: Monitor and follow-up on reminders**
In your Analytics tab, you can access data pertaining to your Account Managers such as:
* Actions that need to be performed and actions that have been completed by Account Managers
Still have a question? Don’t hesitate to get in touch!
# Assign account managers and collection workflows to customers via CSV
Source: https://docs.upflow.io/en-us/core-entities/customers/assign-managers-and-workflows-via-csv
Upload a CSV from the Upflow customer list view to assign account managers and collection workflows to many customers at once without manual edits.
You have a lot of customers and would like to easily assign their workflows and account managers? We've got you covered.
From the customer list view, you can import the customer assignation via CSV.
This article explains how to assign via CSV imports:
* Users to customers
* Workflows to customers
Note it's not possible to unassign users/workflows via CSV imports.
## Format your file
Your file needs to have the following columns:
* **External Id:** the customer's id from your source tool (QuickBooks, NetSuite, Stripe, Chargebee, etc..). If necessary, you can find it by exporting your customers from Upflow and checking the *External Id* column.
* **Account manager email:** the email of the account manager. Note: the account manager needs to be invited to Upflow ([Invite and manage your organization's users](/en-us/upflow-configuration/your-teams-access/invite-and-manage-your-organizations-users)).
* **Workflow name:** the **exact** name of the workflow.
It should be formatted as a **CSV**.
If you want to assign multiple users to the same customer, you'll need to separate their email address by a comma. 🙂
## Step by step process
1. Go to your customer list view
2. Click on Add customers > Assign customers
3. Import your file
4. Map the corresponding columns (additional columns will be discarded)
5. Submit and wait for the assignation to happen!
6. Once the assignation is done you will get a notification. Quickly check if the import was successful, if it's not the case, you can see the error lines and update your file accordingly!
## Import errors
From the notification link or the Import history, check your latest import by clicking it.
You'll then see the following information, indicating the number of errors and showing the identified errors:
You can click *Download lines with errors* , to check them closely, filter on potential other errors not visible in this view. So you can then correct your file and attempt a new import.
Note that even if only one error is detected, the import will be marked as "Error". You can quickly see how many customers were updated from the import list, or the top of the import details.
#### Error: "Dunning plan not found, check spelling"
If you're getting this error even though the workflow name appears identical to what's shown in Upflow, this is likely caused by invisible formatting characters (non-breaking spaces) that get added when copying and pasting workflow names.
**Solution: Reset the workflow name**
1. Go to the Workflows list view, and open the affected workflow
2. Click on the workflow name to edit it
3. Erase the entire name
4. **Manually type** the workflow name **(do not copy/paste)**
5. Save the workflow
Once you've retyped the workflow name, you can now:
* Copy the name from either the workflow page or the workflows list
* Paste it **without formatting** (Cmd/Ctrl + Shift + V) into your CSV file
* Retry your import
Note: This issue occurs because certain spaces or formatting characters can be invisible in the UI but prevent the CSV import from matching the workflow name correctly. Manually retyping the name removes these hidden characters.
### Possible errors and solutions
| **Error** | **Solution** |
| - | - |
| The customer was not found | Check and update your customer external ID in your file. |
| User not found, check the email | It can be due to a typo in the address, or between multiple addresses. Or the user doesn't exist in Upflow and must be created. |
# Assign users or workflows to your customers
Source: https://docs.upflow.io/en-us/core-entities/customers/assign-users-or-workflows-to-your-customers
Assign collection workflows and account managers to customers in Upflow manually, in bulk from list views, or automatically with segmentation rules.
Once your workflows are ready, you can assign them to your customers manually, or automatically.
## 1 - Manually and in bulk
From your Customers list view, you can filter your customers based on different criterias, such as custom fields.
Tick the Customer column. If you have more than 50 customers, a blue link will offer you to select all at the top right of the list. Click it.
* Then click Actions > Assign a workflow > select the workflow
* Then click Actions > Assign users > select the user(s)
## 2 - Manually from the Customer detail page
Access your customer's detail page.
Then, click on the workflow/user name and select the one you want to replace it with.
It will be immediately updated.
## 3- Manually using a CSV import
You can perform CSV imports based on the customer name and their external id.
Start by exporting your customer list view from Upflow (filtered if needed) - or use an internal file.
* And here's [a full article](/en-us/core-entities/customers/assign-managers-and-workflows-via-csv) on how to proceed.
### Manual update not saved
Your manual updates can sometimes not be saved and still display the previous assigned workflow. This might be due to an automation, such as Smart rules.
Automations will always overrule manual updates. Check your smart rules to ensure none is blocking a manual update. If they are, edit your rules to adapt to your needs.
* And refer to the last section of this article for more insights.
## 4 - Automatically using our Smart rules
You can find all information on our dedicated article: [Smart rules](/en-us/collection-and-collaboration/smart-rules/smart-rules).
You can also refer to our dedicated "how to" article: [Smart Rules - Assignment Best Practice](/en-us/collection-and-collaboration/smart-rules/smart-rules-assignment-best-practice).
The important thing to take into account, is that a smart rule overrules any manual assignment option.
## 5 - Automatically using our API
*\[We recommend this solution, however, it requires help from an IT resource and Zapier plan pro].*
When you integrate your billing data through our API, it is possible to directly assign a collection workflow or an account manager to a customer through our [Customer](https://upflow.docs.apiary.io/#reference/0/customers) endpoint (both when creating or updating a customer) according to your own logic.
If you are using one of our native integrations like QuickBooks Online, Chargebee or Stripe Billing, you can use the same API functionality to do this via [Zapier](https://zapier.com/) or any other automation platform.
Depending on a trigger from your billing software, you can then configure rules to dynamically update the corresponding customers in Upflow.
For example, you can assign different collection workflows depending on the customer's registered payment method in Chargebee by having a branching logic :
And then making a PUT request to the customer in Upflow to update their "dunningPlanId":
NB: your "dunningPlanId"s are available upon request, please reach out to us to get yours!
## Useful to know
When using one of the automated options, here's what the priority order would look like, depending on the configuration you have on your end:
1. Salesforce - as a native (secondary) integration, Salesforce data takes over API's requests, smart rules or manual updates - user assignment only.
2. API - If Salesforce isn't used for account owners, and you wish to automate the Upflow owners from an external tool or a specific information not available in Upflow.
3. Smart Rules - will overrule manual updates or CSV imports.
4. CSV imports or Manually from the app
Still have a question? Don’t hesitate to submit a request at the top right.
# My customer balance seems off
Source: https://docs.upflow.io/en-us/core-entities/customers/customer-balance-discrepancies
Diagnose why a customer outstanding balance in Upflow does not match the sum of invoices, including unapplied payments, credits or sync delays.
The outstanding amount displayed does not correspond to the sum of invoices? Does it show an unapplied balance?
This might be due to:
* an unlinked credit note
* an unlinked refund
* an unlinked payment
* a synchronization issue
* etc.
On your Customer's page, check:
* their open invoices and remaining amounts
* the payments list and unapplied amounts
* the credit notes and unapplied amounts
Identify the above, check them in your accounting tool.
If both tools don't reflect the same information, please contact our Support with:
* The related references + their IDs in your billing tool
* Expected behavior
* Screenshot of these references from your billing tool
# Customer timelines (reminders, notes, payments, etc.)
Source: https://docs.upflow.io/en-us/core-entities/customers/customer-timelines-reminders-notes-payments-etc
Track every reminder, note, payment and interaction with a customer in one Upflow timeline view so handovers and follow-ups stay accurate.
Stay on top of your cash collection history using the customer timeline. Whether you're stepping in for a teammate on holiday or managing multiple accounts at once, Upflow ensures you never miss a beat. The customer timeline centralizes all interactions with your clients—whether they’re overall account activities or specific to individual invoices.
Easily review past exchanges, track commitments, and confirm whether your reminders have been read—all without the hassle of digging through your CRM, switching between tools, or chasing down colleagues. Everything you need is right at your fingertips in one place.
To access the Timeline, open any Customer or Invoice details and click **Timeline** in the menu on the right-hand side of your screen.
# Timeline content
## Actions History
* **Content**: Every minuted phone call or reminder (email, letter, task) performed in Upflow is available here to read, from the most recent to the earliest.
* **Details**: Find out who performed each action and when. Do two of your colleagues have the same initials? Hover your mouse over an action assignee to display their full name.
* **Action status**: Check whether your mail (electronic and postal) has been received, opened, or [failed to be delivered](/en-us/collection-and-collaboration/emails/action-emails-not-delivered).
* **Attachment(s)**: Download the attached files.
Skipped actions are logged, along with the time they were canceled and their assignee.
## Your customer’s replies
If you have set up the replies import, your customer’s answers to your reminders will automatically be added.
As well as your replies sent from Upflow\*:
\**See below: Reply to your customers.*
## Payment details
Every completed (failed or successful) transaction is displayed on the related timelines, linked to the associated invoice and its due amount, along with the transaction timestamp. Click on the invoice line to access its details.
## Collection status
If a collection was paused for a customer, the information will be displayed at the very beginning of their Timeline. This mention will disappear as soon as the process is restarted.
# Timeline actions
## Comment and mention
Ease your account management with notes, or draw your teammates’ attention by mentioning them\* to trigger a notification (email, slack, or only in-app).
*\*If the user you mention is a Member/Account manager, they must be assigned to the customer to access their timeline and your note. Otherwise, they won't be available to be tagged.*
## Attach a file to your note
You can attach any files to the notes you leave on any timelines (Actions, Invoice details page, Customer details page).
* Attachments can be added after the note is created.
* There is no file format limit.
* There is a limitation of 25 attachments to a note, and 15Mb global size limit.
* There is no preview of the attachment, but it’s downloadable from the note
You can also attach a file to your note, directly from a pending action:
## Pin / unpin
Highlight essential information and make it easily accessible anytime by clicking on the pin next to any note (this doesn’t apply to other timeline events). It will add a pin logo next to your customer’s name and display the selected comments when hovered over. Undo it in the same way from the timeline or the pinned notes.
You can also add your pinned notes as a column from your Customers list view\.Customers' pinned notes are included in Customer exports.
* If there are several pinned notes for the same customer, they are added sequentially in the same field.
* All formatting is flattened, and attachments are not included in the export.
## Reply to your customer
Save time sending email replies directly from Upflow. No need to jump from one inbox to another searching for the right thread—find any email you want to follow up on in your timeline, and hit *Reply*.
You will be redirected to the \*Action editor—\* as when setting an [action out of the blue](/en-us/collection-and-collaboration/run-your-collection/execute-an-action-out-of-the-workflow), except you won’t be able to change its type. Compose and format your reply, ensure the right parties are looped in (you can even add custom addresses), attach a file if needed, and voilà!
The email will be sent from the user who performed the action and includes the exchange history, and your customer’s answer will be added to the timeline—[if you enabled the reply import](/en-us/collection-and-collaboration/emails/import-your-customers-replies-automatically), that is!
***
❗ Please note your email will be considered an action if you have an ongoing workflow with this customer and could postpone the next action to respect the defined minimum contact delay.
***
# Exclude customers from Upflow
Source: https://docs.upflow.io/en-us/core-entities/customers/exclude-customers
Exclude test, internal or do-not-contact customers from Upflow collection workflows, reporting and analytics while keeping their record in the system.
Certain customers, such as test accounts, internal users, or customers you don't want to contact, may need to be excluded from your Upflow collection process and data analysis.
Customer exclusion means the customer itself and its meta-data (name, etc.) will be in Upflow (but invisible) but none of its associated data (invoices, transactions, etc…) will be.
### Excluded customers
As mentioned at the top, Customer exclusion means the customer itself and its metadata (name, etc.) will remain in Upflow (but invisible), but none of its associated data (invoices, transactions, etc). Those will be deleted.
You will be able to see any excluded customers from your [Upflow Settings](https://app.upflow.io/organization/-/settings/excluded-customers) (only accessible by Admin users).
There, you can also export the list of corresponding customers.
Upflow natively excludes some customers depending on your integration (e.g., Intracompany or Inactive customers on NetSuite).
#### Exclude customers from the settings
By clicking on **Exclude more customers**, you can search and exclude specific ones:
#### Exclude a customer individually
From the customer details page, click the three dots at the top right, then the option:
#### Excluding customers in bulk
From the Customer list view, you can also decide to exclude several customers.
#### Excluding customers automatically
To ensure that a certain type of customers is never available on Upflow, set up a dedicated smart rule.
* Note that when setting up this rule, you will need to perform a [mass manual exclusion](/en-us/collection-and-collaboration/smart-rules/smart-rules-assignment-best-practice), using the option above, for existing customers.
### Re-include customers
To re-include customers, head over to the list of excluded ones. Search for and select excluded customers you wish to import back into Upflow. Then click Actions > Re-include customers.
Once you have started the re-inclusion, our system will resync the customers’ data; it may take some time, depending on the volume.
If you notice customers must be re-included regularly, check your exclusion smart rules to ensure their configuration matches your needs ([add a filter](/en-us/collection-and-collaboration/smart-rules/smart-rules-filters-best-practices), such as "**is not** > this condition" or only **"is** this condition") to ensure only necessary customers are excluded from Upflow.
#### Missing customers
If you are missing a customer in Upflow, looking in the excluded customers list is always a good start.
# Import and update your customers via CSV
Source: https://docs.upflow.io/en-us/core-entities/customers/import-and-update-your-customers-via-csv
Bulk import or update customer records, contacts and account managers in Upflow using a CSV file when your source system does not sync that data natively.
Your customer-facing teams operate on a tool not connected to your organization? Upload their freshest changes so your Upflow information is always up to date.
❗Your customers' details can only be updated with this method if your organization **is not connected to a solution overwriting their information**. They can be imported into Upflow depending on your source system.
| Your source system | Details | Contacts | Account managers |
| - | - | - | - |
| Native integration | ❌ | ❌ | ✅ |
| API\* | ✅ | ✅ | ✅ |
| Salesforce + native integration | ❌ | ❌ | ❌ |
| Salesforce + API\* | ✅ | ❌ | ❌ |
\*assuming your API setup allows it.
# File
Start with creating a compliant spreadsheet with the information you want to update: assigned Workflow or Account manager(s) (i.e., owners), contacts who receive your reminders, details relevant to your teammates.
💡 Mandatory and accepted fields are listed below.
Save it as a **CSV file**. You can apply ";" (semicolons), "," (commas) and "|" (vertical bars) separators.
# Import process
Click ***Add customers*** in the top-right corner of your ***Customers*** tab and select the ***Import*** or ***Assign customers*** option.
If not applicable, it is replaced with an **Assign customers** button. The process remains the same.
Map your file's columns with the matching Upflow Customer fields. Mandatory fields are marked as **Required**.
Submit the document and wait for the completion of the import. You can be notified in-app, via email and/or Slack, per your **Profile** configuration.
Check your **Import history** (accessible from the same button) to review the latest updates (timestamp and uploaded spreadsheet). Those marked as erroneous detail why some elements weren't updated to help you fix the file.
| Error message | Fix |
| - | - |
| Account manager not found; check the email. | Create a member associated with the uploaded email address. |
# Columns
Add the following columns to your spreadsheet: their values will populate Upflow fields. Mandatory fields are 🚩 flagged!
## Details
Create one line per customer, with their details as columns.
| Columns | Details |
| - | - |
| 🚩 Customer name | Identifies this account on Upflow (list, details, analytics…) |
| Customer ID | Your customer external ID (the ID they have in your billing tool), which you can check from their customer page under the Details section. |
| Accounting code | |
| VAT number | |
| Address | |
| Postal code | |
| Town | |
| State/Region | |
| Country | |
## Groups and entities
If your customers are grouped or have subsidiaries, create additional columns and populate them on the child companies' lines, indicating the relationship.
| Columns |
| - |
| 🚩 Parent name |
| 🚩 Parent ID |
## Assignment
To assign an Account manager or a Workflow via file upload, add the following columns to your customers' list.
💡 If you are maintaining your customers and contacts via integration and solely resort to this feature to import your assigned account managers and/or workflows, no need to add the customers' details.
| Columns | Details |
| - | - |
| 🚩 External ID | The ID of the customer on your source system. |
| Account manager | Email address associated to an existing member of your organization with an Account manager role. 💡 Separate emails with a comma to assign several account managers. |
| Workflow\* | Name of the workflow assigned to your customer as displayed on your organization. |
#### CSV assignment - Case sensitive
When assigning workflows or users to your customers via CSV, ensure:
* the workflow name is the exact same in your CSV file: this is case-sensitive, and also applies to symbols. Copy the full workflow name in Upflow and paste it in your file.
* the user's email address contains no capital letters, and is the exact same as in your Users list view. Ensure the user is created first, then copy their email address and paste it in the CSV file.
## Custom fields
It is also possible to import customer custom field data using a CSV file.
Requirements for custom fields:
* The custom field must already exist in Upflow
* Only Upflow-managed custom fields can be imported via CSV
* Synced custom fields from your source of truth can't be updated by CSV, and must be managed from your system
To include custom fields:
1. Add a column with the exact name of your custom field
2. Format the values according to the custom field type (see formatting guide below)
CSV import file
**Formatting guide**
| Custom field type | Format | Example |
| - | - | - |
| Text | Plain text (max 2,000 characters) | "Premium customer" |
| Number | Use period (`.`) for decimals. Commas not supported. Negative values and decimals are supported. | "1234.56" |
| Date | `YYYY-MM-DD` format only | "2025-12-31" |
| Single-Select | Text value that exactly matches an existing option in Upflow. New values cannot be created via CSV. | `Active` |
| Multi-Select | Multiple values separated by commas or semicolons. All values must already exist in Upflow. | "Tag1,Tag2,Tag3" |
| Boolean | `true` or `false` (case insensitive) | `True`, `FALSE` |
## Contacts
Create additional columns to update your customers' contact information. Duplicate the lines of accounts with multiple contacts (you only need to copy and paste the customers’ ID and/or name).
| Columns | Details |
| - | - |
| 🚩 Customer name | |
| 🚩 Client ID (External ID) | Your customer's ID in your accounting tool. |
| 🚩 Contact email address | |
| First name | |
| Family name | |
| Phone number | |
| Position | Usable when defining your reminders' recipients. Choose between Accounting, Sales, Purchaser, or Payer. |
| Main contact | Add a "1" in this column on the contact's line to designate it as your main contact. You can only have one main contact per customer. The latest update overwrites your existing configuration. |
# Manage your customers information in bulk
Source: https://docs.upflow.io/en-us/core-entities/customers/manage-your-customers-information-in-bulk
Filter your Upflow customer list view by custom fields and apply bulk updates such as assignments, workflows or exclusions to multiple accounts at once.
Customers’ updates can be completed from the dedicated list view and applied to several at once.
[Filter them](/en-us/upflow-configuration/organization-configuration/filters) per your interest criteria (including your custom fields), and save the view if you are likely to access the same list again.
| Click the Actions button, select the operation you want to perform, and let the app guide you through:
* [Assign a workflow or one/several users](/en-us/core-entities/customers/assign-users-or-workflows-to-your-customers)
* [Assign a payment method](/en-us/payments/accept-online-payments/managing-online-payment-methods)
* [Modify custom field values](/en-us/core-entities/others/import-and-create-custom-fields-into-upflow)
* [Enable/Disable Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay)
* [Enable/Disable surcharges](/en-us/payments/collect-online-payments/passing-card-surcharges-on-to-customers)
* [Create Action campaigns](/en-us/collection-and-collaboration/run-your-collection/action-campaigns)
💡 Manage this list like the others: hide/display and rearrange columns, save your preferred views to access them in a click, search/filter...
## From another source system
You can alternatively opt for updates from different source systems
* [Connect Salesforce](/en-us/integrations/salesforce/connect) to your organization and automatically assign your Account owners as Upflow Owners.
* Update your customers’ workflow, owner(s), custom fields, and payment method(s) via API.
* Pull the information using our [Update Customer endpoint](https://upflow.docs.apiary.io/#reference/0/customers/update-customer)
* Configure behaviors triggered by your source system’s events with automation tools such as Zapier (ex: assign a workflow based on a customer’s payment method with a PUT request)
* Import a CSV file to mass-assign Workflows and Account managers ([learn more](/en-us/core-entities/customers/import-and-update-your-customers-via-csv)).
# Can I leave an account unassigned?
Source: https://docs.upflow.io/en-us/core-entities/customers/unassigned-accounts
Leave customer accounts unassigned in Upflow to fully automate collection, cover manager handovers, or match how your AR team is organized internally.
Owners can access the information of and take actions on the customers assigned to them. If you decide to fully automate a cash collection flow, need some time between managers' handover (or if it suits your internal organization in any other way!) you can un-assign Accounts from them.
It is as simple as following the [assignment process](/en-us/core-entities/customers/assign-users-or-workflows-to-your-customers)…and untoggling the user's name.
## From the Customers list view
***
👉 This method will allow you to update several customers at once.
***
Once you have filtered and picked the Customers you want to update on your *[list view](https://app.upflow.io/organization/-/customers)* , click on the *Actions* button on the top right corner and select the option you are interested with (i.e., Assign users).
You'll see three assignment options on the users list:
* A white box (Dev Eloper) means this user is assigned to none of the selected customers.
* A white box with a dash (Dean), means this user is assigned to some of the selected customers.
* A blue box (Tina), means this user is assigned to all selected customers.
When assigning users to your customers, if some users need to be unassigned, their box must be white. If you need the users to be assigned to all selected customers, click their box until blue.
## From a customer's detail page
Access to the customer you want to update, and click the Owners field. It will display a drop-down list you can pick your option(s) from.
***
💡 When you unassign an account from an Owner, their responsibility will be transferred to the organization’s Finance users.
If your organization has none, the organization owner will take over!
***
# Your customer details page
Source: https://docs.upflow.io/en-us/core-entities/customers/your-customer-details-page
Navigate the Upflow customer details page to review balances, invoices, contacts, timeline activity and configuration for a single account in one place.
❗Access to customers is subject to a member’s permission. Account managers without an Administrator role thus will only see the customers they’re assigned to.
Either pulled from the source system integrated with your organization or imported via CSV, your customers are accessible in the dedicated tab.
Click any line to access a customer's details.
## Main information
When accessing your customer details page, you will see different sections.
On the left of your screen, you'll see their main information, such as their outstanding balance, which is obtained from their: due + overdue amounts - unapplied amounts (if any).
Admin users can also change the owners and workflow from this page.
Access their Upflow Portal or copy its shareable link to send your contacts.
#### Last action date
You can identify the "Last action date" on the customer details page, as well as in a dedicated column in the Customers list view
### Ratings and average payment delay
This summary is completed with a rating reflecting their payment performance and their latest reminder’s execution date, excluding unsent actions (tasks...).
A customer's rating assesses their ability to pay on time. It is based on their average payment delay. These brackets cannot be updated.
To learn more about the ratings' calculation and the average payment delay, see our [dedicated article](/en-us/core-entities/customers/your-customers-average-payment-delay).
### Payment methods and options
Below the main information, you will see this customer's saved payment methods and payment options.
You can enable or disable the payment method options available to them (cards, direct debit) from this page at any time.
See all the payment methods they currently have on file — including which one is used for Autopay, and any that became inactive after a failed Autopay attempt:
Check and update their payment methods options:
Finally, check their payment settings:
### Custom fields
At the bottom of the customer details page, you will see all custom fields available, as well as the values for this customer. Quickly update the value from this page if the custom field was created in Upflow, or head to your account tool if synced from there.
## Account management
On the right side of your screen, browse your customer’s invoices, verify their contacts, or review and build on their collection history.
Each section offers a simplified version of the dedicated tab, showing essential information for this customer. Click any to be redirected to its details, view all for a drill down to their list, or rearrange the columns and save this new view!
Contacts mirror the information from their source system. From this section, regardless of the contact source system:
* designate a main contact
* update their position
* validate their email address if the [contact was identified as invalid](/en-us/core-entities/contacts/invalid-emails)
Access your customer's collection steps, received payments, imported replies, and internal notes from their timeline. Learn more here: [Customer timelines (reminders, notes, payments, etc.)](/en-us/core-entities/customers/customer-timelines-reminders-notes-payments-etc).
Complete ad hoc actions ([learn more](/en-us/collection-and-collaboration/run-your-collection/execute-an-action-out-of-the-workflow)).
Finally, check your customer's details, such as their external ID, postal address, or default language.
# Your customer's average payment delay
Source: https://docs.upflow.io/en-us/core-entities/customers/your-customers-average-payment-delay
Learn how Upflow calculates the average payment delay per customer using weighted invoice amounts and how this metric feeds into the A-D rating.
## What is the Average Payment Delay, and how is it calculated?
The average payment delay is a metric calculated for each customer. It is visible on the Customers list view and the Customer details page and is used as part of the customer rating (A,B,C,D).
The delay is calculated as the difference between the `paid date` and `due date`, weighted by the invoice amount.
It also includes `OVERDUE` , `DISPUTED` invoices, in those cases, we use today's date to calculate the delay.
If an invoice is paid early, this could result in a negative value.
This is computed daily for all relevant customers at 12:00 UTC + 2hours.
* An invoice's payment delay is the time elapsed between its due date and its payment.
* The average payment delay for a batch of invoices is obtained by:
* Multiplying the amount of each invoice by its payment delay
* Adding up all the results
* Dividing the total by the sum of all invoices' total amount
Let's imagine a customer with three invoices:
* Invoice #**1**: **\$140**, paid within **7** days
* Invoice #**2**: **\$85**, paid within **55** days
* Invoice #**3**: **\$214**, overdue since **10** days
((140 × 7) + (85 × 55) + (214 × 10)) / (140 + 85 + 214)
\= 17.8 — With their invoices paid within **18** days on average, this customer earns an **A\*** rating.
## How does the Average Payment Delay relate to Customer Rating?
We use the delay to calculate the rating according to the following rules. Note that the boundaries are inclusive, so A is up to and including 30 days.
| **Rating** | **Delay** |
| - | - |
| A | ≤ 30 days |
| B | ≤ 60 days |
| C | ≤ 90 days |
| D | ≥ 91 days |
## Missing/empty average payment delay
If the above-mentioned feature isn't enabled, the average payment time does not appear in the client’s file it's because they have no invoice overdue nor paid.
Do you have any questions? Don’t hesitate to [contact us!](/en-us/essentials/get-started/contact-our-support-team)
# Customize your customers' portal URL and favicon - White label portal
Source: https://docs.upflow.io/en-us/customer-portal/branded-portal/customize-portal-url-and-favicon
Configure a custom domain and favicon for your Upflow customer portal so payment links match your brand instead of the default app.upflow.io address.
To offer a fully white-labeled experience to your customers, you can customize the portal URL so it matches your domain. Instead of "[https://app.upflow.io/customers/xxxxx](https://app.upflow.io/customers/xxxxx)," it could be "[https://yourdomain.com/xxxxx](https://yourdomain.com/xxxxx)." As well as the tab favicon.
For the URL configuration, you will need your IT team's help. Let's start with the favicon, which will only ask you a few clicks!
## Setting up the white-labeled portal
### Customer portal favicon
Head over to [the Customer portal settings](https://app.upflow.io/organization/-/settings/customer-portal). Scroll down to the dedicated section:
Click "Select file" and select your logo in your computer's files.
Then, it should look like this:
Don't forget to Save at the bottom of the page! You can now refresh, and access a customer portal to check it's displayed as expected!
#### Notes
* The logo must be .PNG, .SVG or .ICO
* Ideally square - If less than 32, we upscale to 32x32. If more, we downscale.
* By default, we fall back on the Upflow logo.
### Customer portal URL
Still from [the Customer portal settings.](https://app.upflow.io/organization/-/settings/customer-portal) From there, you can add the domain name you would like to use, in the example below: portal.example.com.
Once you add the domain, it will provide DNS records that your IT team should add.
It can take up to 24 hours to propagate, but once done you should be able to click on "Verify your domain", and it should turn green:
From there, you can check what it looks like by using the top-right button:
Going forward, the portal will be accessible with URLs following this format: [https://portal.example.com/customers/xxxxxx](https://portal.example.com/customers/xxxxxx)
## FAQ
#### What if I have several organizations?
* You can use the same domain for all the portals if you have several organizations. Simply go to the other organizations' settings and add the domain name. It will be automatically validated.
#### What happens if I delete the domain?
* We will fall back on the Upflow URLs to send the portal link; however, unless you add a redirection, the previous links will no longer work.
#### I've added the CNAME record and given it time to propagate but when I click on the Preview Customer Portal button of a customer's page I encounter the following screen:
* Please check whether there is an existing CAA record for the domain.
If so, you can either delete the record or add the following Upflow CAA record:
CAA 0 issue pki.goog
* Once added, please click on the Verify Your Domain button found on your Customer Portal settings page on Upflow to refresh the custom web domain.
# Embedded portal - White label portal
Source: https://docs.upflow.io/en-us/customer-portal/branded-portal/embedded-portal-white-label-portal
Embed the Upflow customer portal inside your own website with a white-label iframe so customers can view and pay invoices without leaving your domain.
Upflow provides the capability to embed the customer portal within your own website, offering numerous advantages, including:
* **Enhanced customer experience:** Your customers can view invoices, make payment and track payment statuses at their convenience, 24/7 securely within your website.
* **Personalized branding:** Customize the portal to reflect your company's branding, ensuring a seamless and professional experience for your clients.
## Setting up the embedded customer portal
### Step 1: Enable the embedded customer portal
* Ensure that the embedded customer portal is enabled from the settings section.
**Note:** If you wish to enable embedded portal access for specific customers, make sure that the customer portal option is enabled for those particular customers in Upflow. By default, the customer portal is enabled for all customers.
### Step 2: Customize your customer portal
* Design your customer portal to align with your company's branding.
### Step 3: Access Upflow's API documentation
Refer to Upflow's API documentation to access the [endpoint](https://upflow.docs.apiary.io/#reference/0/customers/embedding-the-customer-portal) for generating your customer's URL.
* It is highly recommended to include your customer's username as an attribute in the API request for audit purposes.
* The embedded URL should be unique for each customer and must not be stored (only cached temporarily if needed).
* The call to retrieve the portal URL must strictly be made from the backend (not the frontend) as it utilises the client's API secret.
Below is an example of a Python code which queries the API endpoint to get the customer portal URL and returns an iframe with the right URL.
### Step 4: Embed the portal URL in your desired website
* Once the URL is generated, use it within the iframe on your desired website.
**Note:** Ensure that the website where you plan to embed the customer portal can be securely accessed through authenticated customer login.
### Step 5: Go live with your embedded customer portal
* Your embedded customer portal is now live and ready for use. You can invite your customers to make use of the embedded customer portal.
Here's what it can look like:
Any questions? [Get in touch](mailto:support@upflow.io)!
# How to generate a customer portal URL via API
Source: https://docs.upflow.io/en-us/customer-portal/branded-portal/generate-portal-url-via-api
Use the Upflow Create Portal URL endpoint to generate a customer-specific portal link with a custom validity period for sharing or embedding.
Our [API](https://upflow.docs.apiary.io/#reference) allows you to programmatically perform functions and operations outside of the Upflow UI, such as creating or updating a new customer, invoice, customer contact, etc.
In this case, you will be using the [Create Portal URL endpoint](https://developer.upflow.io/#tag/customers/post/customers/%7BcustomerId%7D/portal) to generate a Customer Portal URL (for a single customer per request) with a **customized validity timeframe**.
Currently,
* URLs generated via this endpoint have a lifespan of 24 hours (see [https://developer.upflow.io/#tag/customers/POST/customers/\{customerId}/portal.body.expiresIn](https://developer.upflow.io/#tag/customers/POST/customers/\{customerId}/portal.body.expiresIn))
* when URLs delivered via invoice reminders and generated on the customer page have a default lifespan of 25 days (learn more [here](https://docs.upflow.io/en-us/customer-portal/customer-portal/my-customers-portal-links-validity)).
The steps involved are outlined below:
1. You can use a free API testing tool such as [Postman](https://www.postman.com/) to run this request.
2. The URL for the request is:
```text theme={null}
https://api.upflow.io/v1/customers/**customerId** /portal
```
\*If you're testing on an Upflow sandbox environment, the URL differs slightly:
```text theme={null}
https://api.sandbox.upflow.io/v1/customers/**customerId** /portal
```
You can fetch the customerId by accessing the respective customer's page and grabbing the value to the immediate right of '/customers':
So the URL for the request would be formatted as such:
```text theme={null}
https://api.upflow.io/v1/customers/**a123b456-c7d8-4fb3-a3ae-29fd1b4a287e** /portal
```
You can also use the External Id set for that customer entity instead, which will be the customer internal id for any organizations or accounts synced with a native integration. In the following example the External Id is the NetSuite Internal ID:
So the URL for the request would be formatted as such:
```text theme={null}
https://api.upflow.io/v1/customers/**external:123** /portal
```
3. The Upflow API uses API keys to authenticate requests. You can view your API keys by accessing your Account Settings > under Apps > click on API.
Once you have these API keys, you can enter them in your request under Headers:
* The third header is Content-Type:application/json. (By specifying this header, we ensure that the server knows to interpret the data correctly as JSON, which helps it process and respond accurately to the request)
4. In the Body of the request, you will specify the data format for the request as Raw / JSON. The JSON array will consist of the following:
* "frameAncestors" To embed it in an iframe to allow your users to access the customer portal from your app, you must specify this attribute in the request. It will contain space-separated fully qualified domain names which are authorized to embed the portal in an iframe. (Leave it out altogether if you don't intend to use the URL for this purpose.) Example:
"frameAncestors": "extranet.merchant.com intranet.merchant.com"
* "expiresIn" Expressed in seconds. Time span during which the token is valid. Default is 86400 (1 day) Example:
"expiresIn": 86400
#### URL expanded lifespan
**The default lifespan for the request if I don't specify or include the "expiresIn" attribute is 24 hours.**
So, if you're only looking to generate a Customer Portal URL with an expanded lifespan (two months in this case), the Request Body will look like the following:
```text theme={null}
{
"expiresIn": 5184000
}
```
5. This is a POST endpoint, so make sure that's specified in the request.
6. Now, you're ready to run this POST request! The response will contain the URL for the Customer Portal which you can then provide to your customer:
# Amounts display on the portal
Source: https://docs.upflow.io/en-us/customer-portal/customer-portal/amounts-display-on-the-portal
Understand how Upflow displays outstanding balances, invoice totals, unapplied amounts and multi-currency conversions to customers inside the portal.
## How to read amounts and totals in the portal
On their customer portal, your customers will see diverse amounts and totals.
1. The total amount of each open invoice
2. Their total current balance with:
* their outstanding balance
* their due/overdue/unapplied balances
3. Their Summary, including all selected invoices to pay and matching totals
(1) The listed invoices will display their billed currency.
(2) The outstanding amount section currency display is conditional. It will show:
* The customer billed currency if all invoices and unapplied transactions share the same currency
* Your organization's default currency only when there are multiple currencies or no amounts
(3) The Summary section will display the selected invoice(s) currency.
## Unapplied amounts
For each customer, if a payment, a refund or a credit note is not applied to another entity, it will be considered unapplied.
You can see the total unapplied from your dashboard and drill down to get the details per credit notes or transactions:
Your customers can also see their unapplied amounts in the customer portal.
This article explains what that means, how it behaves with manual vs automatic payments, and how it works when multiple currencies are involved.
*Note that the unapplied amounts are not displayed on the mobile version of the portal to reduce clutter.*
## Payments with unapplied amounts
### Manual payments in the portal
When a customer pays manually through the portal:
* They can always pay outstanding invoices, even if there are unapplied amounts on their account.
* We assume that when they initiate a manual payment, they know which invoices they want to settle.
* Existing unapplied amounts are not automatically consumed or matched during that manual payment.
* The unpaid invoice will be marked as paid by the new payment, and the previous unapplied amount will remain available to be:
* Applied later.
* Used for other invoices in the same currency.
* Refunded if needed (by your accounting team).
This keeps a clear separation between what the customer decides to pay now and credits that already exist on their account.
### Automatic payments in the portal
When automatic payments are enabled via Autopay (learn more: [Collecting automatically with Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay)), Upflow can attempt to debit outstanding invoices automatically (for example, at due date).
However, if there are unapplied amounts on the customer’s account, we do not automatically debit new payments.
#### Why?
* We do not know which invoices might already be considered paid using those unapplied amounts in your accounting system.
* Debiting again could result in double payment of the same invoices.
#### In practice:
* If unapplied amounts are detected for a customer, automatic debits will fail.
* Your team is notified that we cannot debit the outstanding invoices because of existing unapplied amounts.
* You can then:
* Review the unapplied amounts.
* Apply them to the right invoices or refund them.
* Retry or re‑enable automatic payments once the situation is cleared.
## How unapplied amounts work with currencies
Depending on your business, invoices and payments can exist in multiple currencies. Unapplied amounts follow the same logic. Below, we'll review what scenarios are possible based on your business currencies and customers' situations.
### Base rule: unapplied amounts keep their currency
Each unapplied amount is stored in the currency in which it was created.
For example:
* A payment of 1,000 USD stays as an unapplied USD amount.
* A credit note of 500 EUR stays as an unapplied EUR amount.
* In the portal, these values are displayed in their original currency, clearly labeled.
Unapplied amounts are not automatically converted from one currency to another by Upflow.
### Unapplied currency scenarios in the customer portal
#### Single‑currency customers
##### Scenario 1 – Single‑currency customers, same as organization
* Organization default currency: USD
* Customer invoices: USD only
In this case:
* All invoices are in USD.
* All payments, refunds, credit notes (and therefore unapplied amounts) are also typically in USD.
What the customer sees in the portal:
* Outstanding: \$1,000
* Unapplied: \$100
* Total outstanding: \$900
Everything is in the same currency, so there is no ambiguity in how it is displayed in their portal.
#### Scenario 2 – Organization default currency USD, customer billed in EUR only
Example:
* Organization default currency: USD
* Customer invoices: EUR only
In this case:
* All of this customer’s invoices are in EUR.
* Payments, refunds, credit notes for this customer are also in EUR, so any unapplied amounts are EUR.
What appears in the portal for that customer:
* In the invoice list and in the Summary, amounts are shown in EUR, because this is the only currency used for that customer.
* Since all invoices and unapplied transactions are in EUR (single currency scenario), the outstanding amount section should display in EUR, not USD.
**With unapplied amounts:**
**Without unapplied amounts:**
#### Scenario 3 – Organization default currency USD, customer billed in USD and GBP
Example:
* Organization default currency: USD
* Customer invoices: GBP + USD
In this case:
* The customer has one invoice in USD (\$1,000) and one invoice in GBP (£1,000)
* They also have an unapplied payment in GBP (£100)
# Communication via the customer portal
Source: https://docs.upflow.io/en-us/customer-portal/customer-portal/communication-via-the-customer-portal
Receive customer messages sent from the Upflow portal directly to your support email address with a pre-filled subject and body for quick replies.
When your customers access their Upflow Portal to check, pay and download their invoices, they can contact you directly from it using the **message box**. This message will be sent to the **Support Email** address specified in your **[Settings > Customer portal](https://app.upflow.io/organization/-/settings/customer-portal)**.
When clicking the **Send** button, it will redirect them to their e-mail provider with the pre-filled e-mail, ready to be sent!
The email will be pre-filled as follows:
* **Subject:** Outstanding invoices - Customer name : Your company
* **Content:** The content written on the portal
* **Mailto:** The "Support email" filled at the organization level in your **[Settings](https://app.upflow.io/organization/upflow/-/company)**
## FAQ
* Will the communications be added to the customer's timeline?
* Not at this point
* Will the customers see a history in the text box?
* No they won't
Still have a question? [Get in touch](mailto:support@upflow.io)!
# Download your account statement
Source: https://docs.upflow.io/en-us/customer-portal/customer-portal/download-your-account-statement
Enable the Upflow account statement so customers can download a PDF of invoices, transactions and running balance for any date range from their portal.
Managing customer accounts effectively is crucial for a streamlined cash flow.
With Upflow’s Account Statement feature, you can provide your customers with a comprehensive view of their invoices and transactions, making account management easier for everyone involved. This article explains how the feature works and how to use it effectively.
## What is the account statement?
The Account Statement is a downloadable PDF document available to your customers through their Upflow customer portal. It provides a detailed list of invoices and transactions for a specific date range, along with the running balance for each transaction.
## Managing the account statement
The Account Statement is enabled by default and can be found in your Upflow Settings.
* Go to your [Settings, Customer portal section](https://app.upflow.io/organization/-/settings/customer-portal).
* Scroll down and locate the Account Statement.
* Use the toggle to enable or disable the feature as needed.
* This is an organization level feature. Once enabled, it applies to all your customers.
## Downloading an account statement
### Good to know
* **Language:** The account statement will be based on your customer’s **browser** language.
* **File size:** The file’s limit is 500 lines.
* **Currency:** One currency is displayed in the statement today. In case of multiple currencies, we will display your [organization default currency](https://app.upflow.io/organization/-/settings/company).
### Download the file
When the feature is enabled, your customers can download their Account Statements directly from their portal. Here’s how:
* From their customer portal, click "Download" at the top of their portal.
* Click Account Statement
* Select the appropriate date range for the statement.
* Click Download to retrieve the Account Statement as a PDF file.
* Key Details on the Statement:
* Includes only sent invoices; unsent invoices are excluded and not visible in the portal or the statement.
* Displays transactions relevant to the selected date range.
* Shows a balance for each transaction within scope.
Here's an example of what a downloaded statement can look like:
#### For businesses with customer hierarchies:
* Parent Account Statements: Include all transactions from parents and child accounts.
* Child Account Statements: Display only the transactions specific to the child account. Parent transactions are not included.
# Exclude future invoices from your customer portals
Source: https://docs.upflow.io/en-us/customer-portal/customer-portal/exclude-future-invoices-from-your-customer-portals
Hide invoices with future issue dates from customer portals and email reminders in Upflow until they become due to avoid premature payment requests.
When you issue invoices with an issue date in the future, they will be displayed in your customer portal if synced into Upflow. But you might not want for them to access it before it's time.
## Exclude future invoices
From your Upflow [Settings, Customer portal](https://app.upflow.io/organization/-/settings/customer-portal) section, enable the following option:
And click Save at the bottom!
These invoices will still be present in your Invoice list view and the customer's invoices, but won't be visible to them in their collection reminders or their customer portal until their issue date is met.
This customer has 7 open invoices in Upflow:
And only 6 visible in their portal, as the most recent's issue date is March, 1st:
Any questions? Submit a Support request at the top of this article.
# My customers' portal links validity
Source: https://docs.upflow.io/en-us/customer-portal/customer-portal/my-customers-portal-links-validity
Control how long Upflow customer portal and invoice links stay valid, from 1 to 1000 days, and understand the default 25-day expiration on shared tokens.
When sending email reminders to your customers, you have the possibility to include their Upflow portal link for a quick access and payment (read more about [Collection Tags](/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter)).
## Portal link's duration
When the portal link is generated—sent via an email reminder or copied from the app—its unique token has a default 25 days validity.
If your customer tries to access their link more than 25 days after receiving it, they will see an error message indicating their portal link has expired.
## Manage the link duration
#### Manually
From your Upflow Settings, in the [Customer portal section](https://app.upflow.io/organization/-/settings/customer-portal), you can update the link validity:
* Minimum: 1 day
* Maximum: 1000 days
* Default is 25 days
Don't forget to click **Save** at the bottom of the page!
⚠️ The new link duration will be applied to links generated after the update is saved. Any links sent before this update will remain on a 25-day validity.
Sending a new link to a customer does **not** invalidate the ones you sent previously. Each portal link stays valid independently until its own expiration date is reached, so any older link a customer still has will keep working until it expires.
#### API
You can also manage the links duration using our API. Here's more details on this configuration: [How to Generate a Customer Portal URL via API](/en-us/customer-portal/branded-portal/generate-portal-url-via-api).
### Invoices links
When using the "Carrying invoice link" collection tag in your email reminders...
...the invoice link's duration is the same as the portals'. Beyond this delay, the invoice link won't be accessible anymore and a "404 error - File not found" message will be displayed instead.
Any questions? Click the **Submit a request** button at the top.
# Outstanding balance statement
Source: https://docs.upflow.io/en-us/customer-portal/customer-portal/outstanding-balance-statement
Let customers download a CSV or XLSX statement of every open invoice, unapplied payment, refund and credit impacting their Upflow balance.
Would you like to give your customers a quick overview of their outstanding invoices that they can review in their favorite spreadsheet software? Let them download their outstanding balance statement from the portal.
The statements are directly available in the download section of the portal.
When they download the statement, any entity that impacts the customer balance will be displayed, along with its impact on the balance.
It includes invoices, unapplied payments & refunds, and unapplied credits.
Disputed invoices are accounted for, but hidden invoices are not visible here.
The entities of child customers are included in the parent customer portal.
It can be downloaded as a CSV or an XLSX.
This feature can be activated in your [portal settings](https://app.upflow.io/organization/-/settings/customer-portal).
# Customer portal
Source: https://docs.upflow.io/en-us/customer-portal/customer-portal/overview
Set up your Upflow customer portal with branding, contact details, dispute and promise-to-pay options to give customers self-service access to invoices.
Whenever a new Customer is imported on your organization, Upflow automatically generates a dedicated "customer portal" link.
## Customizing your customer portals
All configuration & customization options are grouped under your organization's [Settings > Customer portal section](https://app.upflow.io/organization/-/settings/customer-portal).
You can view any change made using the "Save & View" button at the top right, which will take you to a sample portal:
## Display options
These options determine both the look & feel of your Upflow portals, as well as functionalities you can make available to your customers.
### Your contact information
Start by inputting useful contact information in the **Email** & **Phone Number** fields, as well as upload any **Shared Document** you want to make available to all of your customers (e.g. a W9 form you keep getting requests for over email) so they become clearly accessible on your portals:
To add this information to your customers portals, head to your Settings > Customer portal here:
* Enter an email address and/or phone number for them to contact you.
* Select or drop a file for them to download, such as your W9 form.
### Portal features - organization level
Finally, decide if you want to allow your customers to do the following via their portals by toggling options on or off:
* Raise **Disputes** ([more details here](/en-us/core-entities/invoices/invoice-disputes)).
* Set a **Promise to Pay** ([more details here](/en-us/core-entities/invoices/promise-to-pay)).
* Download an **Account Statement**
* Download an outstanding balance statement
* Activate Autopay for new customers
* Hide future invoices from the portal
### Portal features - Customer level
From the Customer details page, under:
You can enable/disable
* Autopay
* their Customer portal
## Customization
To provide a consistent and on-brand experience, head over to the **White label** section next and input your company color palette for both Primary & Banner elements of the portal. You can either input the exact hexadecimal value for each color, or click on the color icon to pick the closest match:
## Branded notifications
By default, useful payments-related notifications from your organization's customer portals are sent from [no-reply@upflow.io](mailto:no-reply@upflow.io). Make sure you create & select [an appropriate alias](/en-us/collection-and-collaboration/workflows-customize-your-collection/aliases) to send those from an email you own and recognizable by your customers:
*(Don't forget to click **Save** at the bottom of the page once done!)*
# Troubleshooting Customer Portal Links
Source: https://docs.upflow.io/en-us/customer-portal/customer-portal/troubleshooting-customer-portal-links
Resolve common customer portal link errors in Upflow, including expired tokens, HTTPS warnings, security alerts and broken redirects from email reminders.
When sending email reminders to your customers, you can insert their dedicated Upflow portal link, using our collection tag "Customer portal link".
⚠️ **Important:** Each reminder generates a new token, which defines the link’s validity period. Learn more [here](/en-us/customer-portal/customer-portal/my-customers-portal-links-validity).
Sometimes your customers (or even your team) may encounter errors or security alerts when opening these links. Below are the most common issues, their causes, and how to solve them.
## Your connection is not private
### Why this happens
* Your portal link is sent with an `http://` address instead of `https://`
* Your customer’s browser flags the link as “Not secure”
### Solution: Ensure HTTPS links is enabled
1. Go to **Settings > Deliverability** in Upflow.
2. Check the **HTTPS links** option.
Ensure this is enabled in your Upflow Settings > Deliverability. If your DNS configuration is properly configured, this setting should be enabled by default (learn more here: [Deliverability - HTTPS links.](/en-us/collection-and-collaboration/emails/deliverability-https-links)
#### I can't enable the HTTPS links
**Case 1: Deliverability option blocked**
* You see this option when opening Deliverability Settings:
Solution: Configure and verify your DNS records. Learn how [here](/en-us/collection-and-collaboration/emails/sending-emails).
**Case 2: DNS configuration invalid**
* One or more DNS records are invalid/incorrect, preventing the option to be enabled.
* **Solution**: Share the generated records with your IT team so they can update your domain settings.
## Customer portal not found
### Why this happens
* Portal access is disabled for the customer.
* They clicked a link that was sent before the portal access was disabled.
### Solution: Reactivate portal access
1. Go to the customer’s detail page in Upflow.
2. Under **Payments > Options**, check the portal setting.
3. Reactivate the portal if needed.
4. Send a new email reminder or campaign to generate a fresh link.
## Invalid link
### Why this happens
* The link token has expired\
### Solutions
#### 1 - Re-send the customer portal link
From the Customer details page, click “Preview the customer portal”, copy the URL (containing a newly generated token), and send it to your customer via an Ad hoc email, for example.\
#### 2 - Increase link validity
If this is a recurring issue for your customers, you can increase the portal links duration according to your needs, and processes:
1. Go to **Settings > Customer portal**.
2. Increase the default link duration (learn more [here](/en-us/customer-portal/customer-portal/my-customers-portal-links-validity)).
3. Send a new email reminder or campaign to generate a fresh link.
# Introduction - Upflow Payments
Source: https://docs.upflow.io/en-us/payments/accept-online-payments/introduction-upflow-payments
Discover Upflow Payments, the B2B online payments stack built on Stripe infrastructure that powers card, ACH, SEPA, and BACS collection in customer portals.
At Upflow **we believe that B2B payments will undergo a profound online (r)evolution in the next 10 years**, similar in magnitude to what B2C and e-commerce have experienced over the past 2 decades.
We are building the infrastructure, tools and products to both embrace and facilitate this transition over to digital payment flows helping our Merchants, like you, be ahead of the curve — not laggards.
We believe **payments are an integral part of your global customer experience** , often neglected or off-brand — mostly due to a technology problem.
That's why we're building useful & deep online payments functionalities tailored for B2B, which we collectively refer to as **Upflow Payments**, enabling you to dramatically improve cash inflow while providing a delightful experience to your customers.
Welcome to the new era of B2B payments!
*Note: Upflow Payments is built on top of Stripe's best-in-class, white-labeled infrastructure — like Shopify or Salesforce. Stripe abides by the highest security standards in the industry, including [PCI Service Provider Level 1](https://docs.stripe.com/security).*
# Managing online payment methods
Source: https://docs.upflow.io/en-us/payments/accept-online-payments/managing-online-payment-methods
Configure card and direct debit payments in Upflow, set transaction limits, enable surcharges, and assign methods to new and existing customers.
As soon as your [KYC has been validated](/en-us/payments/accept-online-payments/onboarding-and-setup), you will be able to configure and deploy online payment methods for your customers starting from your Settings > Payment methods section.
Organizations connected to Pennylane cannot enable online payment methods for legal reasons. These methods are marked as **Incompatible with Pennylane** in your Settings > Payment methods section. Learn more in the [Pennylane integration overview](/en-us/integrations/pennylane/overview#online-payment-methods).
👉 Once done, you can instantly enable these new payment methods for your existing customers in just a few clicks as described in the next section below.
## Setup & configuration
### Card payments
Once activated, you will immediately be able to collect payments from all major credit & debit card brands. There are 3 main parameters you can set below:
* **Activate for all new customers**: card payments will be made available to all new customers imported in Upflow. We recommend leaving that option on by default.
* **Transaction limit**: if you do not intend to [pass card fees on to customers when they pay](/en-us/payments/collect-online-payments/passing-card-surcharges-on-to-customers) (see below "surcharges"), you can optionally set a limit for cards on a per-payment basis to re-route customers to another method. Otherwise, we recommend setting this value to "no limit" by inputting e.g. \$10m (10000000).
* **Surcharges**: allows you to specify a surcharge percentage, up to 3%, to pass on to your customers when they pay. See [more details here](/en-us/payments/collect-online-payments/passing-card-surcharges-on-to-customers).
### Direct debit payments
Activating direct debits will enable you to collect payments from your regional scheme like ACH in the U.S., SEPA in Europe and Bacs in the U.K.
Depending on your direct debit scheme, you may be presented with a parameter to set a per-transaction maximum value. If so, we recommend setting it as high as possible to maximize your chances to get paid.
Otherwise, you simply need to indicate if you want to enable the option for all new customers (recommended) and you're done!
## Enable payment methods for existing customers
Head over to your Customers tab to mass-assign cards as a payment method for your customers. We generally recommend enabling cards & direct debits for all of your customers since you can:
* maximize the chances to get paid now.
* prompt conversations around payment options with customers.
* optimize payment mix through time.
We understand that you may also want to test those new payment methods on a subset of your customers first, so you can filter your base and mass-assign to that specific group as well.
Once enabled, your customers will instantly be able to select an available method when they pay via their portals:
## Disabling a payment method
If you wish to disable a payment method for one customer, multiple or all of them, several options are available.
### Disable a payment method for one customer
Head to your customer's detail page. Scroll down on the Payments section and untick the payment method you wish to disable for them. Below, you can see that Card payments are available for this customer, when the ACH debit isn't.
### Disable a payment method for multiple customers
From the [Customers list view](https://app.upflow.io/organization/-/customers), filter your customers on a common condition to identify them.
Check the Customer column box, then click the blue link at the top right of the list to select all. Click Actions > Assign a payment method and uncheck the one to disable before clicking Apply.
### Disable a payment method for all customers
You can either disable it for all customers while keeping it in your Settings, or delete it.
### Delete it
Head to your Settings > Payment methods. Click on the Edit button next to the method you wish to delete. Then click on *Delete payment method* below it and confirm.
### Disable it
First, head to your Settings > Payment methods. Click on the Edit button next to the method you wish to disable. Untick the *Activate for all new customers* and *Save setting*(not available for wire transfers).
Now, head to your Customers list view. Filter your customers on "Payment method" and select the one to disable, then Apply.
Check the Customer column box, then click the blue link at the top right of the list to select all. Click Actions > Assign a payment method and uncheck the one to disable before clicking Apply.
Do you have any questions/feedback? Submit a Support request at the top of this article.
# Onboarding & setup
Source: https://docs.upflow.io/en-us/payments/accept-online-payments/onboarding-and-setup
Complete the Stripe KYC flow to activate Upflow Payments, submit business and owner details, and link the bank account that will receive your payouts.
Before being able to process online payments through your Upflow customer portals, you need to complete a short KYC ("Know Your Customer") procedure as a regulatory requirement.
Organizations connected to Pennylane cannot enable Upflow Payments for legal reasons. Learn more in the [Pennylane integration overview](/en-us/integrations/pennylane/overview#online-payment-methods).
Submitting the KYC takes less than 5 minutes, and it is usually validated for most companies under 24 hours.
You can start the process from your [**Payment gateway** settings](https://app.upflow.io/organization/-/settings/payment-gateway) (**Settings → Payment gateway**). On the **Upflow Payments** tab, click **Connect**:
You are then asked for the region where your legal entity (the one that will receive the funds) is located.
This will take you into a secure signup flow managed by our partner Stripe where you will submit:
* standard information about your company.
* the bank account which should receive the money you collected via Upflow portals.
If at any step you are unsure, need to verify information internally or think you have made a mistake don't worry! You will be able to resume the process anytime from your Upflow interface and/or update information at the end.
***
💡 Useful information to have on hand:
* your company registration number / Employer Identification Number (EIN)
* personal information of the person creating the account, including SSN
* personal information of business owners (> 25% of company ownership), including SSN
***
## Step 1 - Sign up & business information
After signup, you will be prompted for general business information, where you can specify the country & corporate structure of your company:
As well as a few standard information about your company, such as its legal business name, address, or website. For the "industry" field, you can choose what is closest to what your customers buy from you if you are unsure.
## Step 2 - Personal details & business owners
The person creating the payment account on behalf of the company will be asked for a few standard personal details, including the last 4 digits of their social security number or equivalent government-issued ID number.
Then, you may be asked for the list of the "business owners" of your company, which are individuals who ultimately own 25% or more of its capital, whether directly or indirectly:
## Step 3 - Link bank account & submit KYC
You will register a bank account where you want funds collected through your Upflow portals to be paid out. If available, you can select your bank and log in to their interface to link the appropriate account:
If you don't have the option to select your bank or are experiencing issues with the bank interface login, you have the option to alternatively enter your account details manually at the bottom of the page.
You're now ready to submit your KYC form! If any essential information is missing, you will be able to easily update it:
...before submitting it for validation by our partner Stripe.
**Once you receive confirmation that your KYC is validated, you can immediately start collecting online payments via Upflow 👏**
**
**
# Statement descriptor
Source: https://docs.upflow.io/en-us/payments/accept-online-payments/statement-descriptor
Set and edit the statement descriptor customers see on bank statements for Upflow card payments, with Stripe formatting rules to reduce disputes.
It is helpful for your customers to be able to easily understand the charges they see on their bank account. Typically, it helps them confirm those were authorized and avoid accidental [disputes](/en-us/payments/process-online-payments/disputes-and-chargebacks).
What your customers will see displayed for payments collected by you on their bank statements is called your "statement descriptor". You can review & edit it directly from your payment account (Stripe Express) [settings here](https://connect.stripe.com/express_login#settings) in the *public details* section:
Note that your statement descriptor must meet the following requirements:
* latin characters only
* between 5 & 22 characters, inclusive
* at least one letter
* does not contain the following characters: \<, >, , ', ", \*
* reflects your "Doing Business As" (DBA) name
# Capturing payment methods
Source: https://docs.upflow.io/en-us/payments/collect-online-payments/capturing-payment-methods
Let customers save one or more cards or direct debits on their Upflow portal for faster manual payments and to enroll a method in autopay for future invoice collection.
With Upflow, your customers can save one or more payment methods for future payments. They can pay invoices manually with any saved method, or enroll a method in autopay so future invoices are collected automatically.
From their portal, your customers can:
* Save multiple cards or direct debits — and add a new one at any time, even with no invoice to pay
* Choose which saved method is used for Autopay, and change it whenever they need to
* Pay any invoice with any of their saved methods
* Delete a method, or reactivate one that was paused after a failed Autopay attempt
## Enabling your customers to enroll into autopay
To enable your customers to enroll into Autopay, simply navigate to your [payment settings](https://app.upflow.io/organization/-/settings/payment-gateway) and toggle the option on. You can have it on by default for all new customers as well.
From there, you can head over to your [customer list view](https://app.upflow.io/organization/-/customers) to ensure that all your existing customers can enroll in autopay:
After that, all your customers will be able to save payment methods and choose to enroll in autopay or not.
→ If you decide afterward to disable the save payment method capability after some of your customers have saved a payment method, we will delete their existing saved payment methods.
→ If you decide afterward to disable the autopay capability after some of your customers have enrolled, we will disable autopay for them as well, but their payment methods will remain.
## Saving payment methods on the portal
Your customers can save more than one payment method on their portal — for example a card and a direct debit, or methods in different currencies. They can add a new one at any time, including when they have no invoice to pay (see [Capturing payment methods without outstanding invoices](/en-us/payments/collect-online-payments/capturing-payment-methods-without-outstanding-invoices)).
When saving a method, they choose whether to use it for Autopay. All of their saved methods are visible on their portal, and you can see the full list on the customer's [details page](/en-us/core-entities/customers/your-customer-details-page).
## Choosing which method is used for Autopay
The **Autopay method** is the saved method Upflow uses to automatically collect a customer's future invoices. Customers decide whether to use a method for Autopay when they save it, and can change which method is used at any time from the saved payment methods section of their portal.
Deleting the method currently used for Autopay stops Autopay for that customer. To keep collecting their invoices automatically, they'll need to set another saved method for Autopay.
## Paying manually an invoice with a saved payment method
If they don't enroll in autopay, this is what their portal will look like:
They can select the invoices they want to pay, click the pay now button, choose which saved method to use — or add a new one — and confirm the payment.
If a saved method can't be used for a particular invoice — for example because of a currency mismatch or an amount limit — it won't be available to select for that payment.
## Automatic payment of invoices
If your customers decide to enroll in autopay, then we will automatically debit their invoices on the due date. For more details on the autopay logic, please refer to [this article](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay).
# Capturing payment methods without outstanding invoices
Source: https://docs.upflow.io/en-us/payments/collect-online-payments/capturing-payment-methods-without-outstanding-invoices
Send Upflow portal links to capture customer cards or direct debit mandates ahead of any invoice, ready for autopay during sales or onboarding flows.
You can use Upflow's customer portals to capture your customer's payment methods even when they have no outstanding invoices (yet).
💡 This is especially useful if you want to start collecting payment methods easily as part of your sales or onboarding motions, typically before activating services, or if you're looking for a better alternative to your existing process.
As soon as a new customer is created in Upflow, provided you have [enabled online payment methods](/en-us/payments/accept-online-payments/managing-online-payment-methods), you can send them a link to their customer portal for registering a card or direct debit mandate. Their payment method will then be available for use with [Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay):
After clicking the save button, they can select the appropriate payment method and decide if they want to enroll in autopay.
Then they get a confirmation screen that the payment method has been saved.
And they can see the payment methods they've saved directly in their portal. They can add another method, or change which one is used for Autopay, at any time — no outstanding invoice needed.
This functionality also works for existing customers with no current outstanding invoices, so you can make it easy for them to switch to online payments as part of their customer journey with your company:
On a native Sage Intacct or NetSuite integration, you can even capture a payment method for a customer who doesn't exist in your accounting system yet — by creating them through the API. See [Capture a payment method early in the sales cycle](/en-us/technical-documentation/api/capture-a-payment-method-early-in-the-sales-cycle).
# Collecting automatically with Autopay
Source: https://docs.upflow.io/en-us/payments/collect-online-payments/collecting-automatically-with-autopay
Use Autopay to automatically debit saved cards or SEPA and ACH direct debits on the invoice due date, with controls to enable or disable per customer in bulk.
💡With Autopay, you can collect your customer's payment method when they pay via their portals & automatically debit future invoices upon due date.
*Note: if you're looking to capture payment methods before a new invoice is issued/outstanding, [head over to this article instead](/en-us/payments/collect-online-payments/capturing-payment-methods-without-outstanding-invoices).*
# Configuring Autopay
By default, Autopay is activated for all your customers and works with both cards & direct debits (SEPA and ACH via Stripe Payments). We strongly recommend leaving it on as this enables you to automate future collections.
#### Enable Autopay
If Autopay isn't enabled for some customers, you can enable it at the customer level:
**Or from the Customers list view**. You can first filter customers on "Autopay Availalibility is Unavailable":
Then:
* Select one, multiple or all customers
* Click Actions > Configure Autopay > Activate Autopay Availability > Activate Autopay availability
#### Disable Autopay
You can selectively disable it for specific customers if needed from their customer details page or via our mass-action functionalities from your "Customers" list view for a specific group of customers.
To do so, repeat the steps detailed about, but toggle off Autopay from the customer page, or select **Deactivate Autopay availability** from the Customers list view for bulk actions.
# How does Autopay work?
## Capturing a payment method
When your customer pays you online via card or direct debit through their portal, they will be prompted to save their payment method and enroll in autopay:
When a payment method is saved with autopay, both your customer & you will be able to visualize it on the portal and your Upflow interface respectively:
| View from the customer portal | View from your customer's details page |
| - | - |
|
|
|
#### Choosing the Autopay method
Customers decide whether to use a payment method for Autopay when they save it. If they've saved more than one method, they can change which one is used for Autopay at any time from the saved payment methods section of their portal.
Deleting the method currently used for Autopay stops Autopay until they set another saved method for Autopay.
#### ACH micro deposits specificity
When the customer pays by ACH Direct debit and chooses micro deposit verification, their saved payment information will be displayed in Upflow only after the payment is verified and successfully received.
### Identify customers on Autopay
Identify your customers having access to Autopay: filter on "Autopay **is** True" in your Customers list view.
To identify customers with a saved payment method, filter on "Saved payment method **contains** " and select the ones you wish to see. You can also filter customers based on the status of their saved payment method.
|
|
|
|
| - | - | - |
| | | |
## Collecting payments with Autopay
### Autopay notification
Two calendar days before an invoice is due (at HR:45 before the invoice's debit, i.e. 09:45 based on your organization's timezone), your Upflow platform will automatically send a debit notification to your customer on your behalf to ensure compliance. This notification recaps what will be debited and when.
All Autopay notifications sent to your customers, are sent to the email address which was used to save the payment method:
#### Email address linked to the payment method
This address can't be edited in Upflow. For any Autopay notification or payment receipt to be sent to another address, your customer will have to remove their saved payment information and save them again using the dedicated address (either by processing a manual payment or directly saving new information if they do not have an outstanding balance - [Capturing payment methods without outstanding invoices](/en-us/payments/collect-online-payments/capturing-payment-methods-without-outstanding-invoices)).
For new invoices created with a due date less than 48 hours in the future, payments will be collected 2 calendar days later as this is the minimum delay between an autopay notification and a payment collection attempt.
*Example 1:*
Invoice issued on March 4th, with a due date on March 6th.
* The invoice is imported on issue date, March 4th around 10:30, the Autopay notification will be sent the same day at 10:45.
* The Autopay debit will happen on March 6th around 10:45.
*Example2:*
Invoice was issued on March 1st, and imported the 4th around 2:15pm. The notification will be sent to the customer the same day around 2:45pm.
The debit will happen on March 6th around 2:45pm.
You can visualize scheduled payments directly in your customers' timelines:
**Notice example**
*Special case: if your customer saved a payment method but did not pay all overdue invoices at the same time, a debit for all outstanding invoices will be issued 2 days later following the same mechanic as above.*
### Payment collection time
On the scheduled Autopay date, your Upflow platform automatically attempts to collect payment on your customer's method which can either succeed or fail, short after midnight on your organization's timezone.
#### Multiple overdue invoices
Autopay is per-invoice. It does not group invoices together.
If by the time the saved payment method is added or reactivated, several invoices are overdue, a debit will be scheduled for each of them individually.
#### Autopay is successful
Debit on the payment method has been triggered, and a payment is recorded for corresponding in invoices in Upflow & written back to your systems if applicable.
#### Autopay is unsuccessful
When a payment collection via Autopay fails, your customer will receive an email notification with the related reason and you will also be notified so you can get in touch to resolve.
If an error is considered temporary (for example "insufficient funds"), we will attempt payment collection 3 times before marking the saved payment method as "inactive" and stop the Autopay mechanic:
#### Invoice incompatible with Autopay
There are 3 reasons for this failed reason:
* The invoice was deleted since Autopay was scheduled
* The invoice status is neither DUE or OVERDUE (ex. paid since or the due date changed)
* The invoice is hidden (isHidden=true - [learn more](/en-us/core-entities/invoices/hide-invoices-from-collection-and-payments))
#### Resolve a failed Autopay
To resolve this, your customer can:
1. Delete & update their saved payment method directly through their customer portal
2. Reactivate the inactive payment method if needed (for example, if a card was re-funded):
| *View from the customer portal* | *View from your customer's details page* |
| - | - |
|
|
|
Doing so will restart the Autopay mechanics from the beginning. Because Autopay is triggered every 30 minutes by our systems, you might have to wait up to an hour for the two-day notification and the in-app notifications to be sent.
### Customer hierarchy (parent/children)
If you use this configuration in Upflow, please note that a saved payment method at the parent level will trigger Autopay only for the parent's direct invoices, and will disregard the children's invoices.
If you wish for the children's invoices to be automatically debited via Autopay, you must ensure the children have their own saved payment method in Upflow (in their own portal).
### Useful to know
* It is not possible to exclude individual invoices from the Autopay process for a customer with a saved payment method.
* Promises to pay at a later date do not postpone the Autopay payment collection schedule.
* A **disputed invoice** will be **excluded** from Autopay!
* [Portal: Pay button unavailable](/en-us/payments/collect-online-payments/portal-pay-button-unavailable) - If your customer wishes to manually pay their invoice before the due date, they will have to remove their saved payment method to access the manual payment process.
* Autopay is not available for GoCardless.
Do you have any further questions? [Contact our Support team](https://support.upflow.io/hc/en-us/requests/new)!
# Configuration checklist
Source: https://docs.upflow.io/en-us/payments/collect-online-payments/configuration-checklist
Step through the Upflow checklist to maximize online payment adoption: branding, email domain, portals, statement descriptor, payment methods, and reminders.
To help you maximize online payment adoption in your customer base, make sure to configure & enable the following key Upflow functionalities that work in synergy towards that goal.
Note: most of the items in this checklist require that you have Upflow admin permissions.
# Technical checklist
## 1. Company name & logo
Check that the company name & logo you want to use is correct from your "Settings > Company" section. This will be the name displayed to your customers on their portals & payments receipts:
## 2. Configure your email domain
Make sure emails you send from Upflow are sent from a domain you own and that your customers are used to, to ensure both optimal deliverability and trust to get paid online.
👉 [You can find more details in this corresponding article.](/en-us/collection-and-collaboration/emails/sending-emails)
## 3. Customize your Upflow customer portals
Configure your portals to display relevant information and company colors to provide an on-brand payments experience.
👉 [You can find more details in this corresponding article.](/en-us/customer-portal/customer-portal/overview)
## 4. Review your statement descriptor
Verify that your customers will see your recognizable business name for charges on their bank account.
👉 [You can find more details in this corresponding article.](/en-us/payments/accept-online-payments/statement-descriptor)
# Functional checklist
## 1. Enable online payment methods
Configure and assign which payments methods you want to enable for your customers.
👉 [You can find more details in this corresponding article.](/en-us/payments/accept-online-payments/managing-online-payment-methods)
## 2. Send invoices from Upflow
We **strongly** recommend you send new invoices to your customers from Upflow instead of your billing/software as this is a major driver of online payment adoption for new & existing customers alike.
👉 [You can find more details in this corresponding article.](/en-us/collection-and-collaboration/send-invoices-from-upflow/manage-unsent-invoices-legacy)
## 3. Highlight online payments in collection emails
As you start offering online payments to your customers, you'll want to clearly highlight that this option is now easily available for them in every collection or billing email template in each of your [relevant workflows](https://app.upflow.io/organization/-/settings/workflows).
Here's a sample text for a first past due email you can adapt & format using [our template tags library](/en-us/collection-and-collaboration/workflows-customize-your-collection/collection-tag-inserter):
*Hello \{main\_contact\_first\_name},*
*We haven't yet received your payment of **\{customer\_overdue\_amount}** for the following invoices which are now overdue: \{customer\_summary\_link\_start}\{overdue\_invoice\_reference\_list}\{customer\_summary\_link\_end}.*
*You can view your account statement and easily pay online by card or direct debit directly from your \{customer\_summary\_link\_start}customer portal here\{customer\_summary\_link\_end}.*
*We would appreciate prompt payment upon receipt of this email, or remittance advice if applicable.*
*Best,*
## 4. Send a communication to your existing customer base
Leverage our [Campaigns functionality](/en-us/collection-and-collaboration/run-your-collection/action-campaigns) to let your customers know that you are now accepting online payments via your Upflow portals. Here's a sample text you can adapt, especially if you decide to white-label [embed portals](/en-us/customer-portal/branded-portal/embedded-portal-white-label-portal) into your own app/webiste/backoffice:
*Hi \[NAME],*
*We've recently introduced a new way to handle invoices and payments that makes things smoother for both of us. We've implemented a new software called Upflow to streamline the process.*
*Upflow offers a handy customer portal where you can access all your account information in just a few clicks. This means you can see what's due, what's already been paid, and everything in between – all in one place.*
*Here's what you can do with the Upflow portal:*
* ***See your invoices:** No more hunting for past invoices! You can view them all easily in one central location.*
* ***Download them for your records:** Need a digital copy for your files? No problem, you can download them directly from the portal.*
* ***Pay your invoices quickly:** Make secure payments directly through the portal using your preferred method. This helps ensure your accounts are settled on time.*
*You can access your dedicated customer portal here \[INSERT LINK], where you can pay outstanding invoices or save your payment information for future ones.*
*We believe this upgrade gives you more control and transparency over your billing information. Ultimately, it will allow us to communicate and collaborate even better.*
*Let us know if you have any questions!*
*Best,*
*\[YOUR NAME/COMPANY NAME]*
# Partial payments
Source: https://docs.upflow.io/en-us/payments/collect-online-payments/partial-payments
Enable partial payments in Upflow Payments so customers can pay a portion of an invoice via card or direct debit, supporting flexible terms and installments.
Let your customers pay invoices partially and easily implement flexible payment terms and ad-hoc installments.
Partial payments are only available on *Upflow Payments*.
## Activating partial payments
To activate partial payments, head over [to your settings](https://app.upflow.io/organization/-/settings/payment-gateway) and toggle partial payments on. Once activated, this option becomes available to all your customers.
## Paying an invoice partially
From the portal your customers will have the option to pay one invoice partially. The option is only displayed when your customer has at least one online payment method enabled (e.g. Cards or ACH Debit).
After clicking on pay partially, they can select an available option or enter any amount that they want to pay:
And then proceed to payment via the standard payment flow:
## Paying multiple invoices partially
Partial payments are currently supported for single invoices only. To pay multiple invoices partially, your customer should process each of those as separate partial payments by selecting one invoice at a time on their portal:
# Passing card processing fees on to customers
Source: https://docs.upflow.io/en-us/payments/collect-online-payments/passing-card-surcharges-on-to-customers
Managing online payment processing costs is essential for your business. Upflow allows you to apply surcharges to card payments, enabling you to pass on part of these costs to your customers. Here's how you can set up and manage surcharges effectively.
## What are surcharges?
Surcharges are charges applied to card payments to cover the cost of processing transactions. With Upflow, these fees are automatically added to the payment when your customer selects the card payment method.
Set a surcharge percentage to pass part of your card processing costs on to your customers.
Upflow permits surcharging under the following conditions:
* **Credit cards only** — surcharges are automatically disabled for debit and prepaid cards, and for any card whose type can't be determined.
* **Capped at 3%** — the maximum allowed under Visa and Mastercard rules.
* **Not available for organizations based in Connecticut, Maine, Massachusetts, or Puerto Rico** — surcharging is prohibited outright under state law in these regions.
## How surcharges are calculated
The surcharge is a percentage of the invoice's total amount (including VAT). For example, if you set your surcharge to 3%, a \$1,000 invoice will result in a \$1,030.00 charge to your customer.
## What is the impact of activating surcharges?
When activated, surcharges will appear as a separate "*card fees*" line item on the card checkout page.
***Note:*** When the card is identified as debit or prepaid, no surcharge is added.
The **Payments List view** lets you track transactions with surcharges easily:
***Note:*** When a card fee is €0, a tooltip in the Payments List view explains why:
* *For debit or prepaid cards: "Card fees don't apply to debit or prepaid cards, so no fee was charged to the customer."*
* *For unknown card type: "We couldn't confirm the card type, so no card fee was applied."*
## Setting up surcharges
### Activating surcharges
1. **Head to your settings:** Go to your [Payment Methods](https://app.upflow.io/organization/-/settings/payment-methods) section, and click Edit at the Card level.
2. **Enable the toggle:** Activate the **Surcharges** toggle.
3. **Define the fee:** Specify a surcharge percentage, up to a maximum of 3%, to apply to card payments.
4. **Set default activation:** Decide whether to enable surcharges by default for new customers. Existing customers will require manual or bulk activation.
### Activating surcharges for your customers
#### Individually
* Go to the **Customer Details page**.
* Use the toggle **Surcharges** to activate or deactivate surcharges for a specific customer.
#### In bulk
* Navigate to the **Customer List view**.
* Select multiple customers and use the bulk action feature to enable or disable surcharges.
#### Using smart rules
* Configure [Smart Rules](/en-us/collection-and-collaboration/smart-rules/smart-rules) to automatically activate surcharges based on specific criteria, such as customer type or any custom fields.
* **Be transparent:** Clearly inform customers about surcharges during the checkout process to avoid confusion. You can mention it in your email reminders or even create a dedicated campaign.
* **Stay compliant:** Upflow's surcharging model brings compliance by default, but please work with your legal counsel to ensure your fee structure complies with local regulations. You remain responsible for confirming compliance with any other state, card network, or industry rules that apply to your business.
* **Monitor performance:** Regularly review your Payments List view to track how surcharges impact payment collection.
For more details, check out the [Online Payment Setup Guide](/en-us/payments/accept-online-payments/managing-online-payment-methods) or contact [support@upflow.io](mailto:support@upflow.io).
# Portal: Pay button unavailable
Source: https://docs.upflow.io/en-us/payments/collect-online-payments/portal-pay-button-unavailable
Troubleshoot why the Pay button is hidden in the Upflow customer portal when a saved payment method is on file, and learn how to enable manual payments.
Your customers want to pay their open invoice(s) in their Upflow portal, but the *Pay* button is not available?
This might be because they have a saved payment method on file:
When they do, the manual payments are not available, to avoid any duplicate payments (manual vs automatic debits).
### Process a manual payment
To proceed with a manual payment, your customer must remove their payment information from the portal:
They will then be able to select/unselect invoices, click the Pay butto, select the payment method they wish to use, and save their payment information again.
📌 If the invoice's due date is less than two days away, the automatic debit might already be scheduled. You can check it from your customer's timeline "Autopay scheduled for *date* ".
You can refer to our article on [Collecting automatically with Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay) for more insights.
# ACH Direct Debit
Source: https://docs.upflow.io/en-us/payments/online-payment-methods/ach-direct-debit
Collect USD payments from US customers via ACH direct debit, with instant bank login verification, manual micro-deposit fallback, and recurring mandates.
Let your customers based in the US easily pay by authorizing you to debit their bank account via Upflow portals. Available for:
| **Customer (payer) country** | **Presentment currency** | **Merchants (payee) country** |
| - | - | - |
| US | USD | US |
# What is ACH direct debit?
ACH ("Automated Clearing House") is a US payment network overseen by Nacha that enables bank-to-bank payments. It features two main modes for transferring the funds ([more details here](https://upflow.io/blog/business-to-business-payments/ach-credit-vs-ach-debit)):
* **ACH Credit:** your customer instructs their bank to send the money to yours. This is functionally similar to a wire transfer, customers *"push"* money to you.
* **ACH Debit:** you instruct your bank to debit the customer's bank account after obtaining their authorization. You *"pull"* the funds into your own bank account.
👉 ACH Direct Debit enables you to collect payments by directly instructing your customer's bank to transfer the funds over to yours. The network supports both one-off and recurring debits.
# Collecting payments via ACH direct debit
First, [follow this short guide](/en-us/payments/accept-online-payments/managing-online-payment-methods) to make ACH Direct Debit available as a payment method for your customers in a few clicks.
Triggering a direct debit over the ACH network involves 3 main steps:
1. your customer verifies their bank account.
2. your customer authorizes the debit by setting up a Direct Debit mandate.
3. the debit order is issued over the ACH network.
## Step 1 - Choose a verification method
Customer is presented with two options on the portal:
* **Instant verification via bank login** (recommended)
* **Manual verification via micro-deposits** — a 1–2 business day fallback your customer can use if their bank doesn't support bank login.
## Step 2 - Complete mandate setup
### Path A: Instant verification (bank login)
Customer signs into their bank, selects the account to debit, then sees and confirms the mandate. Account is verified immediately.
### Path B: Manual verification (micro-deposits)
1. Customer enters routing & account number and start the mandate setup:
2. Stripe issues a small direct deposit (under \$1) to the bank account (1–2 business days to land).
3. Upflow sends a verification email titled "ACH bank verification initiated" to the email address the customer entered when adding their ACH Payment method.
This email address is captured when the payment method is added in the checkout flow and may differ from the customer's main contact email — make sure the customer enters the address of the person who will complete the verification.
4. Customer clicks the link in the email and enters the two micro-deposit amounts to confirm account ownership. They have up to 10 calendar days.
If the 10-day verification window expires before your customer enters the micro-deposit amounts, the payment fails and the bank account is automatically removed from their saved payment methods — they'll need to add it again and restart verification.
While manual verification is pending:
* Customer sees a callout on their portal homepage with the amount, linked invoices, verification link, and a cancel option.
* The invoices tied to that in-progress payment are removed from the pre-selected list (no duplicate payments).
* You see a payment-in-progress callout on the customer's details page.
## Step 3 - ACH Debit triggered
Once the account is verified (either path), the ACH debit is automatically triggered immediately when payment is confirmed, or per the autopay schedule if no invoice is overdue. ACH debits generally take 3–4 business days to settle (or fail).
## Autopay supports ACH
Your customer can opt into [Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay) so future invoices are debited automatically on their due date — either when they enrol in ACH at checkout, or later from their customer portal. ACH debits generally take 3–4 business days to settle (or fail).
# BACS Direct Debit
Source: https://docs.upflow.io/en-us/payments/online-payment-methods/bacs-direct-debit
Collect GBP payments from UK customers via BACS direct debit through Upflow portals, including mandate signing, autopay enrollment, and eligibility rules.
Let your customers based in the UK easily pay by authorizing you to debit their bank account via Upflow portals. Available for:
| **Customer (payer) country** | **Presentment currency** | **Merchants (payee) country** |
| - | - | - |
| UK | GBP | UK |
**Eligibility requirement:** BACS Direct Debit requires a UK legal entity tied to your Stripe account. This is a Stripe platform constraint — merchants without a UK legal entity cannot enable BACS DD, even if their customers are based in the UK.
# What is BACS direct debit?
BACS ("Bankers Automated Clearing System") is a UK payment network that enables bank-to-bank payments. It features two main modes for transferring the funds:
* **BACS Credit:** your customer instructs their bank to send the money to yours. This is functionally similar to a wire transfer; customers *"push"* money to you.
* **BACS Debit:** you instruct your bank to debit the customer's account after obtaining authorization. You *"pull"* the funds into your bank account.
👉 BACS Direct Debit lets you collect payments by directly instructing your customer's bank to transfer the funds to yours. The network supports both one-off and recurring debits.
# Collecting payments via BACS direct debit
First, [follow this short guide](/en-us/payments/accept-online-payments/managing-online-payment-methods) to make BACS Direct Debit available as a payment method for your customers in a few clicks.
Triggering a direct debit over the BACS network involves 3 main steps:
1. your customer sets up a Direct Debit mandate with their bank details.
2. for new mandates, the mandate is verified with the customer's bank.
3. once the mandate is verified, the debit order is issued over the BACS network.
## Step 1 - Mandate setup
1 - Customer enters their sort code and account number
1 - Customer enters their sort code and account number
2 - Customer reviews and confirms the BACS Direct Debit mandate, authorizing the debit.
2 - Customer reviews and confirms the BACS Direct Debit mandate, authorizing the debit.
## Step 2 - Mandate verification (new mandates only)
If this is a **new mandate**, it enters a *pending* state while it's being validated with the customer's bank.
While a BACS payment is being processed:
* Customer sees a callout on their portal homepage with the payment amount, the linked invoices, and a cancel option.
* The invoices tied to that in-progress payment are removed from the pre-selected list (no duplicate payments).
* You see a payment-in-progress callout on the customer's details page.
## Step 3 - BACS Debit triggered
Once the mandate is verified, Upflow automatically triggers the BACS Debit. The payment then stays *pending* for several business days while it's processed by the BACS network, before settling (or failing). BACS Debits typically take several business days to be confirmed (or fail).
## Autopay supports BACS
Your customer can opt into [Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay) so future invoices are debited automatically on their due date — either when they enrol in BACS at checkout, or later from their customer portal.
# SEPA Direct Debit
Source: https://docs.upflow.io/en-us/payments/online-payment-methods/sepa-direct-debit
Collect euro payments from EU and UK customers via SEPA direct debit through Upflow portals, including mandate signing, autopay, and transaction limits.
Let your customers based in Europe easily pay by authorizing you to debit their bank account via Upflow portals. Available for:
| **Customer (payer) country** | **Presentment currency** | **Merchants (payee) country** |
| - | - | - |
| EU\* & UK | EUR | EU\*, UK, US, CA, AU |
*\* includes other SEPA countries: Norway, Switzerland, Iceland, Liechtenstein, Monaco, San Marino, Andorra, Vatican City.*
## What is SEPA direct debit?
SEPA ("Single Euro Payments Area") is a European payment network overseen by the European Payments Council (EPC) that enables euro-denominated bank-to-bank payments across 36 countries. It features two main modes for transferring funds:
* **SEPA Credit Transfer:** your customer instructs their bank to send the money to yours. This is functionally similar to a wire transfer; customers *"push"* money to you.
* **SEPA Direct Debit:** you instruct your bank to debit the customer's account after obtaining authorization. You *"pull"* the funds into your bank account.
👉 SEPA Direct Debit lets you collect payments by directly instructing your customer's bank to transfer the funds to yours. The network supports both one-off and recurring debits.
## Collecting payments via SEPA direct debit
First, [follow this short guide](/en-us/payments/accept-online-payments/managing-online-payment-methods) to make SEPA Direct Debit available as a payment method for your customers in a few clicks.
Triggering a direct debit over the SEPA network involves 2 main steps:
1. your customer provides their IBAN and authorizes the debit by agreeing to a mandate.
2. the debit order is issued over the SEPA network.
## Step 1 - Mandate
From their payment portal, your customer selects **SEPA Debit** as their payment method and fills in their:
* **IBAN** — their International Bank Account Number
* **Full name** — the account holder's name
* **Country or region** and **billing address**
At the bottom of the form, your customer reads and implicitly agrees to the SEPA mandate by confirming payment. This mandate authorizes you and Stripe (Upflow's payment infrastructure partner) to send instructions to your customer's bank to debit their account. Your customer is also notified at least 2 days before each future debit.
> **Note:** SEPA Direct Debit has a default transaction limit of €10,000 per payment. If a customer selects invoices totaling more than this amount, they will be prompted to reduce their selection or use another payment method. You can [request an increase](https://support.stripe.com/) through Stripe support.
## Step 2 - triggering SEPA debit
Once your customer has confirmed the mandate, the SEPA Debit is automatically triggered:
* immediately when payment is confirmed in step 1 above.
* or according to the [autopay schedule](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay) if no invoice is currently overdue.
Your customer will see a confirmation screen once the debit has been successfully initiated:
SEPA Debits generally take up to 3–5 business days to be confirmed (or fail).
> **Note on recurring debits:** if your customer opted into [autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay) when saving their payment method, future invoices will be debited automatically using the same IBAN — no further action required from your customer.
## Customer recall rights
Under SEPA regulations, your customers have the right to request a refund (recall) of an authorized debit directly from their bank — no action is required on your end to enable this. They have **8 weeks** from the debit date to do so.
For what happens in Upflow when a recall or a late payment failure occurs, see [Disputes & chargebacks](/en-us/payments/process-online-payments/disputes-and-chargebacks) and [Failed payments](/en-us/payments/process-online-payments/failed-payments).
# Disputes & chargebacks
Source: https://docs.upflow.io/en-us/payments/process-online-payments/disputes-and-chargebacks
Handle card chargebacks and final ACH or SEPA direct debit disputes in Upflow, gather evidence to counter, and limit dispute rates on your payment account.
Customers can sometimes dispute previously made payments to attempt to recover the funds. Disputes are also known as “chargebacks”.
👉 When one of your customers is threatening a dispute, the best path forward is to **always engage with them and try to resolve the situation before the payment is actually disputed** (for example: issue a credit or provide a refund if they have a legitimate claim). This is because payment networks monitor the "dispute rate" across your transactions, and you can get a penalty or your payment account shut down if this rate is too high.
Even if you deem your customer doesn't have a legitimate claim for a potential dispute, **you should still attempt to resolve the situation proactively**. Disputes must be seen as a "last resort" that you'll want to avoid at all costs.
Fortunately, disputes are practically rare in the normal course of business in B2B so you shouldn't worry too much about them.
If your customer disputes a payment before you are able to engage with them, or if they choose to follow through with it, you may be able to file a counter. The exact underlying dispute mechanics vary by payment network but here's the important main distinction you should be aware of:
* **direct debit disputes, like ACH or SEPA, are final.** This means that you cannot counter the dispute and your customer will always recover their funds from you. You need to resolve the situation with your customer directly.
* **card disputes are generally not final** and can be countered by submitting evidence, which results in funds being returned to you automatically if won.
If one of your payments is disputed, Upflow will notify and work with you to file a counter if possible. The high level resolution process is as follows:
1. whenever a payment is disputed, funds are immediately recovered by the payment network which results in funds being pulled from your account balance (or bank account if insufficient).
2. if the dispute is eligible for a counter, Upflow contacts you to gather evidence and file a counter on your behalf.
3. the issuing bank reviews the counter filing, and resolves the dispute either in your favor or your customer's favor. Their decision cannot be appealed or influenced by Upflow.
# Failed payments
Source: https://docs.upflow.io/en-us/payments/process-online-payments/failed-payments
Investigate failed online payments in Upflow using gateway messages, decline codes, and timeline events to diagnose insufficient funds or invalid mandates.
Sometimes, a payment capture may fail. This can be due to several reasons from insufficient funds on the payment method, or an invalidated direct debit mandate, to more generic decline codes emitted by your customer's payment service provider or bank.
You can see and filter failed payments from your [Payments list view](https://app.upflow.io/organization/-/transactions):
Add the Gateway message column, and reorder your columns to your liking:
Hover your mouse over the message icon for more information:
The same reasons are available in your customer’s timeline:
Failed payments writeback behavior differs for each ERP and accounting software.
👉 To find out how those are handled by your platform, head over to the appropriate section [for your integration here](https://support.upflow.io/hc/en-us/categories/13815951388945-Integrations).
# FX & multi-currency settlement
Source: https://docs.upflow.io/en-us/payments/process-online-payments/fx-and-multi-currency-settlement
Receive Upflow payouts in your presentment currency where eligible, or rely on automatic FX conversion to your settlement currency with on-the-fly conversion fees.
Through Upflow, you can accept payments in almost every currency. If your company invoices in multiple different currencies, you have 2 options to receive funds depending on eligibility in your country of operations.
The following useful terms are defined as:
* ***presentment currency*** : currency in which you invoiced your customer, and used to present the payment request via Upflow portals.
* ***settlement currency*** : currency of your bank account where [you receive the payouts/deposits](/en-us/payments/process-online-payments/money-flow-overview) from your Upflow payment account.
* ***default currency*** : main settlement currency in your country of operations, for example USD in the US and CAD in Canada.
## (recommended) Option 1: settle in presentment currency
If (i) your country is eligible for multi-currency settlement and (ii) you own bank accounts denominated in a supported settlement currency, you can accrue a balance in the corresponding presentment currency and pay out directly to those. For example as a Canadian merchant:
1. Your customers pay in their *presentment currency*. No FX conversion is done and no FX fees are incurred since you can accrue a balance in the corresponding *settlement currency*.
2. Funds collected in each *settlement currency* are paid out to their respective linked bank accounts. In this configuration, payouts may be subject to a small fee.
👉 Reach out to your Customer Success Manager or [support@upflow.io](mailto:support@upflow.io) to know if you are eligible for multi-currency settlement! The list of eligible countries is always evolving.
## (default) Option 2: conversion to settlement currency
If your country or settlement currency is not supported, or if you don't own bank accounts in the desired settlement currency, don't worry! You can still receive payments in almost every currency via Upflow. For example as a European merchant receiving payments in EUR and GBP:
1. Your customers pay in their *presentment currency*. FX conversion is done on-the-fly where the *presentment currency* is different than the *settlement currency* , and conversion fees are applied.
2. Funds collected in your *settlement currency* are paid out to your bank account through the usual process.
# Generate refunds in Upflow
Source: https://docs.upflow.io/en-us/payments/process-online-payments/generate-refunds
Issue full refunds on succeeded online payments from the Upflow Payments list view, with automatic invoice and credit memo updates in your accounting system.
You may need to refund a previously collected payment to your customer as part of your contractual relationship with them.
**While we generally recommend to try & resolve refund requests by offering alternatives** outside of your payment flow (typically: issuing credit notes applied to future invoices), it is important to acknowledge that:
* your customer may prefer a refund, especially if your commercial relationship is occasional or if your company made a billing mistake.
* refunds can be proactively issued to [avoid payment disputes](/en-us/payments/process-online-payments/disputes-and-chargebacks), which hurt both your customer relationship & reputation with payment networks.
👉 When you accept online payments with Upflow, you can issue full refunds for payments received via customer portals in a few clicks directly from your interface.
## How to process a refund
Only Upflow Admin users can initiate a full refund for a payment from the [Payments list view](https://app.upflow.io/organization/-/transactions).
First, find the payment you want to refund. You can use the search bar or filters to help you:
Then, confirm the refund initiation. Once done, the refund will immediately be materialized in Upflow. Depending on your integration, it will either be linked to the initial payment or to the corresponding credit memo if the initial payment is still applied to an invoice.
If the refund is applied to the initial payment, the previously paid invoices will be automatically reverted to unpaid and included in the collections workflows again. If you'd like to handle those separately, you can just flag them as [invoices in dispute](/en-us/core-entities/invoices/invoice-disputes).
## Good to know
* Refunds can only be created on succeeded payments made in Upflow.
* Partial refunds (amount less than the original payments) are not yet supported.
## Troubleshooting
When attempting to create a refund from Upflow, this error message is generated, this means your Stripe balance' funds aren't enough to cover the refund amount. You can track the balance directly from your Stripe Express dashboard. In Stripe Express, go to **Balance →** there you’ll be able to see the split between Available and Pending funds.
For the refund to be processed to the customer’s card/account, the available balance must be sufficient to cover the refund amount.
To avoid the funds being paid out before the balance reaches the required amount, we can switch the payout schedule to manual, so the funds remain in Stripe until there is enough available balance to process the refund.
Additional solutions:
1. Refund the customer outside of Upflow, via bank transfer or wire, if they need the funds back as soon as possible.
2. Wait until the Stripe Express available balance is sufficient, then process the refund back to the customer's used payment method.
3. Top up your Stripe account to have the necessary funds for the refund
* Go to Balance
* Click "See details" on the top right
* A pop up of "Your balance" full details will show up.
* Below Your balance section, there would be the section "Future refunds, disputes, or negative balance"
* Just click "Add to balance" and enter the amount you'd like to top up.
* Click continue and follow the prompts.
You can submit a Support request at the top of your screen if you have any additional questions.
# Money flow overview
Source: https://docs.upflow.io/en-us/payments/process-online-payments/money-flow-overview
Understand how Upflow card and direct debit payments transit through Stripe processing, accrue on your balance net of fees, and pay out to your bank daily.
This article provides a functional overview of how funds move from your customer's bank to yours through our processing infrastructure and related operations. Please refer to your [integration-specific section](https://support.upflow.io/hc/en-us/categories/13815951388945-Integrations) to understand how these movements are reflected & synchronized back to your systems for accounting.
# Basic overview
When you collect online payments via Upflow, funds don't land directly on your bank account as they first transit over our processing infrastructure. The physical transfer of funds happens automatically in 3 simple steps:
1. Payment is authorized & captured, whether manually by your customer or automatically through [Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay).
2. Funds are added to your payment account balance, minus applicable processing fees.
3. Funds collected are "paid out"/deposited to your bank account in daily batches.
Example for a US-based organization receiving 2 card payments of \$1,000 each from different customers:
1. Your customers' cards are debited for \$1,000 each. They automatically receive a payment receipt from your Upflow platform.
2. Funds captured are immediately added to your payment account balance for 2 x \$1,000 minus processing fees, e.g. \$1,930.
3. Your full payment account balance is paid out to your bank account. You will receive a bank transfer of \$1,930 in the next few days.
# Online payment receipt
Source: https://docs.upflow.io/en-us/payments/process-online-payments/online-payment-receipt
Send and download Upflow online payment receipts for card and direct debit transactions, including surcharges or fees, from the transaction details page.
After your customer triggers a payment, they will automatically receive a receipt at the address used during checkout. It also applies to automatically triggered payments.
On your end, you can also download the payment receipt from the transaction details page for any Upflow payment. It is also available in [the transaction list view](https://app.upflow.io/organization/-/transactions).
This is what the receipt looks like. If any additional fees apply, they will also be displayed.
# Payout reconciliation
Source: https://docs.upflow.io/en-us/payments/process-online-payments/payout-reconciliation
Reconcile Stripe payouts from Upflow Payments with your accounting system using the CSV export, including payments, fees, refunds, and arrival dates.
When you collect online payments through **Upflow Payments**, Stripe batches successful payments into **payouts** that are wired to your bank account. To keep your books in sync, the deposit that lands in your bank needs to be reflected in your accounting system, applied against the right customer payments and net of any processing fees.
For accounting integrations where Upflow does **not** create the bank deposit automatically, you reconcile the payout manually using a CSV export from Upflow. This page describes the principle and the data in the export. For the concrete steps in your accounting system, see the relevant integration article.
This article applies to merchants using **Upflow Payments**. If you collect payments through **Upflow Payments Lite** (your own Stripe account connected to Upflow), payouts are managed by Stripe directly — reconcile them with Stripe's own reports.
## When does manual reconciliation apply?
It depends on the integration:
* **Automated payout sync** — the integration creates the bank deposit in your accounting system, automatically matched to the payments it contains. No manual step required. This is the case for our NetSuite integration only (see [Online payments sync for NetSuite](/en-us/integrations/netsuite/online-payments-sync-for-netsuite)).
* **Manual reconciliation** — the integration writes back individual payments but does not create the bank deposit, so you record the deposit yourself based on the Upflow payout export. This is the case for every other integration, including QuickBooks Online (see [QuickBooks - Payout reconciliation](/en-us/integrations/quickbooks/payout-reconciliation)) and Sage Intacct (see [Sage Intacct - Payout reconciliation](/en-us/integrations/sage-intacct/payout-reconciliation)).
## The Upflow payout export
In Upflow, go to the [**Payments settings**](https://app.upflow.io/organization/-/settings/payment-gateway) (**Settings → Payment gateway**) and, under **Export your payout data**, click **Download**. This exports all your payment and payout data as a single CSV.
The export contains one row per Upflow transaction included in your payouts. The columns most useful for accounting reconciliation are:
* `payout_arrival_date` and `payout_amount` — the date and total of the bank deposit you'll record in your accounting system.
* `transaction_upflow_id` — the Upflow payment identifier. When an integration writes back payments individually (as QuickBooks Online does), this matches the corresponding payment record in your accounting system, so you can find each payment unambiguously.
* `transaction_converted_total_amount` — the transaction's contribution to the payout in the payout currency (what actually lands in the bank).
* `transaction_processing_fees` and `transaction_net_amount` — fees withheld by Upflow and the net amount deposited.
* `customer_name` — the customer the payment is applied to.
Sample export: [upflow-payout-sample.csv](/images/upflow-payout-sample.csv) — one payout, four transactions, full set of columns.
## High-level reconciliation flow
1. **Export your payout data from Upflow** as described above, and identify the payout you want to reconcile (the rows sharing the same `payout_arrival_date` / `payout_amount` in the CSV).
2. **In your accounting system, record a deposit** on the bank account where the payout arrived, dated to the payout's arrival date, for the payout amount. Apply that deposit against the individual payments listed in the CSV so they're cleared from any "undeposited" / clearing account, and post any processing fees to the relevant expense account.
3. **Match the deposit against your bank feed** when the corresponding bank transaction appears.
The exact mechanics depend on your accounting system.
# Your Actions list view
Source: https://docs.upflow.io/en-us/core-entities/actions/your-actions-list-view
Manage your daily AR work in Upflow from the Actions list view, switching between To do and All tabs to track pending reminders, calls and follow-ups.
Your Actions are divided in two tabs: To do and All.
Each tab has its specificities and benefits, to better manage and check actions on a daily basis.
## Actions To do list
The To do list (or tab) will only display manual actions that are assigned to you, only or partially. They will be displayed in the list from the moment they're due.
Pending manual actions are all available under the "All" subtab, and you can then check each type per source: Reminders, Replies, Billing, Campaigns.
*Replies and Billing will only be displayed if the related features are enabled (learn more about replies* [*here*](/en-us/collection-and-collaboration/emails/manage-customer-replies) *and* *[Billing](/en-us/collection-and-collaboration/send-invoices-from-upflow/overview)).*
### Filter manual actions
You can filter pending manual actions per Type (email, letter, task, call, sms), workflow name, workflow type (invoice vs customer level), or campaign name (if turned manual - [learn more](/en-us/collection-and-collaboration/run-your-collection/action-campaigns)).
### Sort manual actions
You can also sort them based on the customer (or invoice, if invoice-level reminders) outstanding amount, overdue amount or Action due date (Descending):
### Manage my manual actions
You can click any actions in your To do list, edit them as needed (1), then either Ignore it (2) or perform it (3).
(1) You can edit the action content, contacts, email sender, etc. As well as the full template proposed. Click the pending email's type, and select one of the templates from your Workflows:
(2) You can ignore a pending action from this same page. Doing so will remove it from your list, and will make the customer jump to the next one in the workflow. Learn more [here](/en-us/collection-and-collaboration/run-your-collection/ignore-or-skip-a-step-in-my-workflow).
(3) Send an email, a sms or a letter, validate a task, and mark a call as completed.
Learn more under each action type section [here](https://support.upflow.io/hc/en-us/categories/22329064888337-Collection-Collaboration).
## Actions > All
This view is more complete than the To do list. Here, you'll be able to review all actions for each customer, regardless of their status or due date.
The default view is filtered on "Action state contains Done", but you can change it at any time:
To do so, change the filters and/or columns, and click "Save" at the top left, or Save as new for custom views.
### Filter and sort my actions
You can filter your actions as needed, add or remove columns, reorder them, and sort some of them.
And export your filtered data! The export contains the columns displayed in your view, in the same order.
* *For more details on how to use your list views, refer to* [*Your Upflow list views*](/en-us/upflow-configuration/organization-configuration/list-views).
### Read/understand my actions list
**Action name:** matches the related workflow template, ad hoc action type, or campaign name the action is triggered from.
**Customer:** displays the customer name the action is for. If you have a customer hierarchy in Upflow, it'll show the exact entity name (parent/child) the action is for.
**Due date:** this one is a bit more specific, based on the action source.
For ad hoc or campaign actions, it'll match the creation date.
For workflow billing actions, it'll match the related invoice's issue date (cf. [Send invoices from Upflow ✨](/en-us/collection-and-collaboration/send-invoices-from-upflow/overview))
For workflow actions, an action's due date is the **latest** of:
1. **Template schedule** — the action's configured offset from the invoice due/issue date. In other words, it's based on the invoice's issue or due date + the template trigger time.
2. **Contact cooldown** — or "Minimum contact delay" of the related workflow. The next action won't be scheduled until the minimum number of days since the **last time the customer was contacted** *(this can override the invoice-based date entirely)*
3. **Pause end date** — if collection is paused, no action is scheduled before it lifts
**Performed date:** the date the action is performed (sent/ignored/validated/confirmed).
**Action state:** Done/Ignored/Failed/In progress/To do (see more below)
**Workflow:** the workflow name the action is triggered from. You'll see the name, the customer or invoice level icon, and redirects to the workflow page when clicked.
**Performed by:** empty when the action is automated. If manual, it'll display the name of the user who manually performed it.
**Assigned to:** users the action template is assigned to, if triggered from a workflow.
**Carrying invoice:** the invoice leading the customer-level workflow, triggering a billing action, or leading an invoice-level workflow.
**Recipients:** recipients meant to receive the email "To do", or the ones that received it when "Done".
**Delivery status:**
**Campaign:** campaign name if the action is triggered from one.
**Created date:** the date the action was created by our system.
**Source:** will show the action source - Billing, Workflow, Campaign, Ad hoc, or Reply.
#### Action State specificities
* **Done**: the action was successfully performed. For email and letter actions, you can also check the Deliverability status for more insights. An email successfully performed in Upflow might still experience delivery issues (cf. [learn more](https://docs.upflow.io/en-us/collection-and-collaboration/run-your-collection/email-reminders-delivery-statuses#email-reminders-statuses)).
* **Failed**: the action failed to be performed. Please check the customer timeline for more information, and reach out to our Support team if you need further information.
* **Ignored**: one of your collaborator manually ignored (skipped) the action. You can see who from the "Performed by" column.
* **In progress**: the email action was sent, but shows **In progress**. This means the email is being processed and sent in the background by our provider. While the message is being queued and handed off to our email provider, the status stays **In progress**. It updates to Done (or failed) typically within a few seconds up to \~1–2 minutes to update. This usually
* **To do**: the action was created by our system and remains to be performed. You can rely on the additional information from the view, to better understand which action this is, for which customer, when it is due, etc.
### Check/filter specific actions
Using our filters (see full list [here](/en-us/upflow-configuration/organization-configuration/filters)), you can check actions as needed:
* See only actions that are late and should have been performed > filter on "Actions state contains To do" + "Due date is on or before *today's date* ".
* See only actions that are due today > filter on "Actions state contains To do" + "Due date is *today's date* ".
* See only actions to come in the next few days or weeks > filter on "Actions state contains To do" + "Due date is on or after *today's date* " / or / "Due date is between *this* and *this date* ".
* etc.
# Contact custom fields
Source: https://docs.upflow.io/en-us/core-entities/contacts/contact-custom-fields
Create custom fields on Upflow contacts to capture extra attributes, segment recipients and personalize collection reminders with targeted data.
Contact custom fields let you create specific data points associated with your contacts, enabling better organization and more targeted interactions.
## Creating contact custom fields
Go to **Settings** > **Custom Fields**.
### Add new custom fields
1. Once you're in the dedicated section, select custom fields from NetSuite or Salesforce. This flexibility means you can maintain consistency across your tools.
2. If you prefer (or don't use SFDC/NetSuite) you'll find the option to create a new custom field for the Contacts entity.
3. You can create fields that are specific to your needs. For example, you might want to add fields for "Billing email" or "Executive contact."
### Visibility of custom fields
After you create these fields, they are visible in both the contact list view and on the customer details page.
## Editing custom fields
To edit a custom field, go to the contact edit modal on the customer page and make your changes.
**Best practice:** If you've imported this information from a third-party source, it cannot be edited in Upflow. Manage those edits in the original system and they'll automatically update in Upflow.
**Good to know:** Bulk editing of contact fields through the list view isn't supported. You'll need to make updates individually.
**Integration note:** Currently, contact custom fields integration is available only with NetSuite and Salesforce. If you want to set up custom fields from other sources, you can configure API settings:
* Create custom field: [API documentation - Create custom fields](https://upflow.docs.apiary.io/#reference/0/custom-fields/create-custom-fields)
* Import contact custom field: [API documentation - Import contact custom fields](https://upflow.docs.apiary.io/#reference/0/contacts/create-customer-contact)
## Managing your contact custom fields
### Exporting data
You can export your custom fields via CSV from the Contacts list view for reporting or further analysis.
## Using custom fields in reminders
* You can use these fields to specify which contacts should receive payment reminders, tailoring your communication to each customer's needs.
* Each field can be filtered, allowing for targeted messages. You cannot combine multiple fields for a single reminder.
### Adding recipients
You can use custom fields to specify which contacts should receive collection reminders. Add tags explicitly when you set them as recipients.
* Look for your contact custom position and select it:
* Select a value according to the field type:
* If not, you will see the field in red, and it won't be usable. Click **Edit** and add a value:
**Good to know:** Always double-check your entries for accuracy to ensure the successful addition of tags.
Note that only the selected custom positions will receive this email template. If they are not available at the customer level, the email will fall back to the Main contact.
## Takeaways
* Custom fields are vital for organizing contact information and improving targeted communication in Upflow.
* You can create and manage custom fields easily, importing from tools like NetSuite and Salesforce for consistency.
* Double-check tags for accuracy to avoid communication errors.
* Bulk editing isn't supported — updates must be made individually.
* Integration with other sources requires API configuration.
Have questions? [Contact our support team](/en-us/essentials/get-started/contact-our-support-team).
# Your Credit notes in Upflow
Source: https://docs.upflow.io/en-us/core-entities/credit-notes/credit-notes-overview
Browse, filter and reconcile every customer credit note in Upflow from the dedicated Credit Notes tab and understand how they offset open balances.
## Credit notes list view
Find all your credit notes (credit memos) under the [Invoices list view > Credit Notes tab](https://app.upflow.io/organization/-/creditnotes):
All credit notes imported/synced from your billing tool will be displayed in this list view.
You can filter them based on different information (learn more here: [Filters in Upflow](/en-us/upflow-configuration/organization-configuration/filters)).
* Add, remove, reorder columns\* to your needs and save the view to find this format later.
* Export the (filtered) list.
### \*Available credit note fields
| **Field name** | **Description** |
| - | - |
| Reference | The credit note reference in your source system |
| Customer | The customer the credit note is applied to |
| Issue date | Based on the date filled in your source system |
| Applied to | The reference the credit note is applied to (invoice, payment) |
| Total amount | Credit note’s total amount when issued |
| Unapplied amount | Amount unapplied to any references, left to apply |
| Imported date | Date and time the credit note was synced into Upflow |
| External ID | Credit note ID from your source system |
| Title | If any synced from your source system |
## Credit notes - Customer page
From your customer's detail page, click the Credit Notes tab at the top right to see all their related references. There, you can rearrange the available columns as in the list view. And search for a specific reference if there are more than 10 references.
Click "View all credit notes" to be redirected to the list view, filtered on this customer.
## Credit notes - Customer portal
In your customer portals, credit notes are currently available based on their application.
Applied credit notes PDFs are by default merged with the related invoice(s) PDFs when downloaded from the portal. They're not yet visible in a dedicated section.
Unapplied (or not fully applied) credit notes, are visible in a dedicated section for information, but can't be applied from the portal. They must be applied from your source of truth.
## Troubleshooting
You can identify unapplied credit notes from:
#### A credit note is missing or unexpectedly unapplied?
Head to your billing tool, check its information and submit a Support request at the top with:
* The context + identified issue
* The reference (number)
* Its external ID (+ Upflow URL if present in Upflow)
* The invoice(s) it should be linked to and the linked amount
* Any additional information you'd believe relevant here. :)
# Link a credit note to an invoice [Legacy only]
Source: https://docs.upflow.io/en-us/core-entities/credit-notes/link-a-credit-note-to-an-invoice-legacy-only
Apply a credit note to a specific invoice on legacy Upflow setups, either through your billing tool sync or directly via the Upflow API endpoints.
**Your Upflow platform is integrated with a native integration**
If your Upflow platform is integrated to *NetSuite*, *QuickBooks*, *Stripe Billing*, *Sellsy* or *Xero*, link your credit notes/memos to the corresponding invoice(s) directly in your billing tool. It will then be synchronized from your billing tool to your Upflow platform.
**Your Upflow platform is integrated with our API**
You can link a credit note to an invoice directly from your Upflow platform from the detail of a credit note.
1. Go to your **[Invoices](https://app.upflow.io/organization/-/invoices)** tab
2. Click the **[Credit Notes](https://app.upflow.io/organization/-/creditnotes)** section
3. Click the filter icon in the **Invoices** column, then click **No customer linked**
4. Click the credit note you want to link and select **Link to invoice**
5. Choose the invoice you want to link your credit note to, click on the arrow where you want to apply it, and select **Done**
Any question? [Get in touch](mailto:support@upflow.io)!
# AI-suggested invoice disputes
Source: https://docs.upflow.io/en-us/core-entities/invoices/ai-suggested-invoice-disputes
Upflow AI parses customer replies to flag potentially disputed invoices and suggest the right dispute reason so your team can resolve blockers faster.
Upflow can automatically identify potential invoice disputes based on customer communications and suggest appropriate dispute reasons, helping you resolve issues faster and keep your collections process on track.
## When is this useful?
* **High email volume**: Your team receives many customer replies and needs help prioritizing disputed invoices
* **Faster resolution**: You want to quickly identify and categorize disputes without manually reviewing every email
* **Visibility**: You want to track which invoices have been flagged as disputed by customers
* **Consistency**: You need standardized dispute reasons across your organization
## Prerequisites
Before using this feature:
* **Email integration**: You must have [automatic reply imports](/en-us/collection-and-collaboration/emails/import-your-customers-replies-automatically) configured so Upflow can analyze customer communications
* **Custom dispute reasons**: Make sure your organization has [dispute reasons configured](https://app.upflow.io/organization/-/settings/disputes) in Settings
## How it works
When an email suggesting a potential dispute is received, Upflow:
1. **Identifies the invoice(s) concerned** based on the message context and your customer/invoice data.
2. **Suggests a dispute reason** based on the content of the customer message.
3. **Provides context for review**, typically including the key excerpt from the email that triggered the detection.
4. **Lets you decide**: you can **accept** the suggestion to create the dispute, **change** the dispute reason before confirming, or **reject** it (no dispute is created).
5. **Updates status once confirmed**: the invoice is marked as **Disputed**, the dispute appears in the timeline, and it becomes available for filtering/reporting like any other dispute.
The proposed dispute will include a quote from the communication that explains the rationale behind the suggestion. You can always edit it.
## Limitations
* AI suggestions are based on imported email content only - they cannot analyze calls, letters, or conversations outside Upflow
* The quality of suggestions depends on clear communication in customer emails
## FAQ
**Can I train the AI to improve suggestions?**
The AI continuously learns from patterns in customer communications. While you cannot manually train it, accepting or dismissing suggestions helps improve future accuracy.
**What happens if I dismiss a suggestion?**
Nothing - the suggestion simply disappears and no dispute is created. You can still manually create a dispute later if needed.
**What languages are supported?**
The AI can analyze emails in multiple languages, but works best with English, French, Spanish, and German communications.
**Does this work with all integrations?**
AI-suggested disputes work with any billing integration, as long as you have email reply imports configured.
# AI-suggested promise to pay
Source: https://docs.upflow.io/en-us/core-entities/invoices/ai-suggested-promise-to-pay
Let Upflow AI scan customer replies and invoice context to suggest a realistic promise-to-pay date your AR team can confirm in a single click.
Upflow can now automatically suggest a promise to pay date when a customer indicates they'll pay later. This feature analyzes customer communications and invoice context to recommend the most suitable payment timeline.
## When is this useful?
This feature is helpful when:
* You're managing multiple payment conversations and need quick, data-driven recommendations
* You want to maintain consistent follow-up practices across your team
## Prerequisites
To use AI-suggested promise to pay:
* **Email integration**: You must have [automatic reply imports](/en-us/collection-and-collaboration/emails/import-your-customers-replies-automatically) configured so Upflow can analyze customer communications
## How it works
Upflow analyzes customer communications (e.g., email replies imported into Upflow) to detect when a customer is **committing to pay later**. When a promise is detected, Upflow:
1. **Identifies the invoice(s) concerned** based on the message context and your customer/invoice data.
2. **Suggests a Promise to Pay date** based on the conversation
3. **Surfaces the suggestion in-context**, along with the supporting excerpt from the customer message when possible.
4. **Keeps you in control**: you can **accept** the suggested date, **edit** it, or **reject** it and set a different date.
5. **Logs the outcome** once confirmed so your team can follow up consistently and track promises over time.
The promise to pay that is suggested will include a quote from the communication that explains the rationale behind the suggestion. You can always edit it.
## Limitations
* AI suggestions are based on imported email content only - they cannot analyze calls, letters, or conversations outside Upflow
* The quality of suggestions depends on clear communication in customer emails
* Manual review is always recommended to ensure the suggested date aligns with any specific agreements or circumstances
## Frequently asked questions
**Can I override the suggested date?**
Yes. The AI provides a recommendation, but you have full control to accept, modify, or ignore the suggestion and enter your own date.
**What happens if I don't agree with the suggestion?**
Simply enter the date you prefer. The AI learns from actual outcomes over time, so your corrections help improve future suggestions.
**Does this work for all invoices?**
The feature works best when there's sufficient customer history and clear communication about payment intent. For brand new customers or ambiguous replies, suggestions may be less precise.
**Is this available for all integrations?**
Yes, as long as your accounting system is connected to Upflow and automatic reply imports are configured, the feature works regardless of your integration type.
# Export my invoices data from Upflow
Source: https://docs.upflow.io/en-us/core-entities/invoices/export-invoices-data
Export invoice data from the Invoices list view to CSV or XLSX, including customer fields such as owners, country or custom fields, for reporting, audits or external accounting workflows.
Export your invoices from the [**Invoices**](https://app.upflow.io/organization/-/invoices) list view to CSV or XLSX. The export contains the invoices and columns of your current view, including customer data such as owners, country or customer custom fields.
Invoice PDFs aren't included in the export.
## Export customer data along with the invoice data
1. Go to the [**Invoices**](https://app.upflow.io/organization/-/invoices) list view.
2. Click the **Edit columns button**, next to the Export button
3. Scroll to the **Customer** section.
4. Toggle the columns you want to display, and drag them to reorder.
5. Click **Export** in the top right corner and choose **CSV** or **XLSX**.
## Related articles
* [Your Upflow list views](/en-us/upflow-configuration/organization-configuration/list-views)
* [Filters](/en-us/upflow-configuration/organization-configuration/filters)
* [Assign users or workflows to your customers](/en-us/core-entities/customers/assign-users-or-workflows-to-your-customers)
* [Import and create custom fields into Upflow](/en-us/core-entities/others/import-and-create-custom-fields-into-upflow)
# Hide invoices and credit notes PDFs from the app
Source: https://docs.upflow.io/en-us/core-entities/invoices/hide-invoices-and-credit-notes-pdfs-from-the-app
Hide the synced invoice and credit note PDFs in Upflow when your billing tool differs from your accounting source to avoid sending mismatched documents.
Are your invoices imported into Upflow via an accounting tool, but you use a different tool for billing?
If so, there’s a chance the invoices imported into Upflow may not match the format your customers receive, potentially causing confusion.
To address this, Upflow offers a simple toggle that allows you to hide these mismatched invoices. You can enable this feature in the **Invoicing** section in your **Settings**.
Once activated:
* The PDF version of these invoices will no longer be accessible in Upflow.
* Customers will not see them in their portal.
* You will not see them on the invoice screen or in any emails or letters sent via Upflow.
**Please note that this feature will prevent you from using Upflow to send invoices to your customer.**
# Hide invoices from collection & payments
Source: https://docs.upflow.io/en-us/core-entities/invoices/hide-invoices-from-collection-and-payments
Hide specific invoices from Upflow customer portals, reminders, outstanding balances and account statements to pause collection on individual items.
You don't want to chase a specific invoice? Hide it from your customers.
## What is the impact of hiding an invoice?
When an invoice is hidden, it is no longer visible to your customers. No action will be triggered for those invoices, and they won't be included in your customers' outstanding amounts or used for payments, nor displayed in their [account statements](/en-us/customer-portal/customer-portal/download-your-account-statement).
Still, you will be able to see those invoices, and they will still be considered in your organization's analytics.
Related entities like payments and credit notes will also be hidden from your customers.
You will see a banner on the invoice details page for each hidden invoice.
In addition, those invoices will have a hidden icon next to them in the list views.
## How to hide/show invoices
Today, you can hide/show invoices from the invoice details page and the invoice list view via bulk actions. An invoice can be hidden, whatever its status, and if you decide to show it, then the same status will be used.
**Invoice details page**
**Invoice list view**
# Invoice dispute reasons
Source: https://docs.upflow.io/en-us/core-entities/invoices/invoice-dispute-reasons
Customize the list of invoice dispute reasons available to your team, customers and Upflow AI to better diagnose what is blocking customer payments.
Invoice dispute reasons allow you to better understand what is preventing some of your customers from paying. Having clear data on it will enable you to identify potential problems in your order-to-cash process and improve it.
You can customize the dispute reasons available to your team, your customers, and Upflow AI when disputing invoices. This helps you track disputes in a way that makes sense for your business.
# Default dispute reasons
Upflow seeds your account with these standard dispute reasons:
* Unsatisfactory work
* Faulty goods
* Late delivery
* Never agreed / Wasn't aware of payment
* Unable to make payment
* Pricing disagreements
* Invoice processing errors
* Other
You can edit or archive any of these to match your business needs.
# Why customize dispute reasons?
By default, Upflow provides standard dispute reasons like "Faulty goods," "Late delivery," and "Pricing disagreements." However, every business is different. Customizing your dispute reasons allows you to:
* **Track disputes that matter to your business** - Create reasons specific to your products, services, or common customer issues
* **Streamline resolution** - Help your team quickly understand and prioritize disputes based on relevant categories
# Accessing dispute settings
1. Navigate to [**Settings > Dispute reasons**](https://app.upflow.io/organization/-/settings/disputes) in Upflow
2. Here you'll see all your active and archived dispute reasons
# Managing dispute reasons
## Adding a new dispute reason
1. In the Disputes settings, click **Add reason**
2. Enter a unique label for your dispute reason
3. Click **Save**
The new reason will immediately be available for selection when creating disputes.
**Note:** Each dispute reason label must be unique across both active and archived reasons.
## Editing a dispute reason
1. Find the dispute reason you want to edit
2. Click Edit
3. Update the label
4. Click **Save**
**Important:** When you edit a dispute reason, it updates the value for all historical disputes that used this reason. This ensures your analytics remain consistent.
## Archiving a dispute reason
If you no longer want to use a specific dispute reason but need to preserve it for historical analysis:
1. Find the dispute reason you want to archive
2. Click Archive
3. Confirm the action
**What happens when you archive a reason:**
* It can no longer be selected for new disputes
* It remains visible in historical disputes and analytics
* It can be restored at any time
**Restoring an archived reason:**
1. Filter or navigate to archived reasons
2. Find the reason you want to restore
3. Click the restore icon
4. The reason will be available again for new disputes
# Invoice disputes
Source: https://docs.upflow.io/en-us/core-entities/invoices/invoice-disputes
Flag disputed invoices in Upflow to pause reminders, capture the blocker reason and route the issue to the right team for faster resolution.
If there is an issue with one of your invoices, you better know sooner rather than later. The invoice doesn't have to be 90 days past due for you to solve the issue.
To identify those invoices, you can use the dispute feature.
## What is the impact of disputing an invoice?
When disputed, an invoice is excluded from the collection process though it remains accounted for in your analytics and available on your customer portal.
From the **invoice details page**
On your **customer portal**
### Get notified
When a customer disputes or resolves an invoice from their portal, the customer's owner is notified according to their [profile's choices](https://app.upflow.io/organization/care-support-test-zblnc0b4oo/profile/notifications). If the customer has no owner, then the notification will be sent to all Finance users.
→ The customer never gets notified regarding disputes, whether it's adding one or resolving it.\\
## How to dispute an invoice?
Invoices can be disputed by you, or by your customers.
### From the invoice details page
You can dispute an invoice from the invoice details page, by clicking on the three dots at the top right. Select the reason for the dispute so you are able to identify issues in your process and solve them.
### From the customer portal
When a customer disputes an invoice from the portal, their owners will receive a notification (if no owner, it'll fall back on Finance users). Similarly, if they resolve the dispute from the portal.
## How to identify disputed invoices
### As a user in Upflow
You can identify and track disputed invoices by filtering on the `IN DISPUTE` status in your [Invoices list view](https://app.upflow.io/organization/-/invoices).
### As a customer from their portal
From their portal, your customers can see a disputed invoice, as it'll be flagged with:
* The orange ! icon at the left, and the selected reason
* As well as an orange dot on the Dispute icon at the right
Then, if they click the Dispute icon at the right...
...they will also have access to more context and the ability to Resolve the dispute:
#### Remove the dispute ability to your customers
If you don't want to give your customers the ability to dispute invoices themselves, or see the dispute comment, head over to your [Settings, Customer portal section](https://app.upflow.io/organization/-/settings/customer-portal), and disable the Dispute feature:
# Promise to pay
Source: https://docs.upflow.io/en-us/core-entities/invoices/promise-to-pay
Record and track customer promise-to-pay commitments per invoice in Upflow to forecast incoming cash and prioritize follow-ups on broken promises.
Use Promise to Pay to track invoices that your customers confirm they will pay and when they expect to pay them. This gives you visibility into which payments will hit your bank account.
## Set up a promise to pay
### From your team
Anyone in your team can add a promise to pay following a conversation with your customers.
To do this, you can go on the invoice details page and click on “Add a promise to pay”
Then fill in the details and hit Set
The promise to pay will then be set on the invoice and mentioned in the timeline.
If you selected "Pause collection on this customer", Upflow pauses collection through the whole promised day. Collection resumes the day after the promised date, so your customer receives no reminders on the day they promised to pay. For example, if the promise to pay is set for Friday May 1st, 2026, collection resumes on Saturday May 2nd, 2026.
However, if you didn't select "Pause collection on this customer" when setting up the promise to pay, the customer's collection will resume!\\
### From the customer portal
Your customers can also enter a promise to pay right from their portal:
But won't be able to pause their own collection doing so.
#### Update a promise to pay
To update a promise to pay date, access the invoice's page in Upflow, and click the promise to pay date displayed. Then, select a new date, and save.
The customer can follow the same process from their portal. You will then be notified.
## Track promises to pay
You can see all your promises to pay from the [invoices list view](https://app.upflow.io/organization/-/invoices?page=0\&filters=%7B%22status%22%3A%7B%22in%22%3A%5B%22DUE%22%2C%22OVERDUE%22%2C%22DISPUTED%22%5D%7D%2C%22promiseToPay%22%3A%7B%22eq%22%3Atrue%7D%7D\&columns=customId%2Ccustomer.companyName%2Cstatus%2CissuedAt%2CdueDate%2CamountOutstanding%2Ctotal%2CexpectedPayment) and see the ones that are late or are at risk of being late to take preventive actions.
Additionally, you can see those promises to pay in your invoice list export.
You can also filter your invoices on the Promise to pay date, or the Promise to pay source. The latter will help you know who from your team added promises, and if it came from the customer or your team:
* Filter on "Promise to pay source **is not empty** " to see invoices for which the promise to pay was added by your team
* Filter on "Promise to pay source **is empty** " to see invoices for which the promise to pay was added by the customer from their portal
#### From the timelines,
you can identify if the promise to pay was added by your team or the customer:
* if the promise event at the left of the timeline, it was done by the customer. You can also see the name by hovering over the initials
* if at the right of the timeline, it was added by your team. You can also see by whom from the initials
## Promise to pay expiration
Promises to pay expire at the selected date's end of the day, about 23:59:59 (based on your organization timezone). This means if a promise to pay is set for Friday May 1st, 2026, it will be considered expired starting at 23:59:59 that same day. You might however receive the expiration notification in the following hour.\\
## Cancel a promise to pay
### Promise created by your team
If your team added a promise to pay on an invoice (manually or via our AI suggestion - [learn more](#)), only your team can cancel them before the selected date.
Access the invoice's page, click the ongoing promise to pay:
Then click Delete - or update it if needed.\\
### Promise created by the customer
If you wish to cancel/delete a promise to pay created by your customer from their portal, you can proceed as above.
Customers can also delete it from their Upflow portal.\\
## Notifications
#### Promise created by a customer
When your customer sets the promise to pay, their owners and all finance users will receive a [notification](/en-us/upflow-configuration/your-user-profile/customize-my-profile-notifications) about it. You can then decide to pause or continue the collection for that customer.\\
#### Expired promises
When a promise to pay expires, the related customer's owners + all finance users are notified to take further action.\\
#### Canceled promises
If your team cancels a promise to pay, no notification is triggered.
If the customer deletes the promise they created, you'll receive a notification "*Customer name* removed a promise to pay". While if you delete the promise they created yourself, they won't receive one.
If the invoice is fully paid before the selected promise to pay date, then you'll receive a notification mentioning the invoice is paid.\\
## Useful to know
* Promises to pay at a later date do not postpone the [Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay) payment collection schedule.
Any additional questions? Submit a Support request at the top of this article!
# How to update an invoice PDF via API
Source: https://docs.upflow.io/en-us/core-entities/invoices/update-invoice-pdf-via-api
Upload or replace an invoice PDF on an existing Upflow invoice through the API so customers always receive the latest billing document on their portal.
Our [API](https://developer.upflow.io/) allows you to programmatically perform functions and operations outside of the Upflow UI, such as creating or updating a new customer, invoice, customer contact, etc.
In this case, you can use our [Upload Invoice PDF endpoint](https://developer.upflow.io/#tag/invoices/POST/invoices/%7BinvoiceId%7D/pdf) if you have an invoice PDF already generated by your integration but which needs updating or if you have an invoice but no downloadable PDF available to your customer. (We recommend there always be an up-to-date invoice PDF per invoice.)
There are two ways to upload or update the PDF of an existing invoice via the API:
* send the PDF in a multipart/form-data request (i.e. a regular "file upload" in HTML)
* send a JSON request with the file encoded in base64
Both of these alternatives require the following endpoint:
**POST** `https://api.upflow.io/v1/invoices/{invoiceId}/pdf`
**Note: If you're referring to the invoice's external id, 'invoiceid' in the Call URL above would be replaced by 'external:XXXXX' \[**[**https://api.upflow.io/v1/invoices/external:XXXXX/pdf**](https://upflow.docs.apiary.io/#reference/0/invoices/upload-invoice-pdf)**]**
***HEADERS***
**X-API-KEY:** YOUR\_API\_KEY
**X-API-SECRET:** YOUR\_API\_SECRET
**CONTENT-TYPE:** MULTIPART/FORM-DATA *OR* APPLICATION/JSON
**ATTRIBUTES**
data : *string*
base64 string for PDF file, mandatory when using the application/json content-type
'JVBERi0xLjYNJeLjz9MNCjE5IDAgb2JqDTw8L0Zp...DSUlRU9GDQ==...'
file : *string*
The file must be provided as the value of a form field named "file", with any filename, when using the multipart/form-data content-type.
**1.** If you're updating the invoice PDF via a **form-data request** , follow the format shown below where you select the PDF file as the value of the key named 'file':
**2.** If you're updating the invoice PDF via a **JSON request** with the file encoded in base64, follow the format below where the body of the request contains a single key: "data" followed by the string of the encoded file:
3. The response will yield a 204 Status indicating the server successfully processed the request, although no content will be returned.
You can verify the PDF was successfully updated by visiting the invoice page on the Upflow UI and clicking on the Download button:
**FAQ:**
* What happens to the PDFs extracted through our native integration once the invoice PDF is updated through the API?
The PDF extracted from the integration is bypassed.
# Import and create custom fields into Upflow
Source: https://docs.upflow.io/en-us/core-entities/others/import-and-create-custom-fields-into-upflow
Add custom fields to customers, invoices, payments and credit notes in Upflow to filter, segment and report on data not synced from your source system.
Filter your data, break down your widgets or segment, and intervene on your objects based on information our integrations do not natively pull from your source solutions: custom fields. Import them into your organization and tag your customers, payments, invoices, and credit notes for an improved experience!
# Availability and management
❗Only customer custom fields can be imported from your source system and your CRM. Only NetSuite, QuickBooks, and Stripe Billing allow a sync at the invoice level. An API connection also allows you to update your invoices.
| Source | Clients | Invoices | Credit notes & payments |
| - | - | - | - |
| In-app | ✅ | ✅ | ✅ |
| API | ✅ | ✅ | ❌ |
| Chargebee | ✅ | ❌ | ❌ |
| NetSuite | ✅ | ✅ | ✅ (**custom** fields only) |
| Pennylane | ❌ (**Native** fields only) | ❌ | ❌ |
| Sage Intacct | ✅ | ✅ | ✅ |
| Stripe billing | ✅ | ✅ (**custom** fields only, **Metadata**) | ✅ (**paymentcustom** fields only, **Metadata**) ❌ Credit notes not supported |
| Salesforce | ✅ | ❌ | ❌ |
| Sellsy | ✅ | ❌ | ❌ |
| QuickBooks | ❌ (**Native** fields only) | ✅ **Custom** fields only | ❌ |
| Xero | ✅ | ❌ | ❌ |
| Zuora | ✅ | ✅ | ❌ |
In the **Customer fields** tab of your **Settings**, click on **Add field** and search for an existing custom field.
## Create a custom field in Upflow
If you need a field that isn't available or supported in your source of truth, you can create it manually in Upflow.
From the same section, scroll down to the end of the available list, and click *Add custom field*:
Name it, and select the type you wish to use:
Don't forget to click Save at the bottom of the page!
From the same section, you can:
* Remove your custom fields (click on the cross next to their name)
* Edit those created on Upflow (rename and update their values)
Don’t forget to save!
❗ You cannot push custom fields from Upflow to your source solution. Confirm they exist there before searching!
❗️You can update the values of customer custom fields created in Upflow via CSV import. See [Import and update your customers via CSV](/en-us/core-entities/customers/import-and-update-your-customers-via-csv#custom-fields) for the required columns and value formats. Values of other custom fields can only be updated manually or via [API](https://developer.upflow.io/#tag/custom-fields).
## Special use cases
If your field is not available in the dropdown list as shown above, you may have the following option for certain integrations, such as Chargebee or Stripe Billing:
* Click "Add field" at the customer level (or invoice level for Stripe);
* Scroll down if needed, and click "Add custom field";
* Click the option "Yes, in Chargebee" or "Yes, in Stripe Billing":
* Then add the API or Metadata name displayed in Chargebee or Stripe:
* For example:
* if your Stripe metadata key is billing\_method, enter exactly **billing\_method**
* in Chargebee, the API name will start with cf\_ which you will need to include in Upflow
* Click "Add", and don't forget to save at the bottom of the page.
Give it a few minutes to a few hours for the data to sync into Upflow, based on the data volume.
## Edit custom field values
If your custom field is synced from your billing system or Salesforce, they must be edited there directly and won't be editable in Upflow.
If your custom field was created in the Upflow UI, you can edit it at the item level (customer, invoice, credit note, etc.) or in bulk from the list view.
❗ You can only update the values of those created in-app, the others being pulled from your source system.
You can update values of custom fields created in Upflow:
* Manually, at the item level or in bulk from the list view
* Via [API](https://developer.upflow.io/#tag/custom-fields)
* Via CSV import, for customer custom fields only. See [Import and update your customers via CSV](/en-us/core-entities/customers/import-and-update-your-customers-via-csv#custom-fields).
## Usage
Your custom fields are now available. Review them in the dedicated sections of your:
* Customers details
* Invoices details
* Credit notes details
* Payments details
You can additionally make them filterable columns of their respective lists and use them to filter or break down your Analytics dashboards and widgets.
If a custom field holds an email address, you can also use it as the recipient of your emails — see [Send emails to a custom field address](/en-us/core-entities/contacts/custom-field-email-recipients).
# SOC2 reports
Source: https://docs.upflow.io/en-us/legal-and-security/contractual-documents/soc2-reports
Download Upflow's SOC reports and access security documentation through the security trust portal, or submit a request for additional information.
To download SOC reports, and access any security information, please head to [https://security.upflow.io/.](https://security.upflow.io/)
If you have any questions or need additional information, please [submit a support request](https://support.upflow.io/hc/en-us/requests/new).
# Upflow - Data Protection Addendum (DPA)
Source: https://docs.upflow.io/en-us/legal-and-security/contractual-documents/upflow-data-protection-addendum-dpa
Download the latest version of Upflow's Data Protection Addendum, the contractual document governing how Upflow processes customer personal data under GDPR.
The latest version of Upflow's DPA is available for download here: [Download the Upflow DPA.](https://drive.google.com/file/d/1oJp_0QN_SWPNHg-mAJ0PIQhCOt2XqMbi/view)
# Upflow - Master Service Agreement
Source: https://docs.upflow.io/en-us/legal-and-security/contractual-documents/upflow-master-service-agreement
Download Upflow's standard Master Service Agreement and the EU Data Act Addendum, the contractual terms your company must accept before creating an Upflow account.
Upflow provides a standard MSA that your company must accept before creating an account with us.
The latest version of Upflow's MSA is available and downloadable [here](https://drive.google.com/file/d/1Ehk2ld4M7b_iJbypqLOctNYWmdaEqZWt/view?usp=drive_link).
If your company is subject to EU Data Act, then the terms of the EU Data Act Addendum available [here](https://drive.google.com/file/d/18Qdwh3Q7gtS3V4_Gv_AvDE3WnEq0pPZJ/view?usp=drive_link) shall also apply.
*Updated on June, 3rd, 2026.*
# Upflow Privacy Policy
Source: https://docs.upflow.io/en-us/legal-and-security/contractual-documents/upflow-privacy-policy
Read Upflow's Privacy Policy describing what personal information is collected from business users, how it is used, and how it is shared and protected.
**Last Updated: 25 October 2024**
Upflow, Inc. (“**Upflow** ”) has developed and makes available a SaaS-based product that uses analytics and process automation to manage trade invoices (collectively with this website and any other products and services that link to this Privacy Policy, our “**Services** ”). This Privacy Policy describes our privacy practices with respect to the personal information of individuals who represent businesses to which we may market and provide our Services, including the information we collect on this website and from individuals who are our customers’ authorized users, and from other sources.
# Applicability of this Privacy Policy
Our Services are designed for businesses and are not intended for personal, family, or household use. Accordingly, we treat all personal information covered by this Privacy Policy, including information about any visitors to our website, as pertaining to individuals acting as business representatives, rather than in their personal capacity.
## Personal information we collect
### Information you provide to us
* **Contact details,** such as your first and last name, email address, state, and phone number.
* **Communications** that we exchange with you, including when you contact us with questions, feedback, or otherwise.
* **Marketing data** , such as your preferences for receiving our marketing communications, and details about your engagement with them.
* **Other data** not specifically listed here, which we will use as described in this Privacy Policy or as otherwise disclosed at the time of collection.
### Third-party sources
We may combine personal information we receive from you with personal information we obtain from other sources, such as:
* **Third parties** , such as data providers, event co-sponsors, and others.
* **Public sources** , such as social media platforms.
### Automatic data collection
We and our service providers may automatically log information about you, your computer or mobile device, and your interaction over time with our Services, our communications and other online services, such as:
* **Device data** , such as your computer’s or mobile device’s operating system type and version, manufacturer and model, browser type, screen resolution, RAM and disk size, CPU usage, device type (e.g., phone, tablet), IP address, unique identifiers (including identifiers used for advertising purposes), language settings, mobile device carrier, radio/network information (e.g., WiFi, LTE, 4G), and general location information such as city, state or geographic area.
* **Online activity data** , such as pages or screens you viewed, how long you spent on a page or screen, browsing history, navigation paths between pages or screens, information about your activity on a page or screen, access times, and duration of access, and whether you have opened our marketing emails or clicked links within them. We may use third party tools to assist with capturing online activity data.
* **Email Open/Click Information**. We may use pixels in our email campaigns that allow us to collect your email and IP address as well as the date and time you open an email or click on any links in the email that we may send to you.
#### We may use the following tools for automatic data collection:
* Cookies, which are text files that websites store on a visitor’s device to uniquely identify the visitor’s browser or to store information or settings in the browser for the purpose of helping you navigate between pages efficiently, remembering your preferences, enabling functionality, helping us understand user activity and patterns, and facilitating online advertising.
* Local storage technologies, like HTML5, that provide cookie-equivalent functionality but can store larger amounts of data, including on your device outside of your browser in connection with specific applications.
* Web beacons, also known as pixel tags or clear GIFs, which are used to demonstrate that a webpage or email was accessed or opened, or that certain content was viewed or clicked.
For additional details, please see our Cookie Policy below.
### Public sources
We may combine personal information we receive from you with personal information we obtain from public sources, such as social media platforms.
## How we use your personal information
We use your personal information for the following purposes or as otherwise described at the time of collection:
### Service delivery
We use your personal information to:
* Provide, operate and improve the Services and our business;
* Communicate with you about the Services, including by sending announcements, updates, security alerts, and support and administrative messages; and
* Provide support for the Services, and respond to your requests, questions and feedback.
### Research and development
As part of these activities, we may create aggregated, de-identified or other anonymous data from personal information we collect. We may use this anonymous data and share it with third parties for our lawful business purposes, including to analyze and improve the Services, and promote our business.
### Marketing and advertising
We may collect and use your personal information for marketing and advertising purposes, including:
* **Direct marketing**. We may send you direct marketing communications as permitted by law, including by email. You may opt-out of our marketing communications as described in the “Opt-out of marketing communications” section below.
* **Interest-based advertising**. We engage our advertising partners, including third-party advertising companies and social media companies, to advertise our and our customers’ and partners’ Services. We and our advertising partners may use cookies and similar technologies to collect information about your interaction (including the data described in the “Automatic data collection” section above) over time across the web, our communications and other online services, and use that information to serve online ads. You can learn more about your choices for limiting interest-based advertising in the “Online tracking opt out” section below.
### Compliance and protection
We may use your personal information to:
* Comply with applicable laws, lawful requests, and legal process, such as to respond to subpoenas or requests from government authorities;
* Protect our, your or others’ rights, privacy, safety or property (including by making and defending legal claims);
* Audit our internal processes for compliance with legal and contractual requirements and internal policies;
* Enforce the terms and conditions that govern our website and Services; and
* Prevent, identify, investigate and deter fraudulent, harmful, unauthorized, unethical or illegal activity, including cyberattacks and identity theft.
## Legal bases for processing (for United Kingdom and EEA individuals)
If you are an individual in the United Kingdom or European Economic Area (EEA), we collect and process information about you only where we have legal bases for doing so under applicable United Kingdom and/or EU laws. The legal bases depend on the Services you use and how you use them. This means we collect and use your information only where:
* We need it to provide you the Services, including to operate the Services, provide customer support and personalized features and to protect the safety and security of the Services;
* It satisfies a legitimate interest (which is not overridden by your data protection interests), such as for research and development, to market and promote the Services and to protect our legal rights and interests;
* You give us consent to do so for a specific purpose; or
* We need to process your data to comply with a legal obligation.
If you have consented to our use of information about you for a specific purpose, you have the right to change your mind at any time, but this will not affect any processing that has already taken place. Where we are using your information because we or a third party (e.g. your employer) have a legitimate interest to do so, you have the right to object to that use though, in some cases, this may mean no longer using the Services.
## How we share your personal information
We may share your personal information with:
* **Affiliates**. Our corporate parent, subsidiaries, and affiliates, for purposes consistent with this Privacy Policy.
* **Service providers**. Companies and individuals that provide services on our behalf or help us operate our Services or our business (such as hosting, information technology, customer support, email delivery, and website analytics services).
* **Advertising partners**. Third party advertising companies, including for the interest-based advertising purposes described above, that may collect information on our website through cookies and other automated technologies.
* **Professional advisors**. Professional advisors, such as lawyers, auditors, bankers and insurers, where necessary in the course of the professional services that they render to us.
* **Authorities and others**. Law enforcement, government authorities, and private parties, as we believe in good faith to be necessary or appropriate for the compliance and protection purposes described above.
* **Business transferees**. Acquirers and other relevant participants in business transactions (or negotiations for such transactions) involving a corporate divestiture, merger, consolidation, acquisition, reorganization, sale or other disposition of all or any portion of the business or assets of, or equity interests in, Upflow or our affiliates (including, in connection with a bankruptcy or similar proceedings).
## Cross-border processing of your personal information
To provide and operate our Services, it is necessary for us to process your personal information in the United States and France. If we transfer personal information across borders such that we are required to apply appropriate safeguards to personal information under applicable data protection laws, we will do so. Please contact us for further information about any such transfers or the specific safeguards applied.
## Your Choices
**Personal information requests:** In certain circumstances (including based on where you are located), you may have the following rights in relation to your personal information:
* the right to learn more about what personal information of yours is being processed, how and why such information is processed and the third parties who have access to such personal information. We have made this information available to you without having to request it by including it in this Privacy Policy;
* the right to access your personal information;
* the right to rectify/correct your personal information;
* the right to restrict the use of your personal information, where permitted under applicable law;
* the right to request that your personal information is erased/deleted, where permitted under applicable law;
* the right to data portability (i.e. receive your personal information or have it transferred to another controller in a structured, commonly used, machine readable format), where permitted under applicable law; and
* the right to object to the processing of your personal information or to direct us not to share your personal information with a non-affiliated third party, where permitted under applicable law.
To make a request, please contact us as provided in the “How to Contact Us” section below. We may ask for specific information from you to help us confirm your identity. We will require authorized agents to confirm their identity and authority, in accordance with applicable laws. You are entitled to exercise the rights described above free from discrimination.
In addition, where you have provided your consent to processing for the purposes indicated above, you may withdraw your consent at any time (or otherwise exercise your aforementioned rights in relation to your personal information) by contacting us below (see “How to Contact Us” section below).
Please note that in some circumstances, we may not be able to fully comply with your request, for example if we are required to retain certain information about you to comply with applicable laws and regulations or if the information is necessary in order for us to provide the services you requested. In particular, we, and our collection and processing of your personal information, may be governed by laws and regulations on anti-money laundering, fraud prevention, taxation and financial services. We will not discriminate against you for exercising your rights. We will not deny you access to our Services, or provide you a lower quality of Services if you exercise your rights.
You also have the right to lodge a complaint with the relevant authority (as applicable) or a supervisory authority in the UK or EU member state of your usual residence or place of work or of the place of the alleged breach, if you consider that the processing of your personal information carried out by Upflow or any of our affiliates or third-party service providers, has breached data protection laws.
You may also appeal to certain courts against (A) any failure of the relevant authority to give written notice of whether the complaint is either being investigated or not being investigated and, where applicable, the progress and the outcome of the investigation or (B) a determination of the relevant authority not to investigate the complaint or a determination that a controller or processor has not breached or is not likely to breach an operative provision in connection with the complaint.
**Opt-out of marketing communications**. You may opt out of marketing-related communications by following the opt out or unsubscribe instructions contained in the marketing communications we send you.
**Online tracking opt-out**. There are a number of ways to opt out of having your online activity and device data collected through our Services, for additional details please see our Cookie Policy below.
### Other sites and services
Our Services may contain links to websites and other online services operated by third parties. In addition, our content may be integrated into web pages or other online services that are not associated with us. These links and integrations are not an endorsement of, or representation that we are affiliated with, any third party. We do not control websites or online services operated by third parties, and we are not responsible for their actions.
### Data Retention
We may retain your personal information for as long as it is reasonably needed in order to maintain and expand our relationship and provide you with our services; in order to comply with our legal and contractual obligations; or to protect ourselves from any potential disputes. To determine the appropriate retention period for personal information, we consider the amount, nature, and sensitivity of such information, the potential risk of harm from unauthorized use or disclosure of such information, the purposes for which we process it, and the applicable legal requirements.
### Security
We employ a number of technical, organizational and physical safeguards designed to protect the personal information we collect. However, no security measures are failsafe and we cannot guarantee the security of your personal information.
### Children
The Services are not intended for use by children under 18 years of age. If we learn that we have collected personal information through our Services from a child under 18 without the consent of the child’s parent or guardian as required by law, we will delete it.
## Changes to this privacy policy
We reserve the right to modify this Privacy Policy at any time. If we make material changes to this Privacy Policy, we will notify you by updating the date of this Privacy Policy and posting it on the website.
### How to contact us
You can reach us by email at: [legal@upflow.io](mailto:legal@upflow.io) or at the following mailing address:
* Upflow, Inc. 440 N Barranca Ave #7517, Covina, CA 91723-1722, USA
* For UK and EU Residents, please contact us at Upflow, SAS, Attn Legal team, 5 Avenue du Général de Gaulle, 94160 Saint-Mandé, FR
### Notice to UK and EU residents
If you would like to submit a complaint about our use of your personal information or our response to your requests regarding your personal information, you can contact us or submit a complaint to the data protection regulator in your jurisdiction. You can find your data protection regulator [here](https://www.edpb.europa.eu/about-edpb/about-edpb/members_en).
## Cookie Policy
This Cookie Policy explains how Upflow uses cookies and similar technologies in connection with our Services. This Cookie Policy should be read in conjunction with our Privacy Policy.
If you have any questions or concerns about the Cookie Policy, please contact us at [legal@upflow.io](mailto:legal@upflow.io) or as otherwise described in our Privacy Policy.
### What are cookies and similar technologies?
* **Cookies** are text files that websites store and access on a visitor’s device to uniquely identify the visitor’s browser or to store information or settings in the browser to allow us to distinguish you from other users of our Services for the purpose of helping you navigate between pages efficiently, remembering your preferences, enabling functionality, helping us understand activity and patterns, and facilitating online advertising.
* **Local storage technologies** , like HTML5, provide cookie-equivalent functionality but can store larger amounts of data, including on your device outside of your browser in connection with specific applications.
* **Web beacons,** also known as pixel tags or clear GIFs, are used to demonstrate that a webpage or email was accessed or opened, or that certain content was viewed or clicked.
This Cookie Policy refers to all these technologies, and other types of tracking technologies used through our Services, collectively as “cookies.”
### How do we use cookies and other similar technologies?
We may use both persistent cookies and session cookies. Persistent cookies stay on your device for a set period of time or until you delete them, while session cookies are deleted once you close your web browser. The cookies placed through your use of our website are either set by us (first party cookies) or by a third party at our request (third-party cookies).
We may also allow our advertising partners to collect this information through our website.
### What types of cookies and similar technologies do we use?
We may use the following categories of cookies:
**Strictly Necessary Cookies:** These cookies are necessary for the Services to function and cannot be switched off in our systems. They allow us to enable security, prevent fraud and debug the Services and are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but then some parts of the Services will not work.
**Functional Cookies.** These cookies are used to recognize you when you return to our Services or to enable the Services to provide enhanced functionality and personalization. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of the Services may not function properly.
**Analytics Cookies.** These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our Services. They help us to know which pages are the most and least popular and see how visitors move around the Services. All information these cookies collect is aggregated. If you do not allow these cookies we will not know when you have visited our Services and will not be able to monitor its performance.
### How can you control the use of cookies?
Depending on where you access the Services from, you may be presented with a cookie banner or other tool to provide permissions prior to non-Strictly Necessary cookies being set. In this case, we only set these non-Strictly Necessary cookies with your consent.
You can also limit online tracking by:
* **Blocking cookies in your browser.** Most browsers let you remove or reject cookies, including cookies used for interest-based advertising. To do this, follow the instructions in your browser settings. Many browsers accept cookies by default until you change your settings. For more information about cookies, including how to see what cookies have been set on your device and how to manage and delete them, visit [www.allaboutcookies.org](http://www.allaboutcookies.org).
Use the following links to learn more about how to control cookies and online tracking through your browser:[](https://support.mozilla.org/en-US/kb/cookies-information-websites-store-on-your-computer)
\* [Firefox](https://support.mozilla.org/en-US/kb/cookies-information-websites-store-on-your-computer); [Chrome](https://support.google.com/chrome/answer/95647?co=GENIE.Platform=Desktop\&hl=en); [Microsoft Edge](https://support.microsoft.com/en-gb/microsoft-edge/delete-cookies-in-microsoft-edge-63947406-40ac-c3b8-57b9-2a946a29ae09); [Safari (Mac)](https://support.apple.com/en-gb/guide/safari/sfri11471/mac); [Safari (Mobile/iOS)](https://support.apple.com/en-gb/105082)
* **Blocking advertising ID use in your mobile settings.** Your mobile device settings can provide functionality to limit use of the advertising ID associated with your mobile device for interest-based advertising purposes.
* **Using privacy plug-ins or browsers**. You can block our websites from setting cookies used for interest-based ads by using a browser with privacy features, like [Brave](https://brave.com/), or installing browser plugins like [Privacy Badger](https://privacybadger.org/), [Ghostery](https://www.ghostery.com/), or [uBlock Origin](https://ublock.org/en), and configuring them to block third party cookies/trackers.
* **Advertising industry opt out tools**. You can also use these opt out options to limit use of your information for interest-based advertising by participating companies:
* Digital Advertising Alliance for Websites: [optout.aboutads.info](https://optout.aboutads.info/)
* Digital Advertising Alliance for Mobile Apps: [youradchoices.com/appchoices](https://youradchoices.com/appchoices)
* Network Advertising Initiative: [optout.networkadvertising.org](https://optout.networkadvertising.org/)
* **Platform opt-outs**. Some advertising companies offer opt-out features that let you opt out of use of your information for interest-based advertising, including:
* Google: [www.adsettings.google.com](https://www.adsettings.google.com)
* Facebook: [www.facebook.com/about/ads](https://www.facebook.com/about/ads)
* Twitter: [www.twitter.com/settings/personalization](https://www.twitter.com/settings/personalization)
Note that because these opt out mechanisms are specific to the device or browser on which they are exercised, you will need to opt out on every browser and device that you use.
**Do Not Track.** Some Internet browsers can be configured to send “Do Not Track” signals to the online services that you visit. We currently do not respond to “Do Not Track” or similar signals. To find out more about “Do Not Track,” please visit [http://www.allaboutdnt.com](http://www.allaboutdnt.com).
#### Upflow privacy policy - last updated October 2024
# Tracking pixel in reminder emails
Source: https://docs.upflow.io/en-us/legal-and-security/data-protection/tracking-pixel-in-reminder-emails
Learn what the tracking pixel in Upflow's overdue invoice reminder emails does, and why the CNIL's 2026 recommendation means it does not require the recipient's prior consent.
Upflow's overdue invoice reminder emails include a tracking pixel. This article explains what the pixel does, and why its use does not require the recipient's prior consent, in line with the recent position of the French data protection authority (CNIL).
## What does this pixel do?
The pixel used in our emails serves a single purpose: detecting whether a reminder email was sent to a non-existent address or a deactivated account, so that Merchants can correct their contact details and reach the right recipient.
It is **not** used to measure engagement, optimize campaigns, or profile recipients.
## The legal framework
On March 12, 2026, the CNIL adopted a recommendation (Deliberation No. 2026-042, published on April 14, 2026) classifying email tracking pixels as "trackers" under Article 82 of the French Data Protection Act (*loi Informatique et Libertés*).
As a general rule, this requires the recipient's prior consent, unless the use falls within one of the exemptions set out in Section 3.2 of the recommendation.
## Our use of the pixel falls within this exemption
The recommendation exempts individual deliverability measurement from the consent requirement, provided three cumulative conditions are met:
1. **Exclusive deliverability purpose** — which is our case: the pixel only identifies delivery failures (bounces) and deactivated accounts.
2. **Strict data minimization** — we only collect the opening date and/or bounce status, never the time of opening or the IP address.
3. **A connection to a service requested by the recipient** — the CNIL explicitly lists invoices and reminders among the transactional emails covered by this exemption, provided they are part of an existing business relationship between the Merchant and its customer.
Our setup meets all three conditions. The recipient's prior consent is therefore not required for this pixel.
## What this means for Merchants using Upflow
The consent exemption does not remove the general transparency obligation. As the data controller for this processing, you remain responsible for ensuring your recipients can know, through your privacy policy, that this type of technical tracker is used.
We recommend including a statement to that effect in your privacy policy.
## Can I disable the tracking pixel?
Yes. Admins can turn off **Track email opens** in the **Email tracking** section of the Deliverability settings. Upflow then stops adding the tracking pixel to the emails it sends. Opens are no longer shown in the customer timeline, and email open rates are no longer measured. See [Email tracking settings](/en-us/collection-and-collaboration/emails/sending-emails#email-tracking-settings).
## Does this apply if my company is established outside France?
Yes, provided you process the personal data of individuals located in France.
# Capture a payment method early in the sales cycle
Source: https://docs.upflow.io/en-us/technical-documentation/api/capture-a-payment-method-early-in-the-sales-cycle
Secure a card or direct debit before the first invoice — create the customer through the Upflow API on your Sage Intacct or NetSuite integration, then send them a portal link to save a payment method during your sales or onboarding motion.
If you run a native accounting integration ([Sage Intacct](/en-us/integrations/sage-intacct/overview) or [NetSuite](/en-us/integrations/netsuite/connect)), you can create brand-new customers through the Upflow API. Upflow writes the customer back into your accounting system for you and returns its ID, so you can then send them a portal link and **capture a payment method before their first invoice is ever raised**.
This is designed for self-serve and sales-led motions, where you want a card or direct debit mandate on file up front. For example, to secure a payment method as part of closing a smaller account.
This flow is API-driven. It's typically triggered from your CRM (for example Salesforce) or your own application. For a general overview of the API, see [Integrating with the Upflow API](/en-us/technical-documentation/api/integrating-with-the-upflow-api).
## How it works
1. Your CRM or application creates a customer through the Upflow API.
2. Upflow synchronously creates that customer in your accounting system (Sage Intacct or NetSuite) and returns its ID (`externalId`) in the API response.
3. You generate a customer portal link for that customer through the API and send it to them.
4. Your customer saves a payment method on their portal, which Upflow verifies with Stripe.
5. You poll the customer through the API to check whether a payment method has been saved. Once it has, any invoice your accounting system later raises for that customer can be collected — manually or with [Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay).
## Prerequisites
* A **native accounting integration**: Sage Intacct or NetSuite. This flow is only available on native integrations, because Upflow creates the customer directly in your accounting system.
* **Online payment methods enabled**, so your customers can save a card or direct debit — see [Managing online payment methods](/en-us/payments/accept-online-payments/managing-online-payment-methods).
* Your **API key and secret**, available under **Settings → API** (see [Integrating with the Upflow API](/en-us/technical-documentation/api/integrating-with-the-upflow-api#authentication)).
## Creating the customer
Create the customer with the [Import Customer endpoint](https://developer.upflow.io/#tag/customers/post/customers), the same endpoint used elsewhere in the API.
```json theme={null}
POST https://api.upflow.io/v1/customers
{
"name": "Acme Corp",
"primaryEmail": "billing@acme.com",
"address": {
"address": "25 Passage Dubail",
"zipcode": "75010",
"city": "Paris",
"country": "France"
},
"vatNumber": "FR12345678901"
}
```
Do **not** pass an `externalId` when creating a customer on a native integration. The ID is owned by your accounting system, so Upflow generates it and returns it to you. Sending your own `externalId` will return an error.
A few things to keep in mind:
* **A name and an email are required.** Both Sage Intacct and NetSuite need contact information to create a customer, so provide at least the customer's name and email, plus any other fields your accounting system requires.
* **New customers are created with a *customer* status** (not prospect).
* **Subsidiary:** the customer is created in the subsidiary that corresponds to the organization you call the API on.
## Capturing the payment method
Once the customer exists, generate a portal link for them with the [Create customer portal endpoint](https://developer.upflow.io/#tag/customers/post/customers/%7BcustomerId%7D/portal), then send it to your customer. See [Generate a portal URL via the API](/en-us/customer-portal/branded-portal/generate-portal-url-via-api) for the full details.
Your customer opens the portal and saves a card or direct debit, exactly as described in [Capturing payment methods without outstanding invoices](/en-us/payments/collect-online-payments/capturing-payment-methods-without-outstanding-invoices). Upflow verifies the method with Stripe, and the customer sees a confirmation screen once it's saved.
### Checking whether a payment method was saved
Poll the customer through the [Get Customer endpoint](https://developer.upflow.io/#tag/customers) to see whether a payment method has been saved. The customer carries the **saved payment method status** and **type**, so you can detect when the method is on file and ready to use.
Once a payment method is saved and verified, any invoice your accounting system later raises for that customer can be paid — manually from the portal, or automatically with [Autopay](/en-us/payments/collect-online-payments/collecting-automatically-with-autopay).
# How to delete a payment imported via the UI or API
Source: https://docs.upflow.io/en-us/technical-documentation/api/delete-imported-payment
Remove payments imported manually or via the Upflow API by using the Delete Payment endpoint or by deleting them directly from the Upflow interface.
If you manually register / import payments [via your Upflow interface](/en-us/integrations/legacy-invoice-pipeline/import-payments-into-upflow), or import them using [the Upflow API](https://upflow.docs.apiary.io/) and you made a mistake -- don't worry; you can delete them. :)
# Deleting payments via the API
The Upflow API has a "[Delete Payment](https://developer.upflow.io/#tag/customers/delete/customers/%7BcustomerId%7D)" endpoint, through which you can remove any payment you have previously imported. As always, you can reference this payment by its Upflow ID or your own External ID (if initially imported).
# Deleting payments via the UI
Provided you have the necessary permissions\*, you can delete payments directly from the UI.
From the Payments list view:
From the Payment's detail page:
From the linked invoice's page:
### Who can delete payments?
All Admin users, regardless of their position can delete payments from the UI.
However, for Member users:
* Finance user = can delete payments
* Accountant = can't delete payments
* Account manager = can't delete payments
Learn more about [Roles & Positions](/en-us/upflow-configuration/your-teams-access/invite-and-manage-your-organizations-users).
# Integrating with the Upflow API
Source: https://docs.upflow.io/en-us/technical-documentation/api/integrating-with-the-upflow-api
Build a data pipeline from any billing or accounting source into Upflow using the public API, with guidance on initial historical import and live sync.
## Overview
Upflow offers a robust [public API](https://developer.upflow.io/) that allows you to set up a data pipeline from an accounting source outside of our natively supported integrations.
The following guide will help ensure an optimal initial import of historical data into Upflow and subsequent live synchronization of up to date data.
***
## Data model mapping
The Upflow data model contains the following entities:
* Customer
* Contact
* Invoice
* Credit Note
* Payment
* Refund
If your model contains entities that affect the customer balance but which are not present on this list (e.g. Adjustments, Journal Entries...) the solution is to map them on a payment or a refund.
***
## API Usage
### Sandbox Environment
You can develop and test your integration in our API sandbox: `https://api.sandbox.upflow.io/v1/`
### Authentication
All requests must include the `X-Api-Key` and `X-Api-Secret` authentication headers with each request. These can be obtained by accessing the Settings Menu > API:
### Initial Import
During the initial import, we recommend importing the data sequentially, that is, where you wait for a request to end before making the next one.
* If you want to parallelize the requests to increase the throughput, you should limit the number of concurrent requests to 5.
* Note: API is rate limited to 600 requests per minute and has a concurrency limit of 10.
* For optimal performance, you should avoid importing two entities linked to the same customer at the same time.
### Live synchronization
To implement the live synchronization, you’ll need to detect the changes that are made in the source and apply them in Upflow using the appropriate endpoint.
* Re-importing all the data from the source every day should be avoided as it’s not scalable.
### Reliability recommendation
To ensure consistent reliability in the rare case of the API being down, we recommend to use retry failed request (connection error, 500 or 503) with an exponential backoff (e.g. retry after 1s, 2s, 4s, 8s...).
* You should not retry 40x errors which are not transient, except if you know precisely what you’re doing (e.g. overcome ordering issues).
### Addressing Models using `externalId`
All models contain an `externalId` field which can be used to store your own identifier in Upflow.
* The `externalId` field should always contain the source system entity’s id and it should be unique and immutable.
If you opt for this type of integration, you can prefix ids with `external:` in order to lookup Upflow models using your identifier.
* Examples:
* `GET https://api.upflow.io/v1/customers/12345` returns the customer with `id = 12345`
* `GET https://api.upflow.io/v1/customers/external:12345` returns the customer with `externalId = 12345`
***
## API Functions
### Import
To ease the data import, our API provides a unique endpoint per entity to create or update.
These endpoints will have the following format:
```text theme={null}
POST [https://api.upflow.io/v1/ ](https://api.upflow.io/v1/)
{
"externalId": "...",
...
}
```
The `externalId` field will allow you to detect if the entity has already been imported into Upflow. If so, the entity will be updated; if not, a new entity will be created.
* Please ensure that your external id's are unique identifiers. Otherwise, entities could be removed accidentally.
### Retrieve
Any entity imported in Upflow can be retrieved with its external id using the following type of endpoint:
```text theme={null}
GET https://api.upflow.io/v1//external:
```
### Delete
In the same way you can retrieve an entity from Upflow, you can also delete an imported entity:
```text theme={null}
DELETE https://api.upflow.io/v1//external:
```
***
## API Endpoints
Basic API documentation on all endpoints can be found [here](https://developer.upflow.io/). Supplemental info pertinent to API integrators found below:
## Import Customer
Refer to the Import Customer endpoint [here](https://developer.upflow.io/#tag/customers/post/customers).
Example:
```text theme={null}
POST https://api.upflow.io/v1/customers
{
"externalId": "1a2c3b",
"name": "Upflow SAS",
"address": {
"address": "25 Passage Dubail",
"zipcode": "75010",
"city": "Paris",
"country": "France"
},
"parent": {
"externalId": "1a2c3c"
},
"contacts": [
{
"firstName": "John",
"lastName": "Doe",
"phone": "+33678059778",
"email": "john@example.com",
"position": "ACCOUNTING",
"externalId": "1a2c3d",
"isMain": true
}
]
}
```
* \*\*Parent-child relation
\*\* \* Upflow supports single level parent-child relationships (a parent customer cannot have a parent). If you have multiple levels of hierarchy, you should link all the child customers to their root ancestor when importing them in Upflow.
```text theme={null}
* A parent-child relationship between two customers should be imported by referencing the parent customer from the child customer. Therefore, the parent customer should be imported before the child customers. Otherwise, a 400 error saying the parent customer does not exist will be returned.
```
* \*\*Contact List
\*\* \* A list of contacts can be provided along with the customer details. \* If the `contacts` field is set, it should always contain the full list of contacts. Otherwise, the previously imported contacts which are not in the list anymore will be removed from Upflow.
```text theme={null}
* If the `contacts` field is not present in the body, the list of contacts will left as it is.
* Note: The contact email is mandatory and must be unique.
```
* \*\*Customer Contact relation
\*\* \* The customer contact relation is a one-to-one relation. This means that a contact cannot be linked to multiple customers at the same time.
```text theme={null}
* However, if you have to assign the same contact to multiple customers, you can do so by providing the same `externalId` for the contact. Upflow will assign each customer’s contact a unique id to maintain unicity.
```
**Notes:**
* You can create customer contacts through this endpoint but the Contact Position (e.g. ACCOUNTING, PAYER, etc) must exist already in your organization.
* To create a new Contact Position, you can do so by accessing your Settings > Contact Management > under Positions > Add.
* For example, if your sandbox's language is English but your production organization's language is French then the same request that succeeds in the sandbox will fail in production since the positions have effectively different names.
* Dunning plans (workflows) cannot be imported OR created via the API. Only existing dunning plans can be linked to customers via API.
* You will **not** be able to create a custom field via the Import Customer endpoint.
## List Customers
Refer to the List Customers endpoint [here](https://developer.upflow.io/#tag/customers/get/customers).
* **Note:** You can filter by custom field values through this endpoint through the following request structure:
/v1/customers?customFieldData\_.eq=
* You can fetch the custom field id through the [List Custom Fields endpoint](https://developer.upflow.io/#tag/custom-fields).
**Pagination:**
* There is a 1000 record per page limit on this endpoint.
# \*\*\*\*
## Delete Customer
Refer to the Delete Customer endpoint [here](https://developer.upflow.io/#tag/customers/delete/customers/%7BcustomerId%7D).
* Only empty customers (no invoice, no payment etc.) should be deleted.
## Import Contacts
There are two ways to import contacts:
1. Import them along with the customer (`customer.contacts` field).
* See Import Customer Section above.
2. Import them separately with the dedicated endpoints.
* Refer to the Create Customer Contacts endpoint [here](https://upflow.docs.apiary.io/reference/0/contacts/create-customer-contact).
* Example:
```text theme={null}
POST https://api.upflow.io/v1/customers/external:123456/contacts
{
"firstName": "John",
"lastName": "Doe",
"phone": "+33678059778",
"email": "john@example.com",
"position": "ACCOUNTING",
"externalId": "1a2b3c",
"isMain": true
}
```
Choose the solution which best fits your needs.
## Import Invoice
Refer to the Import Invoice endpoint [here](https://developer.upflow.io/#tag/invoices/post/invoices).
Example:
```text theme={null}
POST [https://api.upflow.io/v1/invoices ](https://api.upflow.io/v1/invoices)
{
"customId": "INV123456",
"externalId": "54a65b4c32",
"issuedAt": "2015-05-05T12:30:00Z",
"dueDate": "2015-06-05T12:30:00Z",
"currency": "EUR",
"grossAmount": 1700,
"netAmount": 1500,
"customer":
{
"externalId": "1a2c3b"
}
}
```
**Basic operations to** ***Import*** **data from your system ⇒ Upflow :**
* **New invoice** **⇒** [Create / Import Invoice](https://developer.upflow.io/#tag/invoices/post/invoices)
* **Upload the invoice PDF ⇒** [Upload Invoice PDF](https://developer.upflow.io/#tag/invoices/post/invoices/%7BinvoiceId%7D/pdf)
* With multipart/form-data:
To upload invoice PDFs, the recommended solution is to use the multipart/form-data format with the file field containing the file content.
```text theme={null}
* With JSON body:
```
If for some reason, you’re not able to provide the file with the multipart/form-data format, you can also encode the file content in base64 and send it via a JSON field.
```text theme={null}
* See also [How to update an invoice PDF via API](https://support.upflow.io/hc/en-us/articles/25049580498449-How-to-update-an-invoice-PDF-via-API)
```
* **Deletion of an invoice ⇒** [Delete Invoice](https://developer.upflow.io/#tag/invoices/delete/invoices/%7BinvoiceId%7D)
**Basic operations to** ***Retrieve*** **data from Upflow :**
* **Single invoice ⇒** [Get Invoice](https://developer.upflow.io/#tag/invoices/get/invoices/%7BinvoiceId%7D)
* **Multiple invoices ⇒** [List Invoices](https://developer.upflow.io/#tag/invoices/get/invoices)
* **Pagination:** There is a 500 record per page limit on this endpoint.
## Import Payment
Refer to the Import Payment endpoint [here](https://developer.upflow.io/#tag/payments/post/payments).
* The payment must be linked to a customer which can be referenced with its external id:
```text theme={null}
"customer": { "externalId": "12345" }
```
* The payment can be linked to one or several invoices.
* The applied amount must be specified.
```text theme={null}
"linkedInvoices": [
{ "amountLinked": "1000",
"invoice":
{ "externalId": "125643" }
}
]
```
* If the payment is refunded, the link must be specified from the refund object.
* You can also use Payments linked only to a customer to materialize a generic Journal Entry of type "Credit".
Note: If the system you are integrating with allows invoices to be marked as paid without having a linked payment, we recommend generating synthetic transactions so the invoice status in Upflow is paid as well. You can create a payment of the paid invoice amount with a date equal to the invoice issue date. To identify those, you can append the *refNumber* with a "fix:". This skews the analytics but allows the collection to run smoothly.
## Import credit note
Refer to the Import Credit Note endpoint [here](https://developer.upflow.io/#tag/credit-notes/post/credit_notes).
* Like a payment, the credit note must be linked to a customer and, optionally, to one or several invoices.
* Import Credit Note PDF
* Refer to the Import Credit Note PDF import endpoint [here](https://developer.upflow.io/#tag/credit-notes/post/credit_notes/%7BcreditNoteId%7D/pdf).
* The process is the same as for importing invoice PDF's.
## Import Refund
Refer to the Import Refund endpoint [here](https://developer.upflow.io/#tag/refunds/post/refunds).
The refund must be linked to a customer, and optionally to one or several payments or credit notes.
```text theme={null}
"linkedPayments": [
{ "amountLinked": "1000", "payment": { "externalId": "1234" } }
],
"linkedCreditNotes": [
{ "amountLinked": "2000", "creditNote": { "externalId": "4321" } }
],
```
* You can also use Refunds on a customer account to materialize a generic Journal Entry of type "Debit"
## Additional Endpoints:
## Create customer portal URL
Refer to the Create Customer Portal endpoint [here](https://developer.upflow.io/#tag/customers/post/customers/%7BcustomerId%7D/portal) and the dedicated documentation article [here](/en-us/customer-portal/branded-portal/generate-portal-url-via-api).
* This endpoint is used to generate a portal URL for a customer. You can link this URL in your app, or embed it in an iframe to allow your users to access the customer portal from your app. To embed it in an iframe, you must specify the `frameAncestors` attribute in the request.
* The call to retrieve the portal URL must strictly be made from the backend (not the frontend) as it utilises the client’s API secret.
* **Note:** There is no maximum to the `expiresIn` parameter. Our recommendation regarding the timeframe before expiration depends on the usage they need. The lowest is the best for better security because it decreases the risk of someone intercepting the token. So we recommend:
* One day for immediate usage.
* 25 days for cases of longer usage such as including the customer portal URL in an reminder that won't be opened immediately.
## Create custom fields
Refer to the Create Custom Field endpoint [here.](https://developer.upflow.io/#tag/custom-fields/post/custom_fields)
**Notes:**
* For creating/listing custom fields, use [`https://api.upflow.io/v1/custom_field`](https://api.upflow.io/v1/custom_field) API endpoint, GET/POST.
* For linking custom fields to customers, use [`https://api.upflow.io/v1/customer/`](https://api.upflow.io/v1/customer/) or use [`https://api.upflow.io/v1/customer/customerid`](https://api.upflow.io/v1/customer/) endpoint, POST/PUT.
* You will **not** be able to create a custom field via the Import Customer endpoint.
* Payment and Credit Note custom fields can be created through this endpoint using the "entityType": "CREDIT\_NOTE” or “PAYMENT”.
Values must be manually assigned on the UI.
* You can create custom fields with DATATYPE: **SELECT** or **MULTI\_SELECT** through this endpoint.
* The select values need not be specified on this request.
* Example Request Body:
```json theme={null}
{ "externalId": "123", "label": "Select Custom Field", "description": "custom field description", "dataType": "SELECT", "entityType": "CUSTOMER" }
```
* The call should yield a *201 Created* status code when successful. The custom field should now appear under the Customers entity (or the entity you indicate on the request) in your Settings > Custom Fields page.
* Once the custom field is created, you will be able to use the [Update Customer endpoint](https://developer.upflow.io/#tag/customers/put/customers/%7BcustomerId%7D) to both create the select value *and* assign that select value to the customer at the same time.
* Each time you use the API to input a new select value, a new selectable value is added to the dropdown for that custom field.
* **Important:** Values are case-sensitive so for example "One" and "one" will create two separate select values for the field.
* You can also both create a select value *and* assign that select value to a customer at the same time when creating a customer using the [Import Customer endpoint.](https://developer.upflow.io/#tag/customers/post/customers) (The only difference to the request is that this would be a POST request, the Upflow ID/external Id is omitted from the URL, and *name* & *externalId* of customer is required in the body in addition to the custom field array.)
The formatting for the body of the *PUT: Update Customer* request is shown below:
* For **SELECT** custom field:
```json theme={null}
{ "customFields": [ { "id": "12345", "externalId": "678910", "value": { "label": "One" } } ] }
```
(Note: You can exclude either the custom field id *or* external id from the body but not both.)
* For **MULTI\_SELECT** custom field:
```json theme={null}
{ "customFields": [ { "id": "12345", "externalId": "678910", "value": [ { "label": "One" }, { "label": "Two" } ] } ] }
```
(Note: You can exclude either the custom field id *or* external id from the body but not both.)
## Additional information
### Multi-organization handling
If you work with multiple Upflow organizations, you will need to generate a set of API keys for each organization and scope your synchronization logic to each.
***
If you have any questions/concerns, please submit a Support Request at the top of this article!
# Upflow API - Data flows
Source: https://docs.upflow.io/en-us/technical-documentation/api/upflow-api-data-flows
Understand the main flows when integrating a billing system with Upflow — which entities like customers, invoices, payments, and credit notes to import.
Here are the main flows to consider if you are building a full integration between your billing/accounting system and Upflow.
The diagram includes the entities to import and the endpoints to use.
# Connect ChatGPT to Upflow
Source: https://docs.upflow.io/en-us/technical-documentation/mcp-server/connect-chatgpt
Connect ChatGPT to Upflow via OAuth using a custom MCP connector.
Use this guide to connect ChatGPT to the Upflow MCP server. Once connected, ChatGPT can query data across every Upflow organization you have access to.
## Which path applies to you?
The ChatGPT setup depends on your **ChatGPT plan**:
* **ChatGPT Plus or Pro** — you can enable Developer mode and create a custom app yourself. Follow [Path A: Personal ChatGPT plan](#path-a-personal-chatgpt-plan).
* **ChatGPT Business, Enterprise, or Edu** — your workspace admin must first allow members to create custom MCP connectors. Once they have, you can follow the same steps to create the Upflow app on your account. Follow [Path B: Business, Enterprise, or Edu workspace](#path-b-business-enterprise-or-edu-workspace).
If you're on Business, Enterprise, or Edu and **Developer mode** is greyed out or **Create App** is unavailable, that's expected — your workspace admin needs to enable the permission first. Share the admin step in Path B with them.
ChatGPT Free does not support custom MCP connectors. You'll need at least a Plus, Pro, Business, Enterprise, or Edu plan.
## Path A: Personal ChatGPT plan
For ChatGPT Plus and Pro users.
### Step 1 - Enable Developer mode in ChatGPT
1. In ChatGPT, go to **Settings → Apps**.
2. Open **Advanced settings** and toggle **Developer mode** on.
3. Click **Create App**.
### Step 2 - Add Upflow as a custom app
Fill in the form:
* **Name**: `Upflow`
* **URL**: `https://api.upflow.io/mcp`
Tick the **"I understand and I want to continue"** checkbox, then click **Create** then **Sign up with Upflow**.
### Step 3 - Authorize Upflow
1. If you're not already signed in to Upflow, you'll be prompted to log in.
2. On the consent page, review the access Upflow is granting and click **Authorize**.
3. You'll be redirected back to ChatGPT with the connection confirmed.
### Step 4 - Enable Upflow in your chats
In ChatGPT's app settings for Upflow, toggle on **Reference memories and chats** so ChatGPT can use the connector during conversations.
## Path B: Business, Enterprise, or Edu workspace
On Business, Enterprise, and Edu workspaces, creating custom MCP connectors is gated by an admin permission. Once the admin enables it, each member follows the same steps as Path A on their own account.
### For the workspace admin
#### Step 1 - Allow members to create custom MCP connectors
1. Go to **Workspace Settings → Permissions & Roles**.
2. Find the **Connected Data** section and enable **Developer mode / Create custom MCP connectors**.
Members of your workspace can now turn on Developer mode in their own ChatGPT settings and create custom apps.
### For each ChatGPT member
Once the admin permission is enabled, follow the same steps as Path A above:
1. [**Enable Developer mode in ChatGPT**](#step-1---enable-developer-mode-in-chatgpt) — Settings → Apps → Advanced settings → Developer mode → Create App.
2. [**Add Upflow as a custom app**](#step-2---add-upflow-as-a-custom-app) — fill in Name and URL, tick the checkbox, click Sign up with Upflow.
3. [**Authorize Upflow**](#step-3---authorize-upflow) — log in if needed, click Authorize on the consent page.
4. [**Enable Upflow in your chats**](#step-4---enable-upflow-in-your-chats) — toggle on Reference memories and chats.
ChatGPT does not share a single workspace-level connector — every member creates their own Upflow app and authorizes their own OAuth grant.
## Try it out
Ask ChatGPT anything about your Upflow data. A few prompts to get started:
* **Top debtors** — *Who are the top 5 debtors by outstanding balance?*
* **Recent collections** — *How much have we collected since the beginning of the month?*
* **Customer contact** — *Who is the main contact for \[customer name]?*
## Manage or disconnect
To see all the AI clients you've connected to Upflow, or to revoke this connection, go to [**Settings → User → MCP access**](https://app.upflow.io/organization/-/settings/user/mcp-access) in the Upflow app. Each connected client can be revoked individually.
## Related articles
* [Connect Upflow to your AI client (overview)](/en-us/technical-documentation/mcp-server/overview)
* [Connect Claude](/en-us/technical-documentation/mcp-server/connect-claude)
# Connect Claude to Upflow
Source: https://docs.upflow.io/en-us/technical-documentation/mcp-server/connect-claude
Connect Claude Desktop or Claude.ai to Upflow via OAuth in a few minutes.
Use this guide to connect Claude to the Upflow MCP server. Once connected, Claude can query data across every Upflow organization you have access to.
Before you start, make sure an admin has enabled the MCP Server for your organization in Upflow. See [Connect Upflow to your AI client](/en-us/technical-documentation/mcp-server/overview) for details.
## Which path applies to you?
The Claude setup depends on your **Claude plan**:
* **Claude Free, Pro, or Max** — you can add Upflow as a custom connector yourself. Follow [Path A: Personal Claude plan](#path-a-personal-claude-plan).
* **Claude Team or Enterprise** — only your organization's Owner can add a custom connector at the org level. Once they have, you can authorize Upflow from your own Claude account. Follow [Path B: Team or Enterprise Claude plan](#path-b-team-or-enterprise-claude-plan).
If you're on Claude Team or Enterprise and can't find **Add custom connector** in your settings, that's expected — your Claude Owner / IT admin needs to add the connector first. Share the steps in Path B with them.
## Path A: Personal Claude plan
For Claude Free, Pro, and Max users.
### Step 1 - Open the connector settings in Claude
1. In Claude, open the **Customize** tab from the navigation bar
2. Click **+** and select **Add custom connector**, clicl Click **+** and select **Add custom connector**.
### Step 2 - Add Upflow as a connector
Fill in the form:
* **Name**: `Upflow`
* **URL**: `https://api.upflow.io/mcp`
No advanced settings are required. Click **Add**.
### Step 3 - Connect and authorize
1. Back in your connectors list, click **Connect** next to Upflow.
2. If you're not already signed in to Upflow, you'll be prompted to log in.
3. On the consent page, review the access Upflow is granting and click **Authorize**. You'll be redirected back to Upflow with a confirmation.
### Step 4 - (Optional) Skip approval prompts
By default, Claude asks for your permission each time it uses a tool to query Upflow. To stop the prompts, select **Always allow** the first time Claude requests access.
## Path B: Team or Enterprise Claude plan
On Team and Enterprise plans, the setup is two-sided: an **Owner** adds Upflow at the organization level once, then each **member** connects individually.
### For the Claude Owner / IT admin
#### Step 1 - Add Upflow at the organization level
1. In Claude, go to **Organization settings → Connectors**.
2. Click **Add**, hover over **Custom**, then select **Web**.
#### Step 2 - Fill in the form
* **Name**: `Upflow`
* **URL**: `https://api.upflow.io/mcp`
Click **Add**.
Once added, every member of your Claude organization can authorize Upflow individually from their own Claude account.
### For each Claude member
#### Step 1 - Connect Upflow from your account
1. In Claude, open the **Customize** tab from the navigation bar. Upflow now appears in the list of available connectors.
2. Click **Connect** next to Upflow.
#### Step 2 - Authorize
1. If you're not already signed in to Upflow, you'll be prompted to log in.
2. On the consent page, review the access Upflow is granting and click **Authorize**. You'll be redirected back to Upflow with a confirmation.
#### Step 3 - (Optional) Skip approval prompts
By default, Claude asks for your permission each time it uses a tool to query Upflow. To stop the prompts, select **Always allow** the first time Claude requests access.
## Try it out
Ask Claude anything about your Upflow data. A few prompts to get started:
* **Top debtors** — *Who are the top 5 debtors by outstanding balance?*
* **Recent collections** — *How much have we collected since the beginning of the month?*
* **Customer contact** — *Who is the main contact for \[customer name]?*
## Manage or disconnect
To see all the AI clients you've connected to Upflow, or to revoke this connection, go to [**Settings → User → MCP access**](https://app.upflow.io/organization/-/settings/user/mcp-access) in the Upflow app. Each connected client can be revoked individually.
## Related articles
* [Connect Upflow to your AI client (overview)](/en-us/technical-documentation/mcp-server/overview)
* [Connect ChatGPT](/en-us/technical-documentation/mcp-server/connect-chatgpt)
# [LEGACY] Connect Claude Code with an API key
Source: https://docs.upflow.io/en-us/technical-documentation/mcp-server/connect-claude-code-cli-legacy
Legacy API-key setup for Claude Code CLI. New integrations should use the OAuth flow.
**API-key authentication for the Upflow MCP server is being deprecated and will stop working at the end of June 2026.** If you set up MCP via Claude Code CLI with an API key, switch to the OAuth flow before then — see [Connect Claude](/en-us/technical-documentation/mcp-server/connect-claude). OAuth is simpler, supports every standard AI client (including Claude Desktop and ChatGPT), and removes the shared-key risk.
This article is kept available until the deprecation date so existing integrations have a reference for the current setup. After 30 June 2026 it will be removed.
Estimated setup time: **\~8 minutes**.
Use this guide to set up the Upflow MCP server in **Claude Code (CLI)** using API-key authentication.
## Limitations
This flow only supports the Claude Code CLI. It does not work with Claude Desktop, ChatGPT, or other AI clients that require OAuth.
* MCP authentication relies on **Upflow API credentials**, which grant **read-only admin access** across the entire organization.
* API credentials are **scoped to a single organization**. To connect to multiple organizations, you'll need to repeat the setup for each one.
## Prerequisites
* Connect with your CSM so we can confirm:
* The current status of the MCP Server and that we can support your use case.
* That your technical team understands the authentication constraints.
* Once confirmed, the Upflow team will activate the feature so you can start using it.
## Step 1 — Collect your connection parameters
1. In the Upflow app, go to [**Organization settings → Apps → API**](https://app.upflow.io/organization/-/settings/api).
2. Copy the following values:
* **Host**
* **Key**
* **Secret**
3. For the **MCP host**, take the Host value and **append** `/mcp` at the end.
* Example: `https://api.upflow.io` → `https://api.upflow.io/mcp`
4. For **User email**, use:
* Your own email, or
* Any email belonging to a member of the same organization.
You should now have:
* `Host` (with `/mcp` at the end)
* `Key`
* `Secret`
* `User_email`
## Step 2 — Add Upflow MCP to Claude Code
If you don't have Claude Code yet, follow [Claude Code's quickstart](https://code.claude.com/docs/en/quickstart) to install it. You'll need a Claude Code subscription.
Install Claude Code by running this command in your terminal:
```text theme={null}
curl -fsSL https://claude.ai/install.sh | bash
```
This will prompt you to add Claude Code to your path — copy and paste the command into your terminal.
Then start Claude Code:
```text theme={null}
claude
```
After setting up your preferences, you'll be prompted to log in. Select **Option 2** to open a browser tab and log in with your Google account. When done, quit Claude Code.
Finally, run this command in your terminal (not inside Claude Code), replacing the `<...>` placeholders with the values from Step 1:
```text theme={null}
claude mcp add --transport http \
--header "X-API-Key: " \
--header "X-API-Secret: " \
--header "X-API-User: "
```
The convention for naming your MCP server is `upflow-api-`. If you only need a single organization, you can use `upflow-api`.
## Step 3 — Verify the connection
Start Claude Code:
```text theme={null}
claude
```
Then verify your MCP connection inside Claude Code:
```text theme={null}
/mcp
```
You should see your MCP server with status `🟢 connected`.
Try one of these prompts:
* **Top debtors** — *Who are the top 5 debtors by outstanding balance?*
* **Recent collections** — *How much have we collected since the beginning of the month?*
* **Customer contact** — *Who is the main contact for \[customer name]?*
## Troubleshoot
**Verify the MCP entry in Claude configuration**
Open the file `/Users//.claude.json` and check for the `mcpServers` entry.
* If the file doesn't exist, verify your Claude Code installation.
* If there's no `mcpServers` entry, retry Step 2.
**MCP server already exists**
If the command in Step 2 returns an error, you may have already added the server. List existing MCP servers:
```text theme={null}
claude mcp list
```
If you see a server with the same name, delete it:
```text theme={null}
claude mcp remove
```
Then run the Step 2 command again.
## Related articles
* [Connect Upflow to your AI client (overview)](/en-us/technical-documentation/mcp-server/overview)
* [Connect Claude](/en-us/technical-documentation/mcp-server/connect-claude)
# Connect Upflow to your AI client (MCP server)
Source: https://docs.upflow.io/en-us/technical-documentation/mcp-server/overview
Connect Claude, ChatGPT, Notion AI, Cloudflare, and other AI clients to Upflow through the MCP server. Set up takes a few minutes from your user settings.
The Upflow MCP server lets you securely query your Upflow data from any standard AI client — Claude, ChatGPT, Notion AI, Cloudflare and others. Connection happens in your user settings via OAuth.
With the MCP server, you can:
* Ask your AI client to retrieve Upflow data on demand (debtors, collected amounts, contacts, invoices, payments, …).
* Connect every Upflow organization you have access to with a single authorization.
* Let each person on your team connect their own AI client, scoped to their existing Upflow permissions.
The Upflow MCP server is compatible with most standard AI clients. For security reasons, we whitelist the AI clients allowed to connect. If you're using an internal AI client or a less common one and the connection fails, contact [support@upflow.io](mailto:support@upflow.io) and we'll review whether we can whitelist it.
The MCP server is different from **Ask Upflow AI**, the assistant built into the Upflow app. Ask Upflow AI works out of the box and doesn't use the MCP server. You only need the MCP server to query your Upflow data from an external AI client. Both are read-only and scoped to your Upflow permissions.
## Before you start
A few things to know:
* **Admin enables MCP per organization.** Once enabled for your org, any user (admin or member) in that org can connect their own AI client.
* **OAuth tokens are read-only.** Your AI client can query data but cannot create, update, or delete anything in Upflow.
* **Scope follows your Upflow permissions.** What you can see through MCP is the same as what you can see in the app.
* **Multi-org in one connection.** A single OAuth grant covers every MCP-enabled organization you have access to. Results come back labelled by organization.
## Step 1 - Enable MCP for your organization (admin)
This step is only needed once per organization, and only an admin can do it.
1. Go to [**Settings → Integrations → MCP Server**](https://app.upflow.io/organization/-/settings/integrations/mcp-server).
1. Toggle **Enable MCP Server** on.
2. Members of your organization can now connect their own AI client. Share the relevant client guide below with them.
Disabling MCP at the org level **suspends** access for that org but keeps user grants intact. Users who want to fully invalidate a grant must do so themselves from their user settings.
## Step 2 - Connect your AI client
Pick the guide that matches the AI client you use:
* [**Connect Claude**](/en-us/technical-documentation/mcp-server/connect-claude) — Claude Desktop and Claude.ai web app.
* [**Connect ChatGPT**](/en-us/technical-documentation/mcp-server/connect-chatgpt) — ChatGPT desktop and web app.
Each guide walks you through the OAuth consent flow and what to do once you're connected.
### Other supported clients
**Notion AI** and **Cloudflare** are also whitelisted and can connect to Upflow:
1. In Notion AI, add Upflow as a custom connector with the MCP host `https://api.upflow.io`. Notion adds `/mcp` automatically.
2. In Cloudflare, add Upflow as a custom connector with the URL `https://api.upflow.io/mcp`.
3. Sign in to Upflow when prompted.
4. On the consent page, review the access and click **Authorize**.
## Manage your connected AI clients
Every AI client you connect appears in [**Settings → User → MCP access**](https://app.upflow.io/organization/-/settings/user/mcp-access). For each client you'll see:
* The client's name, logo, and homepage URL.
* The date the connection was created.
* A **Revoke** button to disconnect that specific client without affecting any others you've connected.
Only you can revoke your own grants. There is no admin-side revoke — admins can only enable or suspend MCP at the organization level.
## What your AI client can see
Once connected, your AI client can query data across every MCP-enabled organization you have access to. Access is:
* **Read-only.** No create, update, or delete actions.
* **Permission-scoped.** Bounded by your existing Upflow permissions in each organization.
* **Multi-org by default.** Results from queries across organizations come back labelled by organization, so you can run consolidated analyses without switching contexts.
## Legacy: Claude Code CLI with API key
If you set up MCP with API-key authentication via CLI before OAuth was available, your integration continues to work **until end of June**. We recommend switching to OAuth when you can — it's simpler, supports every standard AI client, and removes the shared-key risk.
## Related articles
* [Connect Claude](/en-us/technical-documentation/mcp-server/connect-claude)
* [Connect ChatGPT](/en-us/technical-documentation/mcp-server/connect-chatgpt)
* [Connect Claude Code with an API key (legacy)](/en-us/technical-documentation/mcp-server/connect-claude-code-cli-legacy)
# Enabling single sign on (SSO) for your Upflow users
Source: https://docs.upflow.io/en-us/technical-documentation/sso/enabling-single-sign-on-sso-for-your-upflow-users
Deploy SSO for Upflow using OIDC or SAML through identity providers like Microsoft Entra ID so your users sign in with one set of corporate credentials.
**Single Sign On (SSO)** allows users to securely sign on to Upflow and other applications in use at your business with a single set of credentials. Below you'll find a rundown of the process and the steps involved in deploying this authentication method for Upflow.
## OIDC or SAML
OpenID Connect (OIDC) and Security Assertion Markup Language (SAML) are authentication protocols used when configuring SSO. We currently support both these options but we *recommend* OIDC and the guides below describe the OIDC setup process through different Identity Providers.
### Microsoft Entra ID (formerly Azure Active Directory)
1. Before proceeding, verify that you have an active Microsoft Entra ID account with Admin privileges.
* Name: *Upflow SSO*
* Select: *Single tenant*
* Redirect URI: Select *Web* and enter:
```auto theme={null}
https://auth.upflow.io/__/auth/handler
```
Register Upflow as a new app: *App registration → New registration*
2. Navigate to the *Upflow SSO* application settings, and create a new app secret: \
*Certificates & secrets* → *New client secret*
* Record the Value field which serves as the `client_secret`\
\
3. Go to *API permissions* and make sure the [*User.Read*](http://User.Read) permission under Microsoft Graph is granted to the application.
\
4. Go back to the *Overview* page
1. Record the Application ID which serves as the `client_id`
2. Record the Directory (tenant) ID, which can be used to generate the `issuer` URL: [https://login.microsoftonline.com/\[tenant\]/v2.0/](https://login.microsoftonline.com/\[tenant]/v2.0/)
Once it is done, open [secrets.upflow.io](https://secrets.upflow.io/) and add the following information to the Editor field to send the following details through and send the link via a Support request at the top of this article:
* Identity Provider
* Application ID (`client_id`)
* Application Secret (`client_secret`)
* Complete `issuer` URL (which will include the Tenant ID)
* `Email domain`
### Okta
1. The Admin user must be signed in to the Okta Admin Console.
2. Once there, go to `Applications` > `Applications` > `Create App Integration`
3. Create a new `App Integration`, then select:
* Sign-in method: *OIDC*
* Application type: *Web Application*
4. Enter the following settings in the subsequent `New Web App Integration` panel:
* App integration name: *Upflow SSO*
* Grant type: *Authorization Code*
* Sign-in redirect URIs:
```auto theme={null}
https://auth.upflow.io/__/auth/handler
```
* Sign-out redirect URIs:
```auto theme={null}
https://app.upflow.io/
```
5. Assignments *(optional)*: The default option lets you assign and grant access to Upflow for everyone in your Okta org.\
\
If you would like to have more fine-grained access control over which users can access the Upflow application, you can select *Controlled access* and identify authorized *group(s)*. As an alternative, groups and users can also be later authorized individually in the application settings page.\
\
**\* Please note that users will still have to be invited in your Upflow account to be able to enter the**
**Upflow application.** 6. After hitting Save, the following application settings panel will display the following parameters which will to be securely transmitted to Upflow:
* the `client_id` (Client ID)
* the `client_secret` (Secret)
* the `issuer` can be found in the top right corner of the window, right below your email address
Finally, open [secrets.upflow.io](https://secrets.upflow.io) and add the following information to the Editor field to send the following details through. Then send us the link via a Support request at the top of this article:
* `client_id`
* `client_secret`
* Complete `issuer` URL
* `Identity Provider`
* `Email domain`
### SAML
OIDC is our recommended authentication protocol. If you do choose to proceed with SAML, the steps for this process are outlined below:
1. Register a new app on your Identity Provider which will grant access to the Upflow application to read and verify the identity (email) of authenticating users. You'll need the following Redirect URL:
```text theme={null}
https://auth.upflow.io/__/auth/handler
```
2. Finally, open [secrets.upflow.io](https://secrets.upflow.io) and add the following information to the Editor field to send the following details through. Then send us the link via a Support request at the top of this article:
* `idpEntityId`
* `ssoURL`
* `rpEntityId`
* `x509Certificates`
* Email domain name which will be used to sign in (e.g. “[example.com](http://example.com)”)
#### Here's how it should be formatted:
idpEntityId \ ssoURL \ rpEntityId \ x509Certificates \
### FAQ
**Does Upflow support Google SSO?**
* Yes, Upflow offers [Google SSO support](/en-us/technical-documentation/sso/enforce-sign-in-with-google).
**If I set up SSO on my Upflow sandbox account, do I have to do it again on my production account?**
* No, a single SSO configuration can be applied on both accounts. Submit a Support request at the top to ensure the configuration is ported over.
However, if SSO is set up in Production, it won't be ported over the sandbox environment. You'll then have to either:
* Create a new SSO separate project for the sandbox environment
* Regenerate/rotate the secret on the same SSO project you created for your Upflow production environment, and send us the related information, so we can update it on our end. Your team's access to Upflow can therefore be temporarily impacted.
**If SSO is enabled on my Upflow account, can some of our users still sign on with their email and Upflow password?**
* No. Once SSO is enabled on your Upflow account, the activation occurs at the domain level and all users MUST sign in via SSO. All other Upflow authentication methods are disabled.
**Does Upflow support (SCIM) User Provisioning?**
* (SCIM) User Provisioning is not currently supported through Upflow.
**Does Upflow support multi-factor authentication (MFA)?**
* MFA is not currently supported through Upflow.
**Does Upflow support Just-In-Time (JIT) provisioning?**
* Just-In-Time (JIT) provisioning is not currently supported through Upflow.
**Is Upflow able to support an SSO setup with 2 different domains?**
* Yes, please submit a Support request at the top to process this configuration.
# Enforce sign in with Google
Source: https://docs.upflow.io/en-us/technical-documentation/sso/enforce-sign-in-with-google
Enable and enforce Sign In with Google for everyone in your Upflow organization to improve account security and simplify access for your team.
If you want to improve your account security or make the platform's access easier for everyone, you can enable the **Sign In with Google** feature.
In your **[Profile](https://app.upflow.io/organization/-/profile)**, scroll down to the **Security** section and click the **Continue with Google** button:
Then, select the Google account to use.
Once you've activated this feature from your **Profile**, go to **Settings** > **[Security](https://app.upflow.io/organization/-/settings/security)**. Then click the button below to enable this feature for everyone:
**Note:** once this feature is enabled, all users will have to log in with their Google account linked to their Upflow profile.
**FAQ**
* Can I enable this feature only in my profile without forcing everyone else to use it?
Yes. You can enable it from your **[Profile](https://app.upflow.io/organization/-/profile)**.
* Can we still log in with our email address and password?
Not while this feature is enabled. If you want to log in with your email address and password, you will have to disable it for everyone from your **[Settings](https://app.upflow.io/organization/-/profile)**.
* Do I have to be an Admin or the platform owner to enable this feature?
The platform owner as well as Admins can enable this feature.
Members can enable it for their own **Profile**.
Any question? [Get in touch](mailto:support@upflow.io)!
# SSO authentication
Source: https://docs.upflow.io/en-us/technical-documentation/sso/sso-authentication
Understand how Upflow's SSO authentication flow works with your identity provider, from launching sign-in to verifying user identity by email address.
If you’re reading this article, chances are you know the benefits of using an Identity provider that will manage your information and verify your users’ identity, allowing them to log into related software solely using their e-mail address.
## In short
To simplify it, once you have shared your email address and launched the SSO process, Upflow will knock at your IP’s door. The latter will make sure you are who you say you are and confirm it to Upflow who will let you in!
## How to enable it?
First things first, you will need to introduce Upflow to your Identity Provider, by creating a new app in it. This grants Upflow (the new app) the right to read information associated to the credentials your users submit.
Refer to [Enabling Single Sign On (SSO) for your Upflow Users](/en-us/technical-documentation/sso/enabling-single-sign-on-sso-for-your-upflow-users) to find your SSO provider details.
Once you've followed the necessary steps in your SSO provider, open [secrets.upflow.io](https://secrets.upflow.io/) and add the required information to the Editor field:
1. Parameters of the newly registered app, pulled from your IP: `client_id`, `client_secret`, `issuer`.
2. Email domain name of your users (what comes after the “@” in their address, like “upflow\.io”).
Click on ***Send*** to encrypt the content you have just filled in, and share it with your interlocutor, who will pass it on to our Engineers. They will decrypt it before adding the information to your account.
## Log into Upflow with SSO
Once our team confirmed SSO is on for your domain, head to your Upflow login page.
Click the "Use Single Sign-On (SSO) instead" option:
Enter your user email address:
You'll then be redirected to your SSO provider page, before accessing your Upflow account.
## I can't access Upflow
When SSO is enforced, if you experience any access issues, it can be due to different reasons.
First, check with your IT team if your SSO configuration was correct and isn't missing anything.
Then check if you're allowed to access Upflow in your SSO settings.
If all the above is ok, check with your team if anyone else experiences this issue and if teammates can log in on their end.
If the latter, then it could be a missing setting for your profile in your SSO provider's system, or related to your browser. Please try accessing Upflow in another browser or a private navigation tab/window.
If you've tried all the above, please contact us with as much detail as possible.
## Removing SSO
If you need the SSO login configuration to be removed, please contact our Support to proceed.
Once confirmed by our team that SSO is no longer active on your domain in Upflow, your team can log in using their email and password, or Google SSO if enabled before.
# AI autofill for custom fields
Source: https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/ai-autofill-for-custom-fields
Automatically fill values in customer and invoice custom fields with Upflow's AI — write one prompt and let it answer for each record using your own data.
Upflow can automatically fill the values of your custom fields using AI. Instead of updating fields like "Reason for non-payment" or "Bankruptcy status" by hand, you write a prompt once — and Upflow uses your data to answer it for each customer or invoice.
AI autofill is available on custom fields for **Customers** and **Invoices**.
> 👉 Fields with AI autofill enabled cannot be edited manually; their value is always set by the AI.
## Enable AI autofill on a custom field
AI autofill is configured per field in [**Settings > Custom fields**](https://app.upflow.io/organization/-/settings/custom-fields). Only admin users can configure it.
To enable AI autofill on an existing field:
1. Go to [**Settings > Custom fields**](https://app.upflow.io/organization/-/settings/custom-fields).
2. Click **Edit** next to the field you want to configure.
3. Toggle on **AI autofill**.
The **Prompt** field appears. Write the question or instruction you want the AI to answer for each entity.
4. Optionally, check **Search across the web** to allow the AI to look up information from public web sources in addition to your Upflow data. This is disabled by default.
5. Click **Update** to save.
You can also enable AI autofill when creating a new field by toggling **AI autofill** in the **Add custom field** modal before saving.
## Write an effective prompt
The prompt is the question or instruction the AI will answer for each entity. It has access to the entity's data in Upflow — including invoice details, customer information, and communication history.
A few examples:
* `What is the bankruptcy status of this customer?` (Single select field)
* `Why has this invoice not been paid?` (Text field)
* `Is this customer currently responsive?` (Boolean field)
* `When should we expect the next payment from this customer?` (Date field)
Find more ready-to-use prompts for common use cases in the [AI autofill prompt library](/en-us/upflow-configuration/organization-configuration/ai-autofill-prompt-library).
If the AI cannot find a confident answer, it will leave the field empty rather than guess.
> 👉 AI autofill results are based on the data available in Upflow at the time of the refresh. For fields that depend on time-sensitive information (such as dates), the value is not automatically recomputed each day — you need to refresh it manually.
## Refresh a field value
AI autofill does not run automatically. You trigger a refresh manually, either one entity at a time or in bulk.
### Refresh on an entity page
On any customer or invoice page, AI fields show a ✨ sparkle button next to their value. Click it to ask the AI to recompute the value for that entity.
The field updates as soon as the AI returns a result.
### Refresh in bulk from a list view
From the customer or invoice list view, you can refresh AI autofill values for multiple entities at once:
1. Select the customers or invoices you want to update — or click **Select all** to include every entity matching the current filters.
2. Click **Actions** and choose **Refresh autofill values**.
3. Pick the AI custom field to recompute.
Each selected entity is queued for refresh and updates as soon as the AI returns a result.
## Edit or disable AI autofill
To change the prompt or disable AI autofill on a field, go back to [**Settings > Custom fields**](https://app.upflow.io/organization/-/settings/custom-fields) and click **Edit** on the field.
* **Editing the prompt** does not automatically recompute existing values. You need to refresh the field manually after saving.
* **Disabling AI autofill** preserves the current field values and the prompt configuration. If you re-enable it later, your prompt is still there.
## Data freshness
Each AI field shows when it was last updated, so you can assess how current the value is. Hover over a field value to see the exact timestamp.
If the field is empty, the AI either has not been run yet or could not find a confident answer.
## Related articles
* [AI autofill prompt library](/en-us/upflow-configuration/organization-configuration/ai-autofill-prompt-library)
* [Import and create custom fields into Upflow](/en-us/core-entities/others/import-and-create-custom-fields-into-upflow)
# AI autofill prompt library
Source: https://docs.upflow.io/en-us/upflow-configuration/organization-configuration/ai-autofill-prompt-library
Ready-to-use prompts for AI autofill custom fields — copy the Reason for non-payment or Company risk status examples, then adapt the wording and option values to your process.
This page provides ready-to-use prompts for [AI autofill custom fields](/en-us/upflow-configuration/organization-configuration/ai-autofill-for-custom-fields). Copy one into the **Prompt** field of your custom field, and adapt the wording and option values to your own process.
## Reason for non-payment
Answers the most common question in collections: why is this invoice still unpaid? The AI reviews your email threads, payment attempts, invoice data, and notes, then picks the main blocker — ready to filter and act on from the invoice list view.
Set up the field:
* **Object**: Invoice
* **Name**: Reason for non-payment
* **Type**: Single select
* **Options**: AP approval delay, Bank or processor failure, Billing data is wrong or incomplete, Cash-flow issues, Commercial mismatch, Company is bankrupt, Intentional holdback, Invoice dispute, Issue with PO (mismatch or missing), Payment execution issue, Payment failed for insufficient funds, Unknown
* **Search across the web**: enabled — the prompt asks the AI to check public sources for bankruptcy signals
Prompt:
```text theme={null}
You are an Accounts Receivable analyst.
Your task is to identify the single most likely reason why an invoice remains unpaid, using all available context such as email threads, call notes, payment attempts, invoice data, CRM/ERP information, internal notes, and timeline of events.
Definitions:
- Cash-flow issues: customer has cash, budget, or liquidity constraints.
- Invoice dispute: customer disputes the amount, service, scope, credits, or timing.
- Issue with PO (mismatch or missing): missing PO, procurement workflow, vendor setup, or AP portal blocker.
- AP approval delay: waiting for internal approval from AP, finance, or budget owner.
- Billing data is wrong or incomplete: wrong or missing billing, legal, tax, or remittance details.
- Commercial mismatch: mismatch with agreed pricing, discount, seats, renewal, or contract terms.
- Payment failed for insufficient funds: payment failed due to lack of funds or credit.
- Payment execution issue: expired, invalid, outdated, or missing payment method/setup.
- Bank or processor failure: issuer, bank, processor, or technical failure not caused by insufficient funds.
- Intentional holdback: customer is deliberately delaying payment without another explicit blocker.
- Company is bankrupt: the customer is bankrupt, insolvent, in administration, in restructuring, liquidated, or no longer operating, so payment is unlikely or legally blocked. Search online to see if there is any info.
- Unknown: evidence is insufficient or conflicting.
Rules:
- Prioritize explicit customer statements over internal assumptions.
- If several reasons appear, choose the main current blocker.
- Do not invent facts.
- If evidence is weak or ambiguous, use the "Unknown" option.
```
If you adjust the option values, update the matching definitions in the prompt so the AI knows what each option means.
## Company risk status
Flags customers that may not be able to pay at all — in administration, bankrupt, or already dissolved — by checking public registries and news rather than your own records.
Set up the field:
* **Object**: Customer
* **Name**: Company risk status
* **Type**: Single select
* **Options**: Active, In Administration, Bankruptcy, Dissolved, Unknown
* **Search across the web**: enabled — lets the AI check company registries and recent news for the company's legal status
Prompt:
```text theme={null}
You are a credit risk analyst.
Before assessing status, confirm you have identified the correct legal entity. Match on company name, registered address, and VAT/registration number if one is provided. If multiple entities share a similar or identical name and you cannot confidently determine which one this is, return Unknown rather than guessing.
Once identity is confirmed, determine this company's current operational and legal status using public sources — company registries, official filings, and recent news. Pick exactly one status. If you cannot find reliable public information, return Unknown — do not guess.
STATUSES
- Active: operating normally, no public indication of financial distress, insolvency proceedings, or dissolution.
- In Administration: in administration, receivership, restructuring, or a formal insolvency process, but not yet dissolved or liquidated.
- Bankruptcy: has filed for bankruptcy or liquidation, or been declared insolvent by a court or registry.
- Dissolved: struck off, dissolved, or ceased trading with no ongoing legal entity.
- Unknown: no reliable public record found, sources are contradictory, or entity identity could not be confirmed.
RULES
- Prioritize official registry data (e.g. Companies House, national business registries) over news articles.
- If registry data and news conflict, prefer the more recent source.
- Do not infer financial distress from indirect signals alone (a single late payment is not enough); require an explicit filing or credible news report.
- If you cannot confidently identify the correct legal entity, return Unknown.
- Reply with only the status name — no explanation, no source citations, no markdown.
```
Set this field on the customer, not the invoice. A company's legal status doesn't change per invoice, and checking at the customer level means the AI runs the web search once rather than repeating it for every open invoice.
## Write your own prompts
A few tips when adapting this prompt or writing new ones:
* Ask about one thing per field. If you want to track two pieces of information, create two custom fields.
* Match the question to the field type: a yes/no question for a boolean field, a date question for a date field, and so on.
* For select fields, the AI picks among the values you have defined for the field — use clear, distinct option names.
* For select fields with many options, follow the structure of the **Reason for non-payment** prompt above: state the AI's role and task, define each option, and say what to do when evidence is weak.
If the AI cannot find a confident answer, it will leave the field empty rather than guess.
## Related articles
* [AI autofill for custom fields](/en-us/upflow-configuration/organization-configuration/ai-autofill-for-custom-fields)
* [Import and create custom fields into Upflow](/en-us/core-entities/others/import-and-create-custom-fields-into-upflow)