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
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 | Sì | Gettone aziendale |
| "Accetta" | testo/semplice | Sì | 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:
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
- Autenticazione - Ottieni token aziendale
- Operatori - Gestisci gli operatori nelle organizzazioni
- Integrazione widget - Integra la chat per le organizzazioni