Ottenere l’ID di una chat in Microsoft Teams (nuovo client): metodi, deep‑link e automazioni senza privilegi admin

Con il nuovo client di Microsoft Teams l’ID della chat non è più visibile nell’URL e, in alcune build desktop, manca “Copia link”. In questa guida pratica trovi 5 metodi affidabili per recuperare il chatId (1:1 o gruppi) e creare deep‑link riutilizzabili, anche senza privilegi amministrativi.

Indice

Perché oggi è più difficile ottenere l’ID di una chat

Nel client “nuovo Teams” l’interfaccia è stata riprogettata per essere più pulita e veloce, ma questo ha avuto un effetto collaterale: l’URL del browser non espone più direttamente l’identificativo della chat (chatId) e la voce Copia link nel menu … del messaggio, utile per molti scenari, in alcune versioni desktop è scomparsa o appare in modo intermittente. Per chi non ha privilegi di amministratore — e quindi non può ricorrere al modulo PowerShell di Teams — servono strade alternative, semplici e soprattutto ripetibili.

Cos’è il chatId e perché ti serve

Il chatId è la chiave che identifica in modo univoco una conversazione in Teams (1:1 o di gruppo). È il pezzo che ti consente di:

  • Creare deep‑link per aprire una chat o un messaggio preciso da SharePoint, e‑mail, Planner, documentazione interna, ecc.
  • Automatizzare flussi in Power Automate (es. log delle chat, notifiche incrociate, archiviazione metadati).
  • Fare troubleshooting avanzato (riconcilio eventi, audit, correlazioni con ID di messaggi).

Nella maggior parte dei casi il formato di un chatId appare come 19:<payload>@thread.v2. Il prefisso 19: e il suffisso @thread.v2 segnalano un thread di chat “moderno”.

Metodi rapidi a confronto

#MetodoDove funzionaPassaggi essenzialiVantaggi / Limiti
1Copia link a messaggio✔ Desktop (finché disponibile)
✔ Web (ancora presente)
Apri la chat ► sui tre puntini … di un messaggio ► Copia link. Nell’URL copiato l’ID è la stringa fra message/19%3a e %40thread.Rapidissimo, zero strumenti. Funziona anche per “Copia link al canale”. ✘ In alcune build desktop l’opzione non appare.
2Power Automate – Trigger su messaggi (idea di Ana)✔ Qualsiasi interfacciaCrea un flow con trigger When a new message is posted in a chat. Aggiungi azioni per salvare in una lista SharePoint: nome chat, chatId, deep‑link.Cattura automaticamente tutte le chat con pochi clic. ✘ Richiede un account con Power Automate (incluso/seeded o gratuito/paid).
3Power Automate – Azione “Post message in a chat or channel” (work‑around di Zac)✔ Interfaccia web di Power AutomateIn un flow (nuovo o esistente) inserisci l’azione, seleziona la chat dal menu, poi apri Peek/Code view: nel JSON il campo recipient contiene il chatId. Copialo, quindi elimina l’azione (o l’intero flow).Semplice e visuale. Utile quando manca “Copia link”. ✘ Serve licenza/tenant che consenta il connettore Teams.
4Strumenti di sviluppo del browser (suggerimento di Doug)✔ Web app di TeamsPremi F12 / Ctrl + Shift + I ► Inspect. Con il selettore clicca il nome della chat. Nel markup HTML, l’attributo id= del div include qualcosa come chat-19:<ID>@thread.v2.Nessun servizio esterno. ✘ Meno intuitivo: richiede confidenza con DevTools.
5Tornare a “Copia link” via Web (nota di Dom)✔ Web appSe il client desktop non mostra l’opzione, apri la web app: il menu … di un messaggio espone ancora Copia link.È il metodo più rapido se preferisci l’interfaccia browser.

Guida pratica ai metodi

Copia link a messaggio

Quando usarlo: è il primo tentativo da fare. Non servono strumenti, permessi o configurazioni particolari.

  1. Apri la chat di interesse in Teams (desktop o web).
  2. Passa il mouse su un messaggio qualsiasi e clicca sui tre puntini … ► Copia link.
  3. Incolla l’URL in un editor di testo.
  4. Individua il tratto message/19%3a e copia tutto fino a %40thread escluso.

Esempio

https://teams.microsoft.com/l/message/19%3aabc123XYZ%40thread.v2/1710225334?tenantId=...

Il chatId percent‑encoded è 19%3aabc123XYZ%40thread.v2. Per leggerlo “pulito”:

  • %3a:
  • %40@

