Automatizzare l’inoltro di e‑mail da una shared mailbox verso Microsoft Teams e Planner con Power Automate

Vuoi trasformare la tua shared mailbox nella “inbox di squadra”? In questa guida realizzi un flusso Power Automate che, all’arrivo di un’e‑mail, pubblica automaticamente un post in un canale Microsoft Teams e crea una attività in Planner, con permessi, filtri, gestione allegati e governance.

Indice

Panoramica

L’obiettivo è far sì che la cassetta postale condivisa diventi la fonte di verità del team: ogni nuovo messaggio avvia un’automazione che informa subito il canale giusto in Teams e apre un task tracciabile in Planner. Il punto chiave è usare il trigger dedicato alle shared mailbox in Power Automate (connettore Office 365 Outlook), perché i trigger standard monitorano solo la posta dell’utente.

Schema logico del flusso

  • Trigger: “When a new email arrives in a shared mailbox” (Office 365 Outlook).
  • Azioni principali:
    • Teams → “Post message in a chat or channel”.
    • Planner → “Create a task” + “Update task details” per descrizione e riferimenti.
  • Opzionali e consigliate:
    • Recupero del web link al messaggio (Outlook “Get email (V3)”).
    • Salvataggio allegati su SharePoint/OneDrive e link nel post/nel task.
    • Condizioni, deduplicazione, notifiche d’errore e monitoraggio.

Prerequisiti e permessi

  • Accesso alla shared mailbox: almeno Full Access per leggere la posta. Se prevedi di inviare risposte a nome della cassetta, servirà anche Send As o Send on behalf.
  • Teams: devi essere membro del team e avere permesso di postare nel canale target.
  • Planner: devi essere membro del gruppo Microsoft 365 a cui appartiene il piano (lo stesso dietro al team).
  • Licenze: Power Automate standard incluso nella maggior parte dei piani Microsoft 365 Business/Enterprise; i connettori usati (Office 365 Outlook, Microsoft Teams, Planner, SharePoint/OneDrive) sono standard per lo scenario descritto.
  • Governance tenant: se non vedi il trigger per la shared mailbox, potrebbe essere disabilitato: chiedi verifica in Admin Center → Impostazioni di Power Automate/Connettori.

Guida passo‑passo

PassaggioCosa farePerché è rilevante
Apri Power AutomateVai su Power Automate+ CreaFlusso automatizzato (Automated flow). Dai un nome descrittivo (es. SharedMailbox → Teams+Planner).Teams non ha un routing nativo dalla shared mailbox; Power Automate è lo strumento cross‑app.
Seleziona il trigger giustoCerca When a new email arrives in a shared mailbox (Office 365 Outlook).I trigger generici “When a new email arrives (Vx)” leggono solo la posta personale.
Configura la shared mailboxNel campo Mailbox address inserisci l’indirizzo della cassetta condivisa. Se utile, imposta cartella, filtri per mittente/oggetto/importanza, e l’opzione “Con allegati”.Il flusso dev’essere puntato esplicitamente alla casella condivisa.
Recupera (opz.) il web link all’e‑mailAggiungi Get email (V3) (Office 365 Outlook). Imposta Message Id con l’ID del trigger e Original Mailbox Address con la shared mailbox. Servirà il campo Web link.Consente di inserire un riferimento diretto all’e‑mail nel post e nella task.
Pubblica su TeamsAggiungi Post message in a chat or channel (Teams). Seleziona Team e Channel. Nel messaggio usa Subject, From, BodyPreview e, se presente, il Web link.Il team viene informato in tempo reale, senza inoltri manuali.
Crea la task in PlannerAggiungi Create a task (Planner). Imposta Group Id e Plan Id (quelli del team). Titolo = oggetto e‑mail. Opzionale: bucket, scadenza, assegnatario.Ogni e‑mail diventa un’attività tracciabile con priorità e assegnazione.
Aggiungi descrizione e riferimentiSubito dopo, inserisci Update task details puntando alla Task Id creata. Compila Description con testo formattato e allega References (link all’e‑mail o ai file).Il task contiene contesto sufficiente per lavorare senza cercare l’e‑mail originale.
Gestisci gli allegati (opz.)Se HasAttachments = True, salva ogni allegato su SharePoint (libreria “Documenti” del team) con “Create file” e memorizza i link in una variabile da riusare in Teams/Planner.Gli allegati diventano condivisi e versionati, non più bloccati nella posta.
Filtri e deduplicazioneAggiungi una Condition su parole chiave/ mittente. Per evitare doppi inserimenti, usa l’InternetMessageId come chiave in una lista SharePoint o Dataverse.Solo i messaggi rilevanti generano azioni; niente duplicati.
Notifiche e monitoraggioInserisci uno Scope “On failure” con “Send me a Teams notification”. Abilita le notifiche delle esecuzioni non riuscite. Usa Flow checker e Run history per il debug.Individui subito permessi mancanti o mapping errati.

