Hyppää sisältöön

Asiakkaat — Odoo → Custobar

Workflow: 🧍‍♂️ Päivitä asiakkaat Custobariin ID: H1ZZodL2vhmolnxe Ajastus: Joka 30 minuutti

Toimintaperiaate

Hakee Odoosta asiakkaat (ei toimittajia), poistaa sähköpostiduplikaatit, ja lähettää 100 asiakkaan erissä Custobariin.

flowchart LR
    A["⏰ Schedule<br/>30 min"] --> B["📥 Get Odoo<br/>Contacts"]
    B --> C["🧹 Remove<br/>Duplicates"]
    C --> D["🔄 Transform<br/>Customers"]
    D --> E["📦 Batch<br/>Builder"]
    E --> F["🔁 Loop"]
    F -->|erä| G["📤 HTTP POST<br/>/customers/upload/"]
    G --> H["⏳ Wait 10s"]
    H --> F
    F -->|valmis| I["💾 Save<br/>Timestamp"]
    I --> J["✅ Done"]

Odoo-haku

Asetus Arvo
Malli res.partner
Operaatio search_read (getAll)
Suodattimet customer_rank > 0, write_date > edellinen_ajo
Credential Odoo account

Haettavat kentät:

Odoo-kenttä Kuvaus
phone_sanitized Puhelinnumero (kansainvälinen muoto)
email_normalized Sähköposti (normalisoitu)
display_name Näyttönimi
name Nimi
create_date Luontiaika
write_date Muutosaika
city Kaupunki
country_code Maakoodi (esim. FI)
street Katuosoite
vat ALV-tunnus
zip Postinumero
company_name Yrityksen nimi

customer_rank > 0

Odoon res.partner-malli sisältää sekä asiakkaita, toimittajia, yhteyshenkilöitä yms. Suodatin customer_rank > 0 rajaa haun vain asiakkaisiin.

Duplikaattien poisto

Ennen Custobar-lähetystä poistetaan duplikaatit email_normalized-kentän perusteella:

const seen = new Set();
return $input.all().filter(item => {
  const email = item.json.email_normalized;
  if (!email || seen.has(email)) return false;
  seen.add(email);
  return true;
});

Tämä varmistaa, ettei samaa sähköpostiosoitetta lähetetä useaan kertaan (Odoo voi sisältää duplikaattikontakteja eri yhtiöissä).

Custobar-data

Endpoint: POST https://rst-steel.custobar.com/api/customers/upload/

{
  "customers": [
    {
      "external_id": "5678",
      "first_name": "Matti Meikäläinen",
      "email": "matti@example.com",
      "phone_number": "+358401234567",
      "street_address": "Teollisuustie 5",
      "city": "Tampere",
      "zip_code": "33100",
      "country": "FI",
      "vat": "FI12345678",
      "company": "Meikäläinen Oy",
      "date_joined": "2024-03-15 08:30:00"
    }
  ]
}

Kenttäkartoitus

Custobar-kenttä Odoo-lähde Muunnos
external_id id Muunnetaan merkkijonoksi
first_name display_name Vain jos ei false
email email_normalized Vain jos ei false
phone_number phone_sanitized Vain jos ei false
street_address street Vain jos ei false
city city Vain jos ei false
zip_code zip Vain jos ei false
country country_code Vain jos ei false
vat vat Vain jos ei false
company company_name Vain jos ei false
date_joined create_date Suoraan

Tyhjät kentät

Kaikki kentät (paitsi external_id ja date_joined) lisätään Custobar-dataan vain jos niillä on oikea arvo. Odoon false-arvoja ei lähetetä. Tämä estää Custobarin olemassa olevien tietojen ylikirjoittamisen tyhjillä arvoilla.