Risultato: 19:abc123XYZ@thread.v2.

Nota: se la voce Copia link non c’è nel desktop, passa alla web app (vedi metodo “Tornare a Copia link via Web”).

Power Automate – Trigger su messaggi

Quando usarlo: vuoi catturare in automatico tutti i chatId man mano che le persone scrivono, senza fare azioni manuali in Teams.

  1. In Power Automate, crea un cloud flow automatizzato.
  2. Scegli come trigger When a new message is posted in a chat (la localizzazione italiana può variare, ad es. “Quando viene pubblicato un nuovo messaggio in una chat”). Autentica il connettore Microsoft Teams.
  3. Aggiungi un’azione SharePoint ► Create item (o Dataverse/Excel) con colonne: Chat name, ChatId, MessageId, DeepLink, Autore, Timestamp.
  4. Nelle dinamiche del trigger cerca i campi come Chat Id / conversation id / message id. Inseriscili nelle colonne.
  5. Per il deep‑link al messaggio, costruisci una stringa (azione Compose o direttamente in SharePoint) sul modello qui sotto.

Template di espressione (Power Automate):

concat(
   'https://teams.microsoft.com/l/message/',
   <em>triggerOutputs()?['body/chatId']</em>,
   '/',
   <em>triggerOutputs()?['body/id']</em>,
   '?tenantId=',
   <em>variables('TenantId')</em>
)

Sostituisci i riferimenti ai campi in corsivo con quelli esatti del tuo connettore/trigger.

Vantaggi: in poche decine di minuti ottieni un inventario sempre aggiornato di chat e messaggi, sfruttabile da SharePoint o Power BI.

Power Automate – Azione “Post message in a chat or channel”

Quando usarlo: vuoi un recupero “spot” del chatId senza impostare trigger o liste.

  1. Apri o crea un flow (anche istantaneo). Aggiungi l’azione Post message in a chat or channel.
  2. Nel campo Recipient / Post in scegli Chat e seleziona la chat desiderata dal menu.
  3. Nell’angolo dell’azione clicca … ► Peek code (o Visualizza codice).
  4. Nel pannello JSON, cerca recipient o chatId. Troverai qualcosa di simile:
{
  "type": "OpenApiConnection",
  "inputs": {
    "host": { "connectionName": "teams", ... },
    "method": "post",
    "path": "/v3/conversations/{chatId}/activities",
    "body": {
      "recipient": {
        "chatId": "19:abc123XYZ@thread.v2"
      },
      "content": "Prova"
    }
  }
}

Copia il valore di chatId e, se non ti serve più, rimuovi l’azione o il flow. Tip: puoi usare questa tecnica anche per i canali: troverai channelId e/o teamId.

Strumenti di sviluppo del browser

Quando usarlo: non vuoi aprire Power Automate, oppure devi operare in un tenant bloccato su strumenti di terze parti.

  1. Apri la web app di Teams.
  2. Premi F12 (o Ctrl + Shift + I) per aprire i DevTools.
  3. Attiva il selettore di elementi (icona del mouse) e clicca sul nome della chat nella sidebar.
  4. Nel markup evidenziato, individua un div/li con attributo id o data-* che includa il pattern:
    chat-19:<qualcosa>@thread.v2.

In molte build l’ID DOM della riga selezionata contiene esplicitamente il chatId. In alternativa, sfrutta il pannello Network: filtra per “chat” o “messages” e osserva gli URL delle chiamate, spesso includono /chats/19:...@thread.v2.

Tornare a “Copia link” via Web

Quando usarlo: il desktop non mostra più la voce, ma vuoi restare su un flusso “point‑and‑click”.

  1. Apri teams.microsoft.com e autenticati.
  2. Apri la chat ► vai sul messaggio ► menu … ► Copia link.
  3. Estrai il chatId come descritto nel primo metodo.

Come costruire deep‑link riutilizzabili

Aprire un messaggio specifico in una chat

Struttura generale (i parametri possono variare in base al contesto):

https://teams.microsoft.com/l/message/&lt;ChatID&gt;/&lt;MessageID&gt;?tenantId=&lt;Tenant&gt;&amp;groupId=&lt;Group&gt;&amp;parentMessageId=&lt;ParentId&gt;
  • ChatID: il valore tipo 19:...@thread.v2.
  • MessageID: l’ID univoco del messaggio.
  • tenantId: consigliato nelle organizzazioni multi‑tenant o con utenti guest.
  • groupId: appare soprattutto nei link ai canali; in chat può essere assente.
  • parentMessageId: utile per evidenziare un messaggio “padre” di un thread.

