Hai bisogno di chiarire se Microsoft Teams impone un tetto al numero di Auto Attendant (AA) e se puoi gestirne 50, ciascuno con un proprio account di servizio? Sì: è possibile, e qui trovi limiti reali, progettazione, script e best practice per farlo in modo scalabile.
Risposta breve e chiara
- Nessun limite di piattaforma sul totale di Auto Attendant: allo stato attuale, Microsoft Teams non stabilisce un numero massimo di AAs per tenant. Puoi quindi crearne anche 50 (o più) senza violare un cap “globale”.
- Esistono limiti per il singolo AA: per ogni Auto Attendant valgono restrizioni di dettaglio (numero di opzioni per menu, profondità dei menu, dimensione della directory, numero di passaggi/“transitions” tra AAs e Call Queue, lunghezza/format dei prompt, ecc.). Questi limiti non impediscono la creazione di molti AAs, ma vanno considerati nella progettazione.
- Service account separati: è pienamente supportato associare un AA a un resource account dedicato (uno per ciascun AA), purché l’account disponga delle assegnazioni/licenze richieste (Teams Phone Resource Account) e, se serve la raggiungibilità da PSTN, un numero assegnato via Calling Plan, Operator Connect o Direct Routing.
Contesto: cosa si intende per Auto Attendant e resource account
In Microsoft Teams, un Auto Attendant è un’applicazione vocale che risponde alle chiamate in ingresso, riproduce saluti, offre un menu DTMF o riconoscimento vocale e instrada le chiamate verso persone, call queue, altri AAs o numeri esterni. Gli AAs sono pubblicati tramite resource account (account di servizio), ai quali si associa il numero telefonico del centralino automatico. Un tenant può avere molti resource account, e uno stesso AA può essere pubblicato da più numeri (cioè più resource account associati allo stesso AA), oppure puoi avere molti AAs ciascuno con il proprio account e numero.
Limiti effettivi che contano davvero
La domanda non è “quanti AAs posso creare in totale?”, bensì che cosa può fare ciascun AA e come si comporta quando concateno AAs e Call Queue. Di seguito, i limiti e i comportamenti che incidono sul design.
Numero totale di Auto Attendant
Non è previsto un limite “di tenant” che ti impedisca di crearne 50 o più. Quindi il progetto “50 AAs con 50 service account” è pienamente fattibile, a patto di gestire correttamente licenze, numerazione e governance.
Limiti per singolo AA (operativi e di configurazione)
- Menu e opzioni: tipicamente un menu accetta input DTMF 0–9 (dieci opzioni distinte), con possibilità di operator fallback, time-out e ripetizione del menu. La profondità dei sottomenu deve restare moderata per non impattare l’esperienza dell’utente (ed evitare passaggi eccessivi tra voci/applicazioni).
- Transizioni tra applicazioni: ogni chiamata può attraversare un numero finito di “hop” (AA → CQ → AA → …). Il sistema previene i loop eccessivi terminando o inviando a voce posta quando si supera una soglia interna. In pratica, progetta il flusso per non superare pochi passaggi ragionati.
- Directory (Dial by Name): puoi abilitare la ricerca per nome o cognome, eventualmente limitata a un gruppo/OU virtuale (scoping). In caso di ambiguità, l’AA propone un elenco limitato di corrispondenze.
- Prompt: sono supportati testo-voce (TTS) e file audio caricati. Usa file mono a campionamento telefonico (ad es. 16 kHz) per qualità/compatibilità, mantieni i saluti concisi e coerenti.
- Orari e festività: business hours, after hours e holiday schedule consentono flussi diversi secondo il calendario. Se devi gestire molte sedi/paesi, definisci calendari riusabili per ridurre la manutenzione.
- Regole antispam/antiloop: trasferimenti circolari o sprechi di tempo su menu infiniti vengono mitigati dalla piattaforma; progetta per evitare ricircoli.
Service account dedicati: licenze e numeri
- Licenza: per i resource account usa Teams Phone Resource Account (erede di “Phone System – Virtual User”). La licenza è specifica per queste entità e non è un utente umano.
- Numero PSTN: assegni un numero via:
- Calling Plan (numeri servizio Microsoft),
- Operator Connect (fornitore partner),
- Direct Routing (SBC di tua proprietà).
Blueprint: come mettere in produzione 50 Auto Attendant con un account dedicato ciascuno
Fase 1 — Naming, standard e requisiti
- Schema di naming (consigliato):
AA-<country>-<site>-<function>per l’Auto Attendant eRA-AA-<site>-<function>per il relativo resource account (es.AA-IT-MIL-FrontDeskeRA-AA-IT-MIL-FrontDesk). - Prompts: crea un repository centralizzato con file approvati (stessa voce, stesso gain), più versioni per lingue/brand; mantieni un foglio di mappatura “prompt → AA”.
- Orari: definisci template (es. “HQ-9-18”, “Retail-8-20”, “H24”) e holiday set riciclabili, per ridurre errori di configurazione.
Fase 2 — Licenze e numerazione
- Crea/assegna la licenza Teams Phone Resource Account ai 50 resource account.
- Per ogni account assegna il numero:
- Operator Connect/Direct Routing: assegna numeri forniti dal carrier/SBC.
- Calling Plan: usa numeri di servizio adeguati al volume e all’area geografica.
Fase 3 — Creazione dei resource account (PowerShell)
Esempio di script per creare 50 resource account e (facoltativamente) assegnare numeri:
# Prerequisiti: modulo MicrosoftTeams aggiornato e privilegi adeguati
Connect-MicrosoftTeams
CSV di input con colonne:
Name,UPN,DisplayName,Number,E164,PhoneNumberType
Dove Number/E164 può essere vuoto se il numero sarà assegnato in seguito
$aas = Import-Csv ".\aa_batch.csv"
AppId ufficiali (mantienili come costanti del tuo script)
$AppId_AutoAttendant = "ce933385-9390-45d1-9512-c8d228074e07"
$AppId_CallQueue = "11cd3e2e-fccb-42ad-ad00-878b93575e07" # utile se crei anche CQs
foreach ($aa in $aas) {
1) Crea il resource account per l'AA
$ra = New-CsOnlineApplicationInstance ` -UserPrincipalName $aa.UPN`
-DisplayName $aa.DisplayName `
-ApplicationId $AppId_AutoAttendant
2) (Opzionale) Assegna il numero se già disponibile
if ($aa.E164 -and $aa.PhoneNumberType) {
Set-CsPhoneNumberAssignment ` -Identity $aa.UPN`
-PhoneNumber $aa.E164 `
-PhoneNumberType $aa.PhoneNumberType # DirectRouting | OperatorConnect | CallingPlan
}
}
Fase 4 — Creazione degli Auto Attendant (PowerShell)
Di seguito un esempio minimalista di creazione dell’AA, con menu, prompt TTS e operatore. Adatta lingua e fuso orario secondo la sede.
# Esempio minimo: un menu principale con 3 opzioni + operatore
Dati di esempio
$aaName = "AA-IT-MIL-FrontDesk"
$language = "it-IT"
$timezone = "W. Europe Standard Time"
$operator = New-CsAutoAttendantCallableEntity -Identity "utente.operatore@contoso.com" -Type User
Prompt TTS di benvenuto
$welcome = New-CsAutoAttendantPrompt -TextToSpeechPrompt "Benvenuto. Per vendite premi 1, per assistenza premi 2, per parlare con un operatore premi 0."
Menu options (DTMF 1,2,0)
$op1Target = New-CsAutoAttendantCallableEntity -Identity "[cq-vendite@contoso.com](mailto:cq-vendite@contoso.com)" -Type CallQueue
$op2Target = New-CsAutoAttendantCallableEntity -Identity "[cq-supporto@contoso.com](mailto:cq-supporto@contoso.com)" -Type CallQueue
$opt1 = New-CsAutoAttendantMenuOption -Action TransferCallToTarget -DtmfResponse Tone1 -CallTarget $op1Target
$opt2 = New-CsAutoAttendantMenuOption -Action TransferCallToTarget -DtmfResponse Tone2 -CallTarget $op2Target
$opt0 = New-CsAutoAttendantMenuOption -Action TransferCallToOperator -DtmfResponse Tone0
$menu = New-CsAutoAttendantMenu -Name "Main" -Prompt $welcome -EnableDialByName $true -MenuOptions @($opt1,$opt2,$opt0)
$businessCF = New-CsAutoAttendantCallFlow -Name "BusinessHours" -Menu $menu
Crea l'AA
$newAA = New-CsAutoAttendant -Name $aaName -Language $language -TimeZone $timezone -CallFlows @($businessCF) -Operator $operator
Associa il resource account all'AA
$ra = Get-CsOnlineApplicationInstance -Identity "[RA-AA-IT-MIL-FrontDesk@contoso.com](mailto:RA-AA-IT-MIL-FrontDesk@contoso.com)"
New-CsOnlineApplicationInstanceAssociation -ConfigurationId $newAA.Identity -ConfigurationType AutoAttendant -Identifier $ra.ObjectId
Note operative:
- Le modifiche possono richiedere qualche minuto per propagarsi.
- Per saluti audio, sostituisci il prompt TTS con
New-CsAutoAttendantPrompt -AudioFilePrompt @{ ImportFromFile = "path\file.wav" }. - Se l’operatore è un numero esterno, usa un CallableEntity di tipo
ExternalPstncon E.164.
Fase 5 — Verifica e consegna
- Smoke test: chiama ogni numero, verifica saluti, DTMF, time-out e instradamento corretto.
- Test orari: simula fascia diurna/notturna/holiday (se possibile con override temporanei).
- Documentazione: genera una scheda per AA (numero, orari, prompt, destinazioni, owner funzionale).
Checklist licenze, numeri e configurazione
| Oggetto | Serve a | Dove | Note |
|---|---|---|---|
| Teams Phone Resource Account | Abilitare il resource account | Entra ID / Admin M365 | Licenza specifica per AA/CQ; non è una licenza utente. |
| Numero PSTN | Raggiungibilità dall’esterno | Operator Connect / Direct Routing / Calling Plan | Formato E.164; associare al resource account. |
| Orari & Festività | Smistamento per business hours | Teams Admin Center o PowerShell | Preferisci template riusabili per molte sedi. |
| Prompt (TTS/Audio) | Esperienza utente coerente | Teams Admin Center o PowerShell | Audio mono, livello coerente; script approvati. |
Progettazione del flusso: come evitare “hop” eccessivi
Per scalare oltre le decine di AAs, evita catene lunghe di trasferimenti. Un pattern robusto per 50 AAs è:
- AA Locale (per sede/brand): risponde, offre 2–3 opzioni essenziali, trasferisce a code o a un AA Master per servizi condivisi.
- AA Master (condiviso): gestisce servizi centrali (IT, HR, contabilità), linguaggi multipli e fallback.
- Call Queue per team operativi: ogni opzione di menu porta a una CQ con regole di distribuzione e timeout chiare.
Con questo approccio si riduce il numero di passaggi, si uniformano i prompt e si semplifica la manutenzione.
Esempio di matrice di routing
| AA | Orario | Opzione | Destinazione | Fallback |
|---|---|---|---|---|
| AA-IT-MIL-FrontDesk | Business Hours | 1 (Vendite) | CQ-Vendite-IT-MIL | AA-Master (Operatore) |
| AA-IT-MIL-FrontDesk | Business Hours | 2 (Supporto) | CQ-Supporto-IT | Voicemail di reparto |
| AA-IT-MIL-FrontDesk | After Hours | Timeout | Voicemail generica | Terminazione |
Monitoraggio, inventario e aggiornamenti in blocco
Quando gli AAs superano la decina, conviene automatizzare inventari e aggiornamenti.
# Elenco rapido degli AA con numeri associati
Connect-MicrosoftTeams
$aas = Get-CsAutoAttendant
$associations = Get-CsOnlineApplicationInstanceAssociation | Where-Object {$_.ConfigurationType -eq "AutoAttendant"}
$result = foreach ($aa in $aas) {
$linkedRAs = $associations | Where-Object {$*.ConfigurationId -eq $aa.Identity} |
ForEach-Object { $*.Identifier }
[PSCustomObject]@{
Name = $aa.Name
Identity = $aa.Identity
Language = $aa.Language
TimeZone = $aa.TimeZone
ResourceAcct = ($linkedRAs -join ";")
}
}
$result | Export-Csv ".\AA-Inventory.csv" -NoTypeInformation -Encoding UTF8
Per aggiornare un prompt o un orario su decine di AA, prepara un CSV con le colonne Name, PromptFile, TimeZone e applica Set-CsAutoAttendant in un loop, con log degli esiti.
Indicazioni operative aggiuntive (riassunto)
- Verifica licenze dei resource account: prima di creare 50 AAs, accertati di avere 50 resource account con licenza appropriata e (se richiesto) un numero PSTN assegnato via Calling Plan, Operator Connect o Direct Routing.
- Pianifica la gerarchia dei menu: i limiti sulle opzioni/transition ti spingono a distribuire il flusso in modo semplice e lineare, concatenando al più un AA “master”.
- Monitoraggio e reporting: usa Teams Admin Center e PowerShell per inventariare e aggiornare in blocco (prompt, orari, associazioni di numeri).
- Test prima della messa in produzione: allestisci un AA di prova con un service account dedicato; verifica routing, saluti vocali e failover, poi effettua la replica in lotti.
Best practice per l’esperienza del chiamante
- Tre opzioni bastano: non superare 3–5 opzioni principali per menu; il resto instradalo a un AA Master o a un operatore.
- Prompt corti: “Per vendite premi 1, per assistenza premi 2, per l’operatore premi 0” è più efficace di un testo prolisso.
- Operator fallback sempre presente: assegna uno 0 o una parola chiave (“operatore”) che porti a una destinazione viva o a una segreteria appropriata.
- Directory con scoping: limita la ricerca per nome a un gruppo/area quando possibile, così riduci ambiguità e tempo di permanenza in IVR.
- Coerenza multi-sede: stessa voce, stessa struttura di menu, stesse parole; cambia solo ciò che serve (lingua, opzioni locali).
Governance e sicurezza
- RBAC: assegna ruoli specifici (es. Teams Communications Administrator) per la gestione degli AAs; evita privilegi eccessivi a molti operatori.
- Change management: qualsiasi modifica ai menu impatta i clienti. Versiona i prompt, richiedi approvazioni e comunica i cambiamenti.
- Audit: conserva un registro con data, autore e dettaglio delle modifiche effettuate sugli AAs (script e file di log centralizzati).
FAQ operative
Posso avere più numeri sullo stesso AA? Sì: associa più resource account allo stesso Auto Attendant (utile per numeri locali differenziati che convergono sullo stesso flusso).
Posso concatenare AAs e Call Queue? Sì, è il pattern più comune: AA → CQ (con timeout verso operatore/voicemail) o AA → AA Master per servizi trasversali.
Quanto dura la propagazione delle modifiche? In genere alcuni minuti; progetta una finestra di change adeguata e prevedi un test finale.
Posso usare solo TTS? No, puoi caricare file audio. Mantieni formato telefonico (mono, campionamento adeguato) e livelli coerenti per evitare differenze percettibili.
Cosa succede se creo un loop involontario? La piattaforma applica salvaguardie; tuttavia la chiamata potrebbe terminare dopo troppi passaggi. Evitalo con design e test accurati.
Errore tipici da evitare
- Numeri non in E.164: formattazione errata impedisce routing esterno.
- Resource account senza licenza corretta: l’AA non è pubblicabile o non può ricevere chiamate PSTN.
- Prompt disomogenei: volume/tono diversi creano un effetto “patchwork”. Centralizza la produzione audio.
- Menu troppo profondi: aumentano il rischio di abbandono. Privilegia poche scelte e trasferimenti rapidi.
- Festività non aggiornate: i giorni speciali cambiano di anno in anno; aggiorna i calendari a inizio stagione.
Piano di test consigliato
- Reachability: chiamate da rete interna, cellulare e rete fissa esterna; verifica CLI e instradamento corretto.
- DTMF e riconoscimento vocale: prova tutte le opzioni; verifica comportamento su input non valido e su time-out.
- Business hours/After hours/Holiday: conferma saluti e destinazioni diverse per fascia oraria.
- Failover: simula lentezza o indisponibilità degli agenti nelle code; verifica fallback.
- Accessibilità: assicurati che i prompt siano chiari, con dizione semplice e velocità adeguata.
Conclusione
Se ti stai chiedendo se puoi creare e gestire 50 Auto Attendant su Microsoft Teams, ciascuno con il proprio account di servizio, la risposta è assolutamente sì. La piattaforma non pone un tetto al numero totale di AAs, ma richiede di rispettare limiti puntuali per ogni AA (menu, directory, passaggi tra applicazioni). Con licenze corrette, una buona progettazione dei flussi e l’automazione tramite PowerShell, 50 AAs non sono solo possibili: sono gestibili, coerenti e manutenibili nel tempo.
In sintesi operativa
- Nessun limite sul numero totale di AAs nel tenant.
- Limiti per singolo AA su menu, directory e passaggi.
- Service account separati pienamente supportati; cura licenze e numeri.
- Automazione per inventario e aggiornamenti in blocco.
- Test e governance per un’esperienza chiamante consistente.
Seguendo il blueprint di questo articolo puoi predisporre rapidamente una soluzione a 50 AAs, ciascuno con il suo resource account, allineata alle best practice di Teams Phone.
