If you sell in multiple currencies, HubSpot’s built-in amount in company currency is brilliant for high-level revenue. But it might get messy, the second finance asks for reports on margin, services revenue, or any other custom metric across different currencies.
This hack shows you how to use HubSpot’s own exchange rate logic to automatically convert a custom value (for example, margin in the deal currency) into your company currency, so you can slice and dice it properly in reports.
Why is this hack helpful?
HubSpot already does a lot of heavy lifting for you:
-
You can add multiple currencies and set exchange rates against your company currency.
- Deals come with:
- Currency
- Amount in company currency (calculated from Amount using your exchange rates)
But out of the box:
- Custom currency-style fields do not auto-convert using exchange rates unless you explicitly build that logic.
- Formatting a number as Currency defaults to the company currency, which is not what you want for “margin in deal currency”.
This hack gives you:
- A clean way to store margin (or any metric) in the deal currency.
- A calculated conversion using HubSpot’s own exchange rate logic.
- A final, company-currency property that is safe to use in dashboards and finance reports.
Perfect if finance is asking “What is the margin in AUD across all deals?” and your data currently lives in a soup of GBP, EUR and USD.
Getting started: HubSpot’s default deal currency properties
When you enable multiple currencies and set exchange rates in Settings → Account defaults → Currency, HubSpot uses them in key deal properties:
- Currency
- The currency that Amount is set in
- Only appears if your account has multiple currencies
- Amount in company currency
- The value of the deal in your company currency.
- Calculated based on the exchange rates you have configured.
- Updates as exchange rates change while the deal is open.
- Once the deal is Closed won/Closed lost, the value is fixed and only updates if historical exchange rates are edited.
You are going to use Amount and Amount in company currency as the basis for your own converted values.
Steps to Set It Up
Step 1: Create a custom number property (value in deal currency)
First, create a plain number field to store your metric in the deal currency.
Example: Margin.
- Go to Settings → Data Management → Properties
- Select Deal as the object
- Click Create property
- Configure:
- Label: Margin in deal currency (or similar)
- Field type: Number
Important note: Do not format this number property as Currency. If you do, HubSpot will display it in your account default currency by design, which is not what we want for “margin in the deal’s own currency”.
This property should just be a raw numeric value representing the margin in whatever currency the deal itself is set to.
Step 2: Create a custom calculation property for the conversion
Next, create a calculation property that turns your “margin in deal currency” into “margin in company currency” by using the ratio between Amount in company currency and Amount.
Conceptually:
(Amount in company currency ÷ Amount) ≈ the live exchange rate HubSpot is using for that deal.
Multiply that by Margin in deal currency and you get margin in company currency.
- Still under Deal properties, click Create property
- Set:
- Label: Margin (converted calculation)
- Field type: Calculation
In the formula editor, build a Custom equation along the lines of:
(Margin in deal currency + 0) * (Amount in company currency / Amount)
Where:
- Margin in deal currency = your Step 1 property
- Amount in company currency = standard HubSpot deal property
- Amount = standard HubSpot deal property
This calculation property will:
- Update when exchange rates change (via Amount in company currency) while the deal is open.
- Update when Margin in deal currency changes.
- Mirror HubSpot’s own logic around Amount in company currency fixing when the deal closes.
You generally will not present this calculation property directly to users. You will stamp its value into a neat, currency-formatted property next.
Step 3: Create a custom currency property (in company currency)
Now you want a property that looks and behaves like a normal currency field in your portal’s company currency.
- In Deal properties, click Create property
- Configure:
- Label: Margin in company currency
- Field type: Number
- Number format: Currency
Because you are using it to store values already converted to company currency, it is fine (and correct) for this field to use the portal’s default currency.
You will not calculate in this property. You will simply copy the value from the calculation property in Step 2 into this field via workflow.
Step 4: Build a workflow to stamp the calculation into your currency property
The final piece is a workflow that keeps Margin in company currency in sync whenever the underlying inputs change.
4.1 Create a deal-based workflow
- Go to Automation → Workflows
- Click Create workflow → From scratch
- Select Deal-based workflow
- Name it something like:
- Margin conversion → stamp to company currency
4.2 Set the enrolment trigger
The workflow should enrol whenever your calculation has a reason to change, for example when:
- Margin in deal currency is known/updated.
- Or when Amount in company currency is known/updated.
A common pattern:
- Trigger: Margin in deal currency is known
- Plus any additional conditions that make sense for your team
Add a filter so you only enrol active deals, for example:
- Pipeline stage is not Closed won/Closed lost or
- Deal stage is any of your open stages
This aligns with how HubSpot handles Amount in company currency: you want the value to keep reacting to exchange rate changes while the deal is open, then effectively lock in once closed.
Turn on re-enrolment
You want deals to re-enter this workflow when:
- Margin in deal currency changes
- Amount in company currency changes
4.3 Add the property copy action
Inside the workflow:
- Add an action: Set property value or Copy property value (wording may differ by portal)
- Configure:
- Property to update: Margin in company currency
- Value to copy from: Margin (converted calculation)
Now, whenever the workflow runs, it stamps the current calculated value into your clean, currency-formatted property.
For closed deals:
Because you filtered the trigger to only enrol active deals, once the deal moves to a closed stage, the last stamped value effectively becomes “locked” at the exchange rate that applied when it was last active. If you want a different behaviour (for example, allow manual override after close) you can adjust your triggers or add separate logic.Use your new property in the CRM and in reports
In the deal record
- Add these properties to your deal sidebar and deal create forms:
- Margin in deal currency
- Margin in company currency
If you are already auto-populating the margin from line items (very common), there may be zero extra effort for reps. HubSpot + your workflows do the exchange conversion in the background.
In reporting
You can now safely use Margin in company currency in:
- Single-object deal reports
- Cross-object reports (Deals + Company + Custom objects)
- Finance dashboards that compare:
- Margin vs revenue
- Margin by region, pipeline, or product
- Margin over time
Because everything is normalised into one currency, the charts actually mean something.
Wrapping Up
Multi-currency deals do not have to mean multi-tab spreadsheets and last-minute manual conversions. By combining HubSpot’s built-in amount in company currency with a simple calculation + workflow, you get margin (or any custom value) converted accurately into your company currency and ready for real finance reporting.
Want help on your HubSpot portal? Book a strategy session with our HubSpot experts.
Keep up with more HubSpot hacks
If you like this kind of practical, no-fluff HubSpot tinkering, follow us on Facebook and YouTube. We share regular walkthroughs, automation ideas, and real-life HubSpot setups to help you get more out of your portal.
Happy HubSpotting!