Dettaglio configurazione con esempi

Trigger: When a new email arrives in a shared mailbox

  • Mailbox address: la shared mailbox (es. progetti@contoso.com).
  • Folder: lascia Posta in arrivo o specifica una sottocartella (utile se vuoi instradare solo messaggi filtrati da regole di Outlook).
  • Include Attachments / Only with Attachments: attiva solo se devi usare gli allegati; ogni byte scaricato costa tempo.
  • From / Importance / Subject Filter: imposta filtri base per ridurre rumore (ad esempio Subject contains “URGENTE” o “Ticket”).

(Opzionale) Convertire il corpo e‑mail

Per il post in Teams normalmente basta BodyPreview (testo breve). Se vuoi testo più ricco, usa il campo Body (HTML) e riduci la lunghezza con un’espressione:

@{if(greater(length(triggerOutputs()?['body/Body']),4000),
concat(substring(triggerOutputs()?['body/Body'],0,4000),'…'),
triggerOutputs()?['body/Body'])}

In alternativa, posta un estratto e aggiungi il Web link dell’e‑mail per i dettagli.

Teams: Post message in a chat or channel

  • Post as / Post in: lascia impostazioni predefinite (flusso pubblica come utente connesso).
  • Team / Channel: seleziona il canale operativo (es. “Incidenti” o “Vendite Inbound”).
  • Messaggio: usa un template leggibile. Esempio:
📬 Nuova e‑mail in @{triggerOutputs()?['body/To']}
Oggetto: @{triggerOutputs()?['body/Subject']}
Da: @{triggerOutputs()?['body/From']}
Anteprima: @{triggerOutputs()?['body/BodyPreview']}

Apri messaggio: @{outputs('Getemail(V3)')?['body/webLink']}
Allegati: @{variables('LinksAllegati')} 

Se non usi Get email (V3), rimuovi la riga “Apri messaggio”. LinksAllegati è una variabile di tipo stringa in cui concatenerai i link dei file caricati su SharePoint/OneDrive.

Planner: Create a task + Update task details

  1. Create a task:
    • Group Id e Plan Id: seleziona il gruppo del team (di solito coincidono).
    • Title: @{triggerOutputs()?['body/Subject']}
    • Bucket Id: scegli “In arrivo”/“Da triage”.
    • Due date time: opzionale, puoi calcolarla (es. SLA di 48h).
    • Assignments: assegna di default a un ruolo (es. “PM di turno”).
  2. Update task details (usa la Task Id appena creata):
    • Description: incolla contesto (mittente, anteprima corpo, richieste). Esempio: Da: @{triggerOutputs()?['body/From']} Oggetto: @{triggerOutputs()?['body/Subject']} Anteprima: @{triggerOutputs()?['body/BodyPreview']} Riferimenti: - Email (OWA): @{outputs('Getemail(V3)')?['body/webLink']} - Allegati: @{variables('LinksAllegati')}
    • References: aggiungi la voce “Email originale” con l’URL preso da webLink e, se hai caricato file, un riferimento per ciascun allegato.

Gestione allegati (SharePoint/OneDrive)

Gli allegati arrivano con l’e‑mail, ma per collaborare è meglio salvarli in un repository condiviso:

  1. Aggiungi una Condition: @{equals(triggerOutputs()?['body/HasAttachments'], true)}.
  2. Nel ramo true, cicla gli allegati con Apply to each su Attachments.
  3. Per ogni allegato, usa Create file (SharePoint) nella libreria Documenti del team. Path consigliato: /Documenti/Inbox/@{formatDateTime(utcNow(),'yyyy/MM/dd')}/@{triggerOutputs()?['body/Subject']}/@{items('Applytoeach')?['Name']}
  4. Appena creato il file, concatena l’URL a una variabile LinksAllegati: set variable(LinksAllegati, concat(variables('LinksAllegati'), '- ', outputs('Create_file')?['body/Path'], '\n'))