Esempio

https://teams.microsoft.com/l/message/19:abc123XYZ@thread.v2/1710225334?tenantId=00000000-0000-0000-0000-000000000000

Avviare una chat pre‑compilata (basata su UPN)

Quando non ti serve un chatId specifico ma vuoi aprire la composer con destinatari pre‑selezionati:

https://teams.microsoft.com/l/chat/0/0?users=user1@contoso.com,user2@contoso.com

È utile in intranet, knowledge base e modelli di comunicazione. Ricorda che non è basato su chatId, quindi gli invii generano (o ri‑utilizzano) la chat corretta in base agli utenti.

Aprire direttamente una chat esistente via chatId

Teams non documenta un singolo formato universale per “apri chat per chatId”, ma in pratica i link al messaggio della chat sono la soluzione più robusta: portano comunque l’utente nella conversazione corretta. Se hai bisogno di una scorciatoia “neutra”, crea un deep‑link a un messaggio recente o, in alternativa, usa i jump link che puntano alla chat con parametri contestuali (ad es. tenantId).

Esempi concreti pronti da incollare

Modello riutilizzabile di deep‑link (Excel/SharePoint)

Supponi di avere le colonne [ChatID] e [MessageID] in una lista. Puoi creare la colonna DeepLink con questa formula (formato testo calcolato):

= "https://teams.microsoft.com/l/message/" &amp; [ChatID] &amp; "/" &amp; [MessageID] &amp; "?tenantId=00000000-0000-0000-0000-000000000000"

Espressione equivalente in Power Automate

concat(
  'https://teams.microsoft.com/l/message/', 
  items('Applytoeach')?['ChatID'], 
  '/', 
  items('Applytoeach')?['MessageID'], 
  '?tenantId=00000000-0000-0000-0000-000000000000'
)

Regex utili

  • Estrarre il ChatID da un link “Copia link” (encoded):
    message\/(19%3a[^%]+)%40thread
  • Estrarre il ChatID dopo decoding:
    message\/(19:[^\/\?]+@thread\.v2)
  • Trovare il ChatID nell’HTML della web app:
    id=["']chat-(19:[^"']+@thread\.v2)["']
  • Trovare il ChatID nel JSON del flow:
    "chatId"\s:\s"([^"]+)"

Automazioni pratiche con Power Automate

Ecco tre idee che sfruttano il chatId per creare valore subito:

  1. Registro centrale delle chat
    Trigger su nuovo messaggio ► scrivi in SharePoint: Chat name, chatId, MessageId, Autore, Data/ora, DeepLink. Puoi aggiungere regole DLP interne (es. chat con esterni).
  2. Bot di “salvataggio rapido”
    Bot/Command flow: quando reagisci con un’emoji specifica, il flow legge chatId e messageId e salva il deep‑link in una tabella (knowledge clipping personale o di team).
  3. Collegamenti incrociati con ticketing
    In un flow che crea ticket (es. da e‑mail), aggiungi un campo “Apri la chat” che costruisce il link al messaggio di riferimento in Teams.

Microsoft Graph: alternativa per chi può usare API

Se disponi di un token delegato o di un’app registrata, con i permessi Chat.Read (o superiori) puoi elencare tutte le chat con GET /me/chats. Non servono diritti amministrativi globali, ma è necessaria l’approvazione dei permessi da parte dell’utente (o dell’amministratore a seconda della policy). La risposta JSON include direttamente il id di ciascuna chat, ad esempio:

{
  "value": [
    {
      "id": "19:abc123XYZ@thread.v2",
      "topic": "Progetto Contoso",
      "chatType": "group"
    }
  ]
}

Puoi quindi combinare Graph con Power Automate (HTTP with Azure AD) o con script low‑code.

ID di canale vs. ID di chat

È fondamentale distinguere tra:

  • chatId: chat 1:1 o gruppo (19:...@thread.v2), deep‑link basati su /l/message/ o su UPN (/l/chat/0/0?users=).
  • channelId: canale di un team; i deep‑link ai canali e ai messaggi nei canali hanno formati diversi e possono richiedere anche teamId/groupId.

Per i canali, preferisci Copia link al canale oppure le API GET /teams/{teamId}/channels di Microsoft Graph.

