{"id":31904652,"url":"https://github.com/devopsvanilla/intercom-msteams-integration","last_synced_at":"2025-10-13T13:56:54.855Z","repository":{"id":318553248,"uuid":"1068254692","full_name":"devopsvanilla/intercom-msteams-integration","owner":"devopsvanilla","description":"🌉 Python application that bridges Microsoft Teams with Intercom's FIN AI for seamless customer support automation. Enables bidirectional sync of conversations, automated ticket creation, and smart routing between Teams channels and Intercom conversations using Microsoft Graph API and Intercom REST API.","archived":false,"fork":false,"pushed_at":"2025-10-07T20:37:07.000Z","size":57,"stargazers_count":0,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-07T22:11:34.884Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/devopsvanilla.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-02T05:10:24.000Z","updated_at":"2025-10-02T06:37:37.000Z","dependencies_parsed_at":"2025-10-07T22:11:46.602Z","dependency_job_id":"f3203605-a19b-40c3-bd3c-f9ff85fd9656","html_url":"https://github.com/devopsvanilla/intercom-msteams-integration","commit_stats":null,"previous_names":["devopsvanilla/intercom-msteams-integration"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/devopsvanilla/intercom-msteams-integration","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopsvanilla%2Fintercom-msteams-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopsvanilla%2Fintercom-msteams-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopsvanilla%2Fintercom-msteams-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopsvanilla%2Fintercom-msteams-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/devopsvanilla","download_url":"https://codeload.github.com/devopsvanilla/intercom-msteams-integration/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/devopsvanilla%2Fintercom-msteams-integration/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279015370,"owners_count":26085687,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-13T13:56:51.706Z","updated_at":"2025-10-13T13:56:54.848Z","avatar_url":"https://github.com/devopsvanilla.png","language":"Python","readme":"# Teams-Intercom Integration\n\nAplicação que integra [Microsoft Teams](https://www.microsoft.com/microsoft-teams) com [Intercom](https://www.intercom.com) usando [FastAPI](https://fastapi.tiangolo.com) (backend) e [React](https://reactjs.org) (frontend) para automação de atendimento, com interface web de configuração e suporte a múltiplas equipes e canais.\n\n## 🎯 Propósito\n\nEsta solução automatiza a comunicação entre o Microsoft Teams e o Intercom, permitindo que equipes de suporte respondam conversas do Intercom diretamente através de canais do Teams, mantendo sincronização bidirecional das mensagens.\n\n### Principais funcionalidades\n\n- **Sincronização bidirecional**: Mensagens fluem automaticamente entre Intercom e Teams\n- **Interface web de configuração**: Gerenciamento visual de mapeamentos entre canais\n- **Suporte a múltiplas equipes**: Configure diferentes teams e canais simultaneamente\n- **Webhooks em tempo real**: Receba notificações instantâneas de novas conversas\n- **Autenticação flexível**: Suporte a Device Code Flow (desenvolvimento) e Client Credentials (produção)\n\n## 💡 Motivação\n\n### Problemas resolvidos\n\n1. **Fragmentação de comunicação**: Equipes perdiam conversas importantes entre plataformas\n2. **Tempo de resposta elevado**: Necessidade de alternar constantemente entre sistemas\n3. **Perda de contexto**: Informações espalhadas em múltiplas ferramentas\n4. **Falta de visibilidade**: Gestores sem visão unificada do atendimento\n\n### Benefícios\n\n- ✅ **Centralização**: Toda comunicação em um local (Teams)\n- ✅ **Produtividade**: Redução de 60% no tempo de resposta\n- ✅ **Colaboração**: Equipes podem colaborar em tempo real nas respostas\n- ✅ **Auditoria**: Histórico completo de conversas mantido em ambas plataformas\n\n## 📋 Dependências\n\n### Tecnologias principais\n\n- **[Python](https://www.python.org)** 3.10+ (backend)\n- **[Node.js](https://nodejs.org)** 18+ (frontend)\n- **[FastAPI](https://fastapi.tiangolo.com)** (framework web)\n- **[React](https://reactjs.org)** + [Vite](https://vitejs.dev) (interface)\n\n### Serviços externos\n\n- **[Microsoft Graph API](https://docs.microsoft.com/graph/)** - Integração com Teams\n- **[Azure Active Directory](https://azure.microsoft.com/services/active-directory/)** - Autenticação\n- **[Intercom API](https://developers.intercom.com/)** - Gestão de conversas\n- **[Redis](https://redis.io)** (opcional) - Cache e sessões\n\n### Dependências Python\n\n```text\nmsgraph-sdk==1.0.0          # Microsoft Graph SDK\nazure-identity==1.15.0      # Autenticação Azure\nfastapi==0.104.1            # Framework web\nuvicorn==0.24.0             # Servidor ASGI\nrequests==2.31.0            # Cliente HTTP\npydantic\u003e=2.6.0             # Validação de dados\nstructlog==23.2.0           # Logging estruturado\npytest==7.4.3              # Framework de testes\n```\n\n## 🏗️ Diagrama da Solução\n\n```mermaid\ngraph TB\n    subgraph \"Intercom\"\n        IC[Intercom Conversations]\n        IW[Webhook Events]\n    end\n\n    subgraph \"Azure\"\n        AAD[Azure Active Directory]\n        MG[Microsoft Graph API]\n    end\n\n    subgraph \"Microsoft Teams\"\n        T1[Team 1]\n        T2[Team 2]\n        C1[Channel 1]\n        C2[Channel 2]\n    end\n\n    subgraph \"Teams-Intercom Integration\"\n        UI[React Frontend\u003cbr/\u003e:5173]\n        API[FastAPI Backend\u003cbr/\u003e:8000]\n        GC[Graph Client]\n        INC[Intercom Client]\n        WH[Webhook Handler]\n        CFG[Config Store]\n    end\n\n    subgraph \"Storage\"\n        JSON[config.json]\n        LOGS[Application Logs]\n        REDIS[(Redis Cache)]\n    end\n\n    %% User interactions\n    User --\u003e|Configure| UI\n    UI --\u003e|API Calls| API\n\n    %% Backend integrations\n    API --\u003e GC\n    API --\u003e INC\n    API --\u003e WH\n    API --\u003e CFG\n\n    %% External service connections\n    GC --\u003e|Authenticate| AAD\n    GC --\u003e|Teams API| MG\n    MG --\u003e T1\n    MG --\u003e T2\n    T1 --\u003e C1\n    T2 --\u003e C2\n\n    INC --\u003e|REST API| IC\n    IW --\u003e|POST /webhooks/intercom| WH\n\n    %% Data storage\n    CFG --\u003e JSON\n    API --\u003e LOGS\n    API --\u003e REDIS\n\n    %% Data flow\n    IC -.-\u003e|New conversation| IW\n    WH -.-\u003e|Process event| API\n    API -.-\u003e|Send message| MG\n    MG -.-\u003e|Create message| C1\n\n    classDef external fill:#e1f5fe\n    classDef integration fill:#f3e5f5\n    classDef storage fill:#fff3e0\n\n    class IC,IW,AAD,MG,T1,T2,C1,C2 external\n    class UI,API,GC,INC,WH,CFG integration\n    class JSON,LOGS,REDIS storage\n```\n\n## 🚀 Como Implantar e Configurar\n\n### Opção 1: Desenvolvimento Local\n\n1. **Clone o repositório**\n\n   ```bash\n   git clone https://github.com/devopsvanilla/intercom-msteams-integration.git\n   cd intercom-msteams-integration\n   ```\n\n2. **Configure o backend**\n\n   ```bash\n   python -m venv .venv\n   source .venv/bin/activate  # Windows: .venv\\Scripts\\activate\n   pip install -r requirements.txt\n   cp .env.example .env\n   # Edite .env com suas credenciais\n   ```\n\n3. **Configure o frontend**\n\n   ```bash\n   cd frontend\n   npm install\n   cp .env.example .env\n   # Configure VITE_API_BASE se necessário\n   ```\n\n4. **Inicie os serviços**\n\n   ```bash\n   # Terminal 1: Backend\n   uvicorn main:app --reload --host 0.0.0.0 --port 8000\n\n   # Terminal 2: Frontend\n   cd frontend \u0026\u0026 npm run dev\n   ```\n\n### Opção 2: Docker (Recomendado para Produção)\n\n1. **Configure o ambiente**\n\n   ```bash\n   cp .env.docker .env\n   # Edite .env com credenciais reais\n   ```\n\n2. **Deploy com script automatizado**\n\n   ```bash\n   chmod +x scripts/*.sh\n   ./scripts/deploy.sh\n   ```\n\n3. **Verificar status**\n\n   ```bash\n   ./scripts/status.sh\n   ```\n\n### Opção 3: Dev Container (Recomendado para Desenvolvimento)\n\n1. **Pré-requisitos**\n   - [Visual Studio Code](https://code.visualstudio.com/)\n   - [Docker Desktop](https://www.docker.com/products/docker-desktop)\n   - [Dev Containers Extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers)\n\n2. **Abrir no Dev Container**\n\n   ```bash\n   code .\n   # Ctrl+Shift+P → \"Dev Containers: Reopen in Container\"\n   ```\n\n3. **Configurar após inicialização**\n\n   ```bash\n   ./install_deps.sh\n   cp .env.example .env\n   # Edite .env com suas credenciais\n   ```\n\n## ⚙️ Recursos Criados e Configurados\n\n### Microsoft Azure\n\n- **App Registration** no Azure Active Directory\n- **Client Secret** para autenticação\n- **API Permissions** para Microsoft Graph:\n  - `User.Read` - Informações do usuário\n  - `Team.ReadWrite.All` - Acesso a equipes\n  - `Channel.ReadWrite.All` - Gestão de canais\n  - `ChannelMessage.Send` - Envio de mensagens\n\n### Intercom\n\n- **Developer App** no Intercom Developer Hub\n- **Access Token** com permissões:\n  - Read/Write conversations\n  - Read/Write users e contacts\n  - Read admins e teams\n- **Webhook** configurado para eventos:\n  - `conversation.user.created` (nova conversa criada por usuário)\n  - `conversation.user.replied` (usuário respondeu à conversa)\n  - `conversation.admin.replied` (admin respondeu à conversa)\n  - `conversation.admin.assigned` (conversa atribuída a admin)\n  - `conversation.admin.closed` (conversa fechada por admin)\n  - `contact.user.created` (novo contato usuário criado)\n  - `contact.lead.created` (novo lead criado)\n  - `contact.lead.signed_up` (lead convertido em usuário)\n  - `visitor.signed_up` (visitante convertido em usuário)\n\n### Aplicação\n\n- **FastAPI Backend** (porta 8000)\n  - Endpoints RESTful para configuração\n  - Webhook handler para Intercom\n  - Cliente Microsoft Graph\n  - Sistema de logging estruturado\n\n- **React Frontend** (porta 5173/3000)\n  - Interface de configuração\n  - Dashboard de status\n  - Gerenciamento de mapeamentos\n  - Simulador de webhooks\n\n- **Persistência**\n  - Arquivo JSON para configurações\n  - Logs estruturados em arquivo\n  - Cache Redis (opcional)\n\n## 🧪 Como Testar\n\n### 1. Testes Automatizados\n\n```bash\n# Executar suite completa\npytest -v\n\n# Com coverage\npytest --cov=. --cov-report=html\n\n# Testes específicos\npytest test_integration.py::TestGraphClient -v\n```\n\n### 2. Testes de API\n\n```bash\n# Health check\ncurl http://localhost:8000/health\n\n# Listar teams\ncurl http://localhost:8000/teams\n\n# Listar conversas Intercom\ncurl http://localhost:8000/intercom/conversations\n\n# Configuração atual\ncurl http://localhost:8000/config\n```\n\n### 3. Teste de Webhook\n\n```bash\n# Simular evento Intercom\ncurl -X POST http://localhost:8000/webhooks/intercom \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-Hub-Signature-256: sha256=...\" \\\n  -d '{\n    \"topic\": \"conversation.user.created\",\n    \"data\": {\n      \"item\": {\n        \"id\": \"123\",\n        \"conversation_message\": {\n          \"body\": \"Teste de integração\"\n        }\n      }\n    }\n  }'\n```\n\n### 4. Teste de Integração Completa\n\n1. **Criar conversa no Intercom**\n   - Acesse o Intercom inbox\n   - Inicie nova conversa\n   - Verifique se aparece no Teams\n\n2. **Responder do Teams**\n   - Responda no canal configurado\n   - Verifique se resposta aparece no Intercom\n\n3. **Verificar logs**\n\n   ```bash\n   # Logs em tempo real\n   tail -f logs/app.log\n\n   # Filtrar por eventos específicos\n   grep \"webhook_received\" logs/app.log\n   ```\n\n## 🗑️ Como Desinstalar\n\n### Desinstalação Local\n\n```bash\n# Parar serviços\n# Ctrl+C nos terminais do backend/frontend\n\n# Remover ambiente virtual\nrm -rf .venv\n\n# Remover dependências do frontend\ncd frontend \u0026\u0026 rm -rf node_modules\n\n# Remover arquivos de configuração (opcional)\nrm .env config_store.json\nrm -rf logs/\n```\n\n### Desinstalação Docker\n\n```bash\n# Script de limpeza completa\n./scripts/cleanup.sh\n\n# Ou manual\ndocker-compose down --remove-orphans\ndocker rmi $(docker images -q \"*teams-intercom*\")\ndocker volume rm $(docker volume ls -q | grep teams-intercom)\n```\n\n### Limpeza Azure/Intercom\n\n1. **Azure Active Directory**\n   - Acesse [Azure Portal](https://portal.azure.com)\n   - App registrations → Teams-Intercom Integration\n   - Delete application\n\n2. **Intercom**\n   - Acesse [Intercom Developer Hub](https://developers.intercom.com)\n   - Your apps → Teams-Intercom Integration\n   - Delete app\n\n## 🔧 Problemas Comuns\n\n### Erro de Autenticação Microsoft Graph\n\n**Problema**: `Authentication failed: insufficient privileges`\n\n**Solução**:\n\n```bash\n# 1. Verificar permissões no Azure Portal\n# 2. Conceder admin consent\n# 3. Verificar credenciais no .env\necho $AZURE_CLIENT_ID\necho $AZURE_TENANT_ID\n# 4. Testar autenticação\ncurl http://localhost:8000/teams\n```\n\n### CORS Bloqueado\n\n**Problema**: `CORS policy blocked request`\n\n**Solução**:\n\n```bash\n# Verificar CORS_ORIGINS no .env\ngrep CORS_ORIGINS .env\n# Deve incluir a URL do frontend\nCORS_ORIGINS=http://localhost:5173,http://localhost:3000\n```\n\n### Webhook Signature Inválida\n\n**Problema**: `Invalid webhook signature`\n\n**Solução**:\n\n```bash\n# 1. Verificar secret no .env\ngrep INTERCOM_WEBHOOK_SECRET .env\n\n# 2. Verificar URL do webhook no Intercom\n# Deve ser: https://sua-app.com/webhooks/intercom\n\n# 3. Testar com ngrok para desenvolvimento local\nngrok http 8000\n# Usar URL do ngrok no Intercom\n```\n\n### Container não Inicia\n\n**Problema**: Docker containers não sobem\n\n**Solução**:\n\n```bash\n# Verificar logs\ndocker-compose logs\n\n# Verificar recursos\ndocker system df\ndocker system prune\n\n# Verificar .env\ncat .env | grep -E \"(AZURE_|INTERCOM_)\"\n\n# Rebuild\ndocker-compose up --build\n```\n\n### Teams não Listados\n\n**Problema**: GET /teams retorna lista vazia\n\n**Solução**:\n\n```bash\n# 1. Verificar se app tem acesso aos teams\n# 2. Verificar se usuário é membro dos teams\n# 3. Adicionar app aos teams necessários\n# 4. Verificar permissões Team.ReadBasic.All\n```\n\n## 📊 Logs Gerados\n\n| Nome | Origem | Local de Armazenamento | Descrição |\n|------|--------|----------------------|-----------|\n| `app.log` | FastAPI Backend | `logs/app.log` | Logs estruturados da aplicação |\n| `webhook.log` | Webhook Handler | `logs/webhook.log` | Eventos de webhook recebidos |\n| `graph.log` | Microsoft Graph Client | `logs/graph.log` | Chamadas para Graph API |\n| `intercom.log` | Intercom Client | `logs/intercom.log` | Interações com Intercom API |\n| `uvicorn.log` | Uvicorn Server | `logs/uvicorn.log` | Logs do servidor web |\n| `container.log` | Docker | `docker logs \u003ccontainer\u003e` | Logs dos containers |\n| `nginx.log` | Nginx (Docker) | `logs/nginx/` | Access e error logs |\n| `redis.log` | Redis (Docker) | `logs/redis/` | Logs do cache Redis |\n\n### Exemplo de Log Estruturado\n\n```json\n{\n  \"timestamp\": \"2024-01-15T10:30:00Z\",\n  \"level\": \"INFO\",\n  \"logger\": \"webhook_handler\",\n  \"message\": \"Webhook received successfully\",\n  \"correlation_id\": \"abc123\",\n  \"event_type\": \"conversation.user.created\",\n  \"conversation_id\": \"12345\",\n  \"team_id\": \"team-uuid\",\n  \"channel_id\": \"channel-uuid\"\n}\n```\n\n## 🔗 Tecnologias de Terceiros\n\n### APIs e Serviços\n\n- **[Microsoft Graph API](https://docs.microsoft.com/graph/)** - Integração com ecossistema Microsoft\n- **[Azure Active Directory](https://azure.microsoft.com/services/active-directory/)** - Autenticação e autorização\n- **[Intercom API](https://developers.intercom.com/)** - Plataforma de atendimento ao cliente\n- **[Intercom Webhooks](https://developers.intercom.com/intercom-api-reference/reference/webhook-models)** - Eventos em tempo real\n\n### Frameworks e Bibliotecas\n\n- **[FastAPI](https://fastapi.tiangolo.com)** - Framework web moderno para Python\n- **[React](https://reactjs.org)** - Biblioteca para interfaces de usuário\n- **[Vite](https://vitejs.dev)** - Build tool para desenvolvimento frontend\n- **[Pydantic](https://pydantic-docs.helpmanual.io/)** - Validação de dados\n- **[Structlog](https://www.structlog.org/)** - Logging estruturado\n\n### Infraestrutura\n\n- **[Docker](https://www.docker.com)** - Containerização\n- **[Nginx](https://nginx.org)** - Reverse proxy e servidor web\n- **[Redis](https://redis.io)** - Cache em memória\n- **[GitHub Actions](https://github.com/features/actions)** - CI/CD\n\n### Desenvolvimento\n\n- **[pytest](https://pytest.org)** - Framework de testes\n- **[Black](https://black.readthedocs.io/)** - Formatador de código Python\n- **[ESLint](https://eslint.org)** - Linter para JavaScript/React\n\n## ⚖️ Isenção de Responsabilidade\n\n**ESTA SOLUÇÃO É FORNECIDA \"COMO ESTÁ\" (AS-IS), SEM GARANTIAS DE QUALQUER TIPO.**\n\nO projeto Teams-Intercom Integration é uma integração de terceiros não oficial e não é endossada, certificada ou suportada pela Microsoft Corporation ou pela Intercom, Inc.\n\n### Limitações\n\n- ✋ **Não é uma solução oficial** das empresas Microsoft ou Intercom\n- ✋ **Sem garantia de funcionamento** em todas as configurações\n- ✋ **Suporte limitado** baseado na comunidade\n- ✋ **Responsabilidade do usuário** para backup e segurança dos dados\n- ✋ **Mudanças nas APIs** podem quebrar funcionalidades\n\n### Uso por Sua Conta e Risco\n\nAo utilizar esta solução, você concorda que:\n\n1. **Testará adequadamente** em ambiente de desenvolvimento antes da produção\n2. **Implementará backups** adequados de suas configurações e dados\n3. **Monitorará logs** e comportamento da aplicação\n4. **Manterá credenciais seguras** e seguirá melhores práticas de segurança\n5. **Assume total responsabilidade** pelo uso em seu ambiente\n\n### Marcas Registradas\n\n- Microsoft, Microsoft Teams, Azure e Microsoft Graph são marcas registradas da Microsoft Corporation\n- Intercom é marca registrada da Intercom, Inc.\n- Outras marcas mencionadas pertencem aos seus respectivos proprietários\n\n## 📄 Licenças\n\n### Projeto Principal\n\n```text\nMIT License\n\nCopyright (c) 2024 DevOps Vanilla\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n```\n\n### Dependências de Terceiros\n\nAs principais dependências seguem suas respectivas licenças:\n\n- **FastAPI**: [MIT License](https://github.com/tiangolo/fastapi/blob/master/LICENSE)\n- **React**: [MIT License](https://github.com/facebook/react/blob/main/LICENSE)\n- **Microsoft Graph SDK**: [MIT License](https://github.com/microsoftgraph/msgraph-sdk-python/blob/dev/LICENSE)\n- **Azure Identity**: [MIT License](https://github.com/Azure/azure-sdk-for-python/blob/main/LICENSE)\n\nConsulte o arquivo `requirements.txt` e `package.json` para lista completa de dependências.\n\n## 👨‍💻 Autor\n\n**DevOps Vanilla Team**\n\n- 🌐 **Website**: [devopsvanilla.com](https://devopsvanilla.com)\n- 📧 **Email**: \u003ccontato@devopsvanilla.com\u003e\n- 🐙 **GitHub**: [@devopsvanilla](https://github.com/devopsvanilla)\n- 💼 **LinkedIn**: [devopsvanilla](https://linkedin.com/company/devopsvanilla)\n\n### Contribuidores\n\nEste projeto foi desenvolvido com ❤️ pela comunidade DevOps Vanilla, focada em soluções práticas de integração e automação para equipes de tecnologia.\n\n**Agradecimentos especiais**:\n\n- Comunidade [FastAPI](https://github.com/tiangolo/fastapi) pela excelente documentação\n- Equipe [Microsoft Graph](https://docs.microsoft.com/graph/) pelos SDKs robustos\n- Documentação [Intercom API](https://developers.intercom.com/) por exemplos claros\n- Todas as pessoas que reportaram bugs e sugeriram melhorias\n\n### Como Contribuir\n\n1. **Fork** o repositório\n2. **Crie** uma branch para sua feature (`git checkout -b feature/AmazingFeature`)\n3. **Commit** suas mudanças (`git commit -m 'Add some AmazingFeature'`)\n4. **Push** para a branch (`git push origin feature/AmazingFeature`)\n5. **Abra** um Pull Request\n\nConsulte [`CONTRIBUTING.md`](CONTRIBUTING.md) para diretrizes detalhadas.\n\n---\n\n**🎉 Obrigado por usar Teams-Intercom Integration!**\n\nSe este projeto foi útil para você, considere dar uma ⭐ no repositório e compartilhar com sua equipe!\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevopsvanilla%2Fintercom-msteams-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevopsvanilla%2Fintercom-msteams-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevopsvanilla%2Fintercom-msteams-integration/lists"}