Finta / Plaid — Transaction Sync
Bank transactions flow into Field automatically via Finta (a Plaid-powered sync service). This powers the Cost Inbox — where raw transactions get reviewed, tagged with cost codes, and attached to jobs.
Pipeline
Bank accounts (Plaid) → Finta → Supabase → Field Cost Inbox
- Plaid connects to CDB's bank accounts and retrieves transactions
- Finta polls Plaid and syncs new transactions to the
transactionstable in Supabase (runs hourly) - Field Cost Inbox (
/cost-inbox) displays unreviewed transactions for coding
The Transactions Table
Key columns in transactions:
| Column | Description |
|--------|-------------|
| id | UUID primary key |
| amount | Transaction amount (negative = expense, positive = income) |
| merchant_name | Cleaned merchant name from Plaid |
| date | Transaction date |
| status | uncoded, coded, or excluded |
| cost_code_id | FK to cost_codes table (set when coded) |
| job_id | FK to jobs table (set when assigned to a job) |
| notes | Optional note from the reviewer |
| account_id | Which bank account this came from |
Rule: Transactions are never deleted. Use status = 'excluded' to hide non-business transactions.
Cost Inbox Workflow
- Open
/cost-inboxin Field - Review each uncoded transaction
- For each transaction:
- Select a cost code (what type of expense)
- Optionally assign to a job
- Add a note if needed
- Click Code → status changes to
coded
- Non-business transactions: click Exclude → status =
excluded
Exclusion Rules
Field supports exclusion rules — automatic rules that exclude transactions matching a pattern:
- Go to
/cost-inbox→ Exclusion Rules - Add patterns like "VENMO PAYMENT", "PAYPAL TRANSFER", etc.
- On next sync, matching transactions are auto-excluded
Merchant Rules
Merchant rules auto-assign a cost code when a merchant name matches:
- Go to
/cost-inbox→ Merchant Rules - Add: merchant name pattern + default cost code
- New transactions from that merchant get auto-coded
Setup Notes
Finta is managed externally (not in the Field repo). The connection was set up once and runs automatically. If transactions stop flowing:
- Check Finta dashboard for sync errors
- Re-authenticate Plaid connection if needed (bank credentials changed)
- Phil handles Finta troubleshooting
Related
- Cost Codes — Manage the taxonomy of expense types
- Transactions — Full transaction history view
- Cost Inbox — Review queue for uncoded transactions