Customers (contacts and locations)#

ELT customer data is split across two levels:

  • Contacts (res.partner) — a company or individual, one entity
  • Locations (fsm.location) — a single customer can have multiple sites (e.g. a housing company with several addresses)

Creating a customer#

Contacts → Create.

Required:

  • Name — company name or person name
  • Company / Individual — radio choice important for Netvisor sync
  • Address — primary billing address

Recommended:

  • Business ID (Y-tunnus) (companies, format 1234567-8) — needed for the Netvisor link
  • VAT — if different from business ID (e.g. foreign)
  • Email — invoices go here
  • Phone — installer will need this
**Don't use company.partner_id or similar "base partner" as fsm.location.partner_id.** OCA fieldservice propagates name/active changes between partner ↔ location, so if the location's data changes, the entire company name might change. This is a big bug source (200.x).

Creating a location#

One customer can have 1–N locations. Creating one:

  • From the customer form, Locations tab → “Create”
  • OR: Field Service → Configuration → Locations → Create

Required:

  • Name — e.g. “Head office, Espoo”
  • Customer — link to the customer
  • Address — physical visiting address

Optional:

  • Description — persistent location notes (“Key in box X”, “Cat escapes through front door”, “Resident over 80 y old”)
  • Equipment — installed equipment at this site (heat pumps, AC, etc.) — see Equipment

Contact people#

A customer can have multiple contacts (child_ids):

  • Customer form, Contacts tab → “Create”
  • Separated by role: “Decision maker”, “Technical”, “Billing address”

Contact name + email + phone shows in the task form for the installer to read.

Contract customers#

ELT practice: large contract customers (e.g. municipalities, big property companies) are tagged and their locations are persistent rows. This separates them from “one-off” customers.

Troubleshooting#

Customer doesn’t appear in invoicing
Common reasons: - **Customer has no business ID or personal ID** — Netvisor rejects. - **Customer is archived (`active=False`)** — filter "Archived" on the search. - **Customer has no invoicing address** — invoice address field is required before the first invoice.
Two customers with the same business ID
Sometimes duplicates appear e.g. via the purchase-invoice import (Netvisor name differs from Odoo name). Merge: 1. Open the "older" customer. 2. Action → Merge. 3. Pick the duplicate → Merge. This combines all references onto the new merged record.
fsm.location 12, 13 are named ‘EL-Tekniikka Oy’
Old placeholder residue. Manual fix: open each, update customer + address. id 14 has been archived. Plan to clean these up in a single cleanup task.