Capture equipment installation data in the COBie workbook (construction phase).
**Before first use:** Call get_update_workflow() or get_actor_contact_schema() to get
the required actor_contact structure. Use MCP prompt 'how_to_update_cobie' for the full guide.
**IMPORTANT - File Modification Behavior:**
- **DEFAULT (output_path=None):** Edits the original file IN-PLACE (modifies excel_path directly)
- **With output_path:** Creates a NEW file at output_path, leaves original untouched
- **With create_backup=True:** Creates "excel_path.bak" backup before editing in-place
**Construction phase** (typical): Component name, type, and location are already in the
workbook from design. Only provide:
- component_identifier (required): The component name (e.g. "Tap-1", "DR:T1A")
- installation_date (optional): Use "today" or "now" when user says "just installed"
**OR** use as_of_date parameter (if payload lacks installation_date, as_of_date is used automatically)
- serial_number, status (optional)
Do NOT ask for type, floor, or space—they are design-phase and already in the file.
**Payload fields:**
- component_identifier (required): Equipment name in the workbook
- installation_date (optional): ISO date, or "today"/"now" for current date.
**NOTE:** If omitted and as_of_date parameter is provided, as_of_date will be used for InstallationDate.
- serial_number, status (optional): e.g. status="PLACED"|"STARTED"|"TESTED"|"COMMISSIONED"
- install_space, install_floor (optional): Only when adding NEW components; omit for
construction phase—location comes from design.
- evidence_paths (optional): Paths to attach evidence files
**Actor contact (required):** Provide updater identity.
{
"email": "john@example.com",
"company": "ACME Corp",
"phone": "555-1234",
"category": "Installer"
}
**Minimal example (construction phase with as_of_date):**
{
"payload": {
"component_identifier": "Tap-1"
# installation_date omitted - as_of_date will be used
},
"actor_contact": {
"email": "installer@acme.com",
"company": "ACME Corp",
"phone": "555-1234",
"category": "Installer"
},
"as_of_date": "2026-02-16"
}
**Alternative: explicit installation_date in payload:**
{
"payload": {
"component_identifier": "Tap-1",
"installation_date": "today"
},
"actor_contact": {
"email": "installer@acme.com",
"company": "ACME Corp",
"phone": "555-1234",
"category": "Installer"
}
}
**Common mistakes:**
- Use 'component_identifier', 'component_name', 'equipment_name', or 'ComponentName' (all accepted)
- Both snake_case and PascalCase (COBie standard) are accepted for payload fields
- Field names are case-sensitive: use lowercase 'email', 'company', 'phone', 'category'
- Provide ALL required actor_contact fields at once
- Don't specify output_path unless you want to create a separate copy
**Header requirements:** Workbook must have columns for any payload fields provided
(e.g. SerialNumber, InstallationDate, Status if you include them).