Vai al contenuto

Organizzazioni

Gestisci le organizzazioni all'interno del tuo account ChatHub. Le organizzazioni fungono da contenitori per gli operatori e le operazioni di chat.

Panoramica

Organizzazioni in ChatHub:

  • Raggruppare gli operatori per dipartimento, team o funzione
  • Isolare le operazioni di chat tra diverse unità aziendali
  • Gestire le autorizzazioni a livello organizzativo
  • Tieni traccia delle metriche per organizzazione

Elenca le organizzazioni

Recupera tutte le organizzazioni accessibili con il token della tua azienda.

Punto finale

GET /api/company/organization

Richiesta

curl -X GET https://chatapi.smsbat.com/api/company/organization \
  -H "Authorization: Bearer {company-token}" \
  -H "Accept: text/plain"

Intestazioni

Intestazione Valore Obbligatorio Descrizione
"Autorizzazione" Portatore Gettone aziendale
"Accetta" testo/semplice Formato della risposta

Risposta

CODICE_BLOCCO_2

Campi di risposta

Campo Digitare Descrizione
id intero Identificatore univoco dell'organizzazione
nome stringa Nome visualizzato dell'organizzazione

Struttura organizzativa

Ogni organizzazione contiene:

  • Operatori: agenti di chat assegnati all'organizzazione
  • Sessioni di chat: conversazioni chat attive e storiche
  • Widget: widget di chat incorporati per questa organizzazione
  • Impostazioni: configurazione specifica dell'organizzazione

Casi d'uso

Azienda Multidipartimentale

Company: ACME Corp
├── Organization: Sales (id: 10)
│   ├── Operator: John (Sales Rep)
│   └── Operator: Sarah (Sales Manager)
├── Organization: Support (id: 20)
│   ├── Operator: Mike (Support Agent)
│   └── Operator: Lisa (Support Lead)
└── Organization: Technical (id: 30)
    └── Operator: Alex (Tech Expert)

Attività multimarca

Company: Retail Group
├── Organization: Brand A (id: 101)
│   └── Widget: branda.com
├── Organization: Brand B (id: 102)
│   └── Widget: brandb.com
└── Organization: Brand C (id: 103)
    └── Widget: brandc.com

Esempi di implementazione

Pitone

CODICE_BLOCCO_5

JavaScript (Node.js)

CODICE_BLOCCO_6

PHP

CODICE_BLOCCO_7

Lavorare con le organizzazioni

Elenca tutte le organizzazioni

const organizations = await getOrganizations(companyToken);

organizations.forEach(org => {
  console.log(`${org.id}: ${org.name}`);
});

Uscita:

6: Customer Support
24: Sales Team
42: Technical Support

Filtra organizzazioni

// Get organizations matching criteria
const supportOrgs = organizations.filter(org =>
  org.name.toLowerCase().includes('support')
);

// Get organizations by IDs
const specificOrgs = organizations.filter(org =>
  [10, 20, 30].includes(org.id)
);

Organizzazioni di mappe

// Create ID to name mapping
const orgMap = organizations.reduce((map, org) => {
  map[org.id] = org.name;
  return map;
}, {});

console.log(orgMap[24]); // "Sales Team"

Modelli di integrazione

Interfaccia utente di selezione dell'organizzazione

CODICE_BLOCCO_12

Indirizza le chat per organizzazione

async function routeChatToOrganization(chatRequest) {
  const organizations = await getOrganizations(companyToken);

  // Route based on business logic
  let targetOrg;

  if (chatRequest.department === 'sales') {
    targetOrg = organizations.find(org =>
      org.name.toLowerCase().includes('sales')
    );
  } else if (chatRequest.department === 'support') {
    targetOrg = organizations.find(org =>
      org.name.toLowerCase().includes('support')
    );
  }

  return targetOrg?.id;
}

Metriche dell'organizzazione

CODICE_BLOCCO_14

Migliori pratiche

Memorizzazione nella cache

Elenco delle organizzazioni della cache per ridurre le chiamate API:

CODICE_BLOCCO_15

Gestione degli errori

async function getOrganizationsWithRetry(companyToken, retries = 3) {
  for (let i = 0; i < retries; i++) {
    try {
      return await getOrganizations(companyToken);
    } catch (error) {
      if (error.response?.status === 401) {
        throw new Error('Invalid or expired company token');
      }

      if (i === retries - 1) throw error;

      // Wait before retry
      await new Promise(resolve =>
        setTimeout(resolve, Math.pow(2, i) * 1000)
      );
    }
  }
}

Convalida

CODICE_BLOCCO_17

Risoluzione dei problemi

Elenco organizzazioni vuoto

  • Verificare che il token aziendale sia valido
  • Verifica che il token disponga dell'accesso all'organizzazione
  • Garantire che le organizzazioni esistano nell'account

Organizzazione non trovata

  • Verificare che l'ID dell'organizzazione sia corretto
  • Controlla che l'organizzazione non sia stata eliminata
  • Aggiorna l'elenco delle organizzazioni

401 Non autorizzato

  • Verificare che il token aziendale sia valido e non scaduto
  • Richiedi un nuovo token aziendale, se necessario
  • Verificare che il formato del token sia corretto

Passaggi successivi