Consigli di qualità, governance e sicurezza

  • Privacy: un chatId non rivela i contenuti, ma segnala l’esistenza di una conversazione. Trattalo come metadato interno e non condividerlo pubblicamente.
  • Tenant multipli: se operi con più tenant o utenti ospiti, includi sempre il tenantId nel deep‑link per prevenire errori di accesso.
  • Obsolescenza dei messaggi: cancellazioni o retention possono invalidare i link a messaggi specifici. In questi casi rimanda alla chat (o a un messaggio “ancora presente”).
  • Mobile: di norma i link https:// aprono l’app Teams nativa. Se il dispositivo offre scelta, seleziona l’app ufficiale per un’esperienza migliore.
  • Naming: se archivi le chat in SharePoint, salva anche un “nome parlante” (topic o partecipanti) per facilitare la ricerca umana.

Checklist veloce

  • Devi solo l’ID di una chat? → Copia link a un messaggio e decodifica %3a/%40.
  • Ti serve una rubrica completa di chatId? → Trigger Power Automate e scrittura in SharePoint/Dataverse.
  • Hai bisogno di un ID subito senza costruire flussi? → Azione “Post message…” + Peek code.
  • Niente Power Automate? → DevTools del browser in web app.
  • Desktop senza “Copia link”? → Apri la web app e usa il menu … del messaggio.

Appendice: estrazioni e trasformazioni

Estrarre il chatId con formule Excel

Da URL “Copia link” (encodato):

=LET(
  url;A2;
  inizio;RICERCA("message/19%3a";url)+LUNGHEZZA("message/");
  fine;RICERCA("%40thread";url);
  enc;STRINGA.ESTRAI(url;inizio;fine-inizio);
  SOSTITUISCI(SOSTITUISCI(enc;"%3a";":");"%40";"@")
)

Decodifica in Power Automate senza funzioni custom

replace(replace(<em>variables('EncodedChatId')</em>, '%3a', ':'), '%40', '@')

Validazione del formato

Una volta estratto, verifica che inizi con 19: e termini con @thread.v2. In caso contrario, ripeti l’estrazione o usa uno dei metodi alternativi.

Risoluzione dei problemi

  • Non vedo “Copia link” nel menu del messaggio
    Puoi essere su una build desktop dove la voce è nascosta. Apri la web app o usa Power Automate/DevTools.
  • Il link al messaggio restituisce errore
    Verifica tenantId, eventuali politiche di retention o se il messaggio è stato rimosso. Prova un altro messaggio nella stessa chat.
  • Il link apre la chat sbagliata
    Di solito dipende da un chatId troncato o da una decodifica incompleta (%3a e %40). Ricontrolla la stringa completa.
  • Sto lavorando su un canale, non su una chat
    Usa Copia link al canale o i metodi dedicati ai canali (servono channelId e teamId).
  • Non ho Power Automate
    Il metodo DevTools funziona senza licenze aggiuntive. In alternativa, chiedi a un collega con Power Automate di ricavare l’ID una tantum.

Riepilogo esecutivo

Anche senza PowerShell o privilegi elevati, recuperare l’ID di ogni chat in Teams è semplice e sostenibile. “Copia link” resta la via più veloce; Power Automate offre automazioni scalabili (trigger o work‑around con Peek code); la web app + DevTools è l’asso nella manica quando tutto il resto non è disponibile. Una volta ottenuto il chatId, i deep‑link diventano uno strumento potentissimo per flussi, SharePoint, ticketing e documentazione interna.

Appendice: domande frequenti

Il formato del mio chatId non è “19:…@thread.v2”, è normale?
Sì, in casi rari possono comparire varianti di versione (@thread.v2 è la più comune). Assicurati che l’ID provenga da una fonte affidabile (Copia link, DevTools, Power Automate, Graph).

Posso ottenere il chatId senza toccare Teams?
Se hai diritto a usare Microsoft Graph con Chat.Read, sì: GET /me/chats elenca i tuoi chatId senza aprire l’app.

Serve davvero il parametro tenantId?
In molte organizzazioni funziona anche senza, ma con utenti guest o più tenant è consigliato per aprire la conversazione nel contesto corretto.

Come collego un deep‑link a SharePoint senza che diventi “brutto”?
Usa una colonna Collegamento o costruisci l’URL in una colonna calcolata; in pagine di intranet racchiudi l’URL in un testo descrittivo (“Apri chat Progetto Contoso”).


Con questi metodi, anche senza PowerShell o ruoli da amministratore, puoi recuperare rapidamente gli ID delle chat e costruire deep‑link per automazioni, documentazione interna o semplici segnalibri.

Indice