DocsIntegrationsFinta

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
  1. Plaid connects to CDB's bank accounts and retrieves transactions
  2. Finta polls Plaid and syncs new transactions to the transactions table in Supabase (runs hourly)
  3. 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

  1. Open /cost-inbox in Field
  2. Review each uncoded transaction
  3. 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
  4. 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:

  1. Check Finta dashboard for sync errors
  2. Re-authenticate Plaid connection if needed (bank credentials changed)
  3. Phil handles Finta troubleshooting

Related