HubSpot CRM — Finance Use Case

Structuring Historical
Payment Records in HubSpot

Complete theory — from problem identification to final implementation · A to Z

Problem Statement

Your finance team wants to import historical payment records, including past purchases and amounts paid by both current and former customers. The goal is to structure this data in HubSpot in a way that maintains clarity and usability.


What Is the Real Problem?

Most finance teams store payment data in a flat Excel or CSV file where everything — customer name, email, order ID, amount, and payment status — sits in one single sheet. While this works for basic record-keeping, it creates serious limitations:

❌ Problem 1 — No Relationships

A flat CSV has no concept of "this order belongs to this customer." Every row is isolated. There is no link between a customer and their purchases.

❌ Problem 2 — Duplicate Customer Data

If Rahul made 3 purchases, his email appears 3 times in the file. There is no single "Rahul" record — just repeated rows. Impossible to see his total spend at a glance.

❌ Problem 3 — No Current vs Former Distinction

A flat file cannot distinguish between a customer who still buys from you (Current Customer) and one who stopped (Former Customer). Finance team has no visibility into customer status.

❌ Problem 4 — Manual Calculations

To find a customer's total purchase amount, someone must manually filter and sum rows in Excel. Time-consuming and error-prone at scale.


How HubSpot Solves These Problems

HubSpot is a CRM (Customer Relationship Management) platform. Unlike a flat spreadsheet, HubSpot stores data as related objects. A Customer (Contact) and their Purchases (Deals) are stored separately but linked together automatically.

HubSpot uses two core objects for this use case:

CONTACTS → Stores WHO the customer is Name, Email, Customer Type (Current / Former) Lifecycle Stage DEALS → Stores WHAT they purchased Order ID, Amount, Close Date Payment Status, Payment Method Pipeline, Deal Stage (Closed Won / Pending)

These two objects are linked via Email — the unique identifier that tells HubSpot which deal belongs to which contact.


How to Structure the Data — Two CSV Files

The data must be split into two separate CSV files before importing. This separation is what enables HubSpot to build proper relationships.

File 1 — contacts.csv

Contains only customer identity. Each customer appears only once.

ColumnExamplePurpose
First NameRahulCustomer's first name
Last NameSharmaCustomer's last name
Emailrahul@gmail.comUnique ID — used for linking
Customer TypeCurrent CustomerActive vs Inactive customer
Lifecycle StageCustomerHubSpot's built-in stage

File 2 — deals.csv

Contains all payment records. Each row = one purchase. A customer can have multiple rows.

ColumnExamplePurpose
Deal NameORD001Unique order identifier
Associated Contact Emailrahul@gmail.com⭐ Links deal to contact automatically
Close Date2023-01-10Date of purchase
Amount5000Purchase amount
Payment StatusPaid / PendingTrack payment completion
Payment MethodUPI / CardHow payment was made
PipelineSales PipelineRequired by HubSpot for deals
Deal StageClosed WonRequired by HubSpot for deals

The Magic Column — "Associated Contact Email"

The most critical part is the column named Associated Contact Email in the deals CSV. This is a special HubSpot keyword that tells the system to automatically link each deal to the matching contact.

❌ WRONG: Column named "Email" HubSpot treats it as a deal property No automatic linking happens Deals stay disconnected from Contacts ✅ CORRECT: Column named "Associated Contact Email" HubSpot recognizes this as a linking instruction Automatically connects ORD001 → Rahul Sharma All purchases visible on Contact profile instantly

During import, this column must be mapped as Contact properties → Email, while all other deal columns are mapped as Deal properties.


Step-by-Step Import Method

1
Import contacts.csv FIRST

CRM → Contacts → Actions → Import → Select "Contacts only." This creates all customer records in HubSpot before any deals are added.

2
Import deals.csv SECOND

CRM → Deals → Actions → Import → When asked what to import, select BOTH Contacts and Deals. Upload deals.csv as a Single File.

3
Map columns correctly on the mapping screen

Set "Associated Contact Email" → Contact properties → Email. Set all other columns → Deal properties.

4
Verify the result

Open any Contact profile. On the right side, the Deals section shows all linked purchases and total revenue — automatically calculated by HubSpot.


Final Mapping Table

CSV ColumnImport AsHubSpot Property
Deal NameDeal propertiesDeal Name
Associated Contact EmailContact properties ⭐Email
Close DateDeal propertiesClose Date
AmountDeal propertiesAmount
Payment StatusDeal propertiesPayment Status
Payment MethodDeal propertiesPayment Method
PipelineDeal propertiesPipeline
Deal StageDeal propertiesDeal Stage

What the Finance Team Gets

After successful import, the finance team opens any contact profile and sees complete payment history — all in one place, zero manual calculations.

👤 Rahul Sharma | rahul@gmail.com | Current Customer ─────────────────────────────────────────────── Deals (2): ORD001 → $5,000 → Paid → UPI → Jan 10, 2023 ORD004 → $3,000 → Paid → UPI → Apr 01, 2023 ─────────────────────────────────────────────── Total Revenue: $8,000 ← Calculated automatically ✅ 👤 Riya Verma | riya@gmail.com | Former Customer ─────────────────────────────────────────────── Deals (2): ORD002 → $7,500 → Paid → Card → Feb 15, 2023 ORD008 → $7,600 → Pending → Card → Apr 20, 2023 ─────────────────────────────────────────────── Total Revenue: $15,100 ← Calculated automatically ✅
✅ All Problems Solved

1. Current vs Former customers clearly identified via Customer Type property.
2. All orders per customer linked and visible in one profile.
3. Total purchase amount calculated automatically by HubSpot.
4. Pending payments instantly visible — no manual filtering needed.
5. Finance team has full clarity and usability from a single screen.


One-Line Answer

To structure historical payment data in HubSpot with clarity and usability, split the data into two files — contacts.csv for customer identity (with Current/Former status) and deals.csv for payment records — then import both together using the "Associated Contact Email" column so HubSpot automatically links every purchase to the correct customer, enabling the finance team to see total spend, payment status, and complete order history in a single contact profile — with no manual calculations required.