Files
Brancheneinstufung2/round_trip_final.py

69 lines
2.2 KiB
Python

import os
import json
import sys
from dotenv import load_dotenv
# Path gymnastics
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(os.path.join(os.path.dirname(os.path.abspath(__file__)), "connector-superoffice"))
from company_explorer_connector import get_company_details
from superoffice_client import SuperOfficeClient
# Load ENV
load_dotenv(dotenv_path="/home/node/clawd/.env", override=True)
def perform_final_round_trip(ce_id):
client = SuperOfficeClient()
print(f"--- Final Round-Trip: CE {ce_id} -> SuperOffice ---")
# 1. Get enriched data from CE
ce_data = get_company_details(ce_id)
if not ce_data or "error" in ce_data:
print("❌ Could not fetch CE data.")
return
so_id = ce_data.get("crm_id")
if not so_id:
print("❌ No SO ID found in CE.")
return
# 2. Fetch current SO contact
contact = client._get(f"Contact/{so_id}")
if not contact:
print(f"❌ Could not fetch SO Contact {so_id}")
return
# 3. Intelligent Mapping (Full Object)
print(f"Mapping data for {ce_data.get('name')}...")
# Simple Fields
contact["UrlAddress"] = ce_data.get("website", "")
contact["Department"] = "KI-Enriched via CE"
# Address Object
if "Address" not in contact: contact["Address"] = {}
if "Street" not in contact["Address"]: contact["Address"]["Street"] = {}
contact["Address"]["Street"]["Address1"] = ce_data.get("address", "")
contact["Address"]["Street"]["City"] = ce_data.get("city", "")
contact["Address"]["Street"]["Zipcode"] = ce_data.get("zip", "")
# Phones (List)
if ce_data.get("phone"):
contact["Phones"] = [{"Number": ce_data.get("phone"), "Description": "Main"}]
# 4. Write back
print(f"Sending full update to SO Contact {so_id}...")
result = client._put(f"Contact/{so_id}", contact)
if result:
print("🚀 SUCCESS! Round-trip for Robo-Planet complete.")
print(f"Website: {contact['UrlAddress']}")
print(f"City: {contact['Address']['Street']['City']}")
else:
print("❌ Update failed.")
if __name__ == "__main__":
perform_final_round_trip(53)