In alternativa, usa OneDrive for Business se non hai ancora un Team/SharePoint dedicato.

Filtri condizionali e routing

  • Parole chiave: crea una condizione su Subject (es. contiene “URGENTE” o “RMA”).
  • Mittenti: gestisci in modo diverso mail interne/esterne con From.
  • Canali diversi: con uno Switch sull’oggetto, posta in canali distinti (es. “Vendite”, “Supporto”).
  • Silenziare autoreply: scarta messaggi con header tipo “Auto-Submitted” o oggetto “Out of office”.

Deduplicazione robusta

Se due flussi monitorano la stessa casella o se l’e‑mail viene spostata, rischi doppi task/post. Usa l’InternetMessageId come chiave univoca:

  1. Crea una lista SharePoint (o una tabella Dataverse) con colonna InternetMessageId univoca.
  2. All’avvio del flusso, Get items filtrando per InternetMessageId. Se trovi risultati, termina il flusso.
  3. Subito dopo i post/creazioni, registra l’ID nella lista (idempotenza garantita).

Notifiche di errore e resilienza

  • Racchiudi le azioni principali in uno Scope “Main”.
  • Aggiungi uno Scope “On failure” configurato con Run after = has failed, has timed out.
  • Nel ramo di errore, invia una Teams notification al canale amministrativo con l’error.message e il runId.

Impostazioni di performance

  • Concorrenza: se prevedi molti messaggi, abilita la concorrenza sull’Apply to each per gestire più allegati in parallelo.
  • Timeout e limiti: limita il testo nei post (Teams tende a troncare messaggi molto lunghi). Usa anteprime e link.
  • Polling del trigger: i trigger Outlook sono near‑real‑time ma possono introdurre qualche minuto di latenza; evita catene troppo lunghe.

Governance, sicurezza e manutenzione

  • Ambienti e soluzioni: crea il flusso dentro una Solution in un ambiente “Prod” e usa connection references per semplificare ALM.
  • Account di servizio: per processi critici usa un account di servizio dedicato (niente dipendenze dall’utente autore).
  • DLP: assicurati che Outlook, Teams, Planner e SharePoint stiano tutti nello stesso data group consentito dalle policy DLP.
  • Auditing: annota nei post e nei task l’InternetMessageId e l’Id del run per la tracciabilità.
  • Backup: esporta periodicamente la Solution; documenta mapping e canali.

Checklist di verifica prima della messa in produzione

  • ✔️ Il trigger è quello per shared mailbox e l’indirizzo è corretto.
  • ✔️ L’utente (o account di servizio) ha Full Access alla shared mailbox.
  • ✔️ Il flusso può postare nel canale target (sei membro del team?).
  • ✔️ Hai selezionato il Plan corretto in Planner e vedi il bucket desiderato.
  • ✔️ Esiste una deduplicazione basata su InternetMessageId.
  • ✔️ Gli allegati vengono salvati e i link sono leggibili dal team.
  • ✔️ Scope “On failure” con notifica attiva.
  • ✔️ Test con e‑mail reali (con e senza allegati, interne ed esterne).

Domande frequenti

Il trigger non parte: cosa verifico?

Controlla che l’indirizzo della shared mailbox sia esatto, che tu abbia Full Access, che il trigger non sia filtrato su cartelle vuote e che l’e‑mail non venga immediatamente spostata da regole lato server prima che il trigger la “veda”.

Ricevo “Forbidden” o “Mailbox not found”.

Mancano i permessi sulla cassetta o la casella è stata rinominata: chiedi all’amministratore di confermare l’assegnazione e il primary SMTP address.

Planner: “Plan not found / BadRequest”.

Di norma è un problema di appartenenza al gruppo Microsoft 365 del piano. Assicurati di essere membro del team/piano e che il piano selezionato esista.

Posso postare gli allegati direttamente nel messaggio Teams?

L’azione “Post message” non carica file nel canale. Carica gli allegati in SharePoint/OneDrive e incolla i link nel messaggio o usa un’azione “Post adaptive card” (se preferisci un layout più strutturato).

Serve una licenza premium?

No per i connettori usati (Outlook, Teams, Planner, SharePoint/OneDrive). Evita azioni/connector premium (es. conversioni HTML particolari) se vuoi restare su licenze standard.

Esempio di mapping campi (riassunto)

ElementoCampoValore consigliato
Teams – MessaggioBodyOggetto, Mittente, BodyPreview, link e allegati (se presenti)
Planner – TitoloTitle@{triggerOutputs()?['body/Subject']}
Planner – DescrizioneUpdate task details → DescriptionMittente, anteprima corpo, Web link e link allegati
Planner – RiferimentiUpdate task details → ReferencesVoce “Email originale” → webLink
DeduplicaChiaveInternetMessageId registrato in lista SharePoint/Dataverse

Best practice operative

  • Naming chiaro: prefissa azioni e variabili (es. MAIL, TEAMS, PLN_) per leggibilità.
  • Commenti nel flusso: usa le descrizioni delle azioni per documentare mapping e scelte.
  • Log applicativo: scrivi su una lista “LogInbox” (data, oggetto, esito, id run) per statistiche e audit.
  • Separazione dev/prod: costruisci il flusso in un ambiente “Dev”, poi esporta/importa come Solution in “Prod”.
  • Manutenzione: rivedi trimestralmente bucket, filtri e assegnazioni in base ai volumi reali.

Estensioni interessanti

  • Priorità automatica: se l’oggetto contiene “URGENTE” imposta priority = High in Planner e menziona @Team nel post (se le menzioni sono abilitate).
  • Auto‑assegnazione: mappa un round‑robin su un elenco di utenti o assegna in base alla parola chiave (“Fattura” → Finance).
  • Tag e categorie: se nella casella si usano categorie colore, trasportale come etichette di Planner (Label1..6).
  • Card adattive: sostituisci il post semplice con una Adaptive Card per layout più ricchi (richiede connettore/azioni compatibili).

Procedura sintetica “a colpo d’occhio”

  1. Crea un Automated flow in Power Automate.
  2. Seleziona il trigger When a new email arrives in a shared mailbox e imposta l’indirizzo della casella.
  3. (Opz.) Recupera l’e‑mail con Get email (V3) per ottenere il Web link.
  4. Posta su Teams con Post message in a chat or channel (Team/Canale corretti).
  5. Crea un task in Planner con Create a task e poi Update task details per descrizione e riferimenti.
  6. (Opz.) Salva gli allegati su SharePoint/OneDrive e aggiungi i link.
  7. Aggiungi Condition, deduplicazione e notifiche di errore.
  8. Testa con e‑mail di prova e monitora i run.

Conclusioni

Con questa configurazione, la mailbox condivisa smette di essere un imbuto opaco: ogni messaggio genera un post visibile nel canale giusto e una task actionabile in Planner. Il team riduce controlli manuali, traccia priorità e scadenze e abbassa drasticamente il rischio di e‑mail trascurate. Una volta stabilizzata, l’automazione può essere arricchita con regole di routing, adaptive card, SLA e dashboard analitiche, mantenendo comunque licenze standard e un’architettura semplice da amministrare.


Suggerimenti rapidi (recap)

  • Usa sempre il trigger per shared mailbox, non quello personale.
  • Mappa Subject, From, BodyPreview e (se possibile) il Web link.
  • Per la descrizione del task usa Update task details subito dopo la creazione.
  • Salva gli allegati in SharePoint/OneDrive e incolla i link nel post e nel task.
  • Implementa la deduplicazione con InternetMessageId.
  • Prevedi un ramo “On failure” con notifica Teams.

Tabella originale dei passaggi (estesa)

PassaggioCosa farePerché è rilevante
Apri Power AutomateCrea un nuovo flusso automatizzato.È lo strumento di orchestrazione cross‑app.
Seleziona il trigger giusto“When a new email arrives in a shared mailbox” (Office 365 Outlook).I trigger standard guardano solo la posta dell’utente.
Configura la mailbox condivisaInserisci l’indirizzo della shared mailbox e, se necessario, cartelle/filtri.Il flusso deve puntare esplicitamente alla casella condivisa.
Imposta le azioniTeams → “Post message in a chat or channel”; Planner → “Create a task” (+ “Update task details”).Definisci la catena di azioni successive al trigger.
Verifica permessi e licenzeFull Access alla shared mailbox; membership del team e del piano Planner; connettori standard.Senza permessi il flusso non può leggere/scrivere.
Salva, testa e monitoraEsegui test con e‑mail di prova; analizza il Run history.Correggi subito mapping o permessi mancanti.

Con questi passaggi la shared mailbox diventa la “torre di controllo” del tuo team: ogni nuovo messaggio produce visibilità immediata in Teams e una task lavorabile in Planner — senza più inoltri manuali.

Indice