https://github.com/matheusrodriguesdasilveira/salesforce_nodejs_integration
Este projeto é uma API RESTful desenvolvida com Node.js, TypeScript e Fastify, com integração ao Salesforce via jsforce. Seu principal objetivo é fornecer endpoints seguros e escaláveis para criação, leitura e atualização de contatos na plataforma Salesforce, facilitando a comunicação entre aplicações externas e o CRM.
https://github.com/matheusrodriguesdasilveira/salesforce_nodejs_integration
crm fastify jsforce nodejs salesforce typescript zod
Last synced: 2 months ago
JSON representation
Este projeto é uma API RESTful desenvolvida com Node.js, TypeScript e Fastify, com integração ao Salesforce via jsforce. Seu principal objetivo é fornecer endpoints seguros e escaláveis para criação, leitura e atualização de contatos na plataforma Salesforce, facilitando a comunicação entre aplicações externas e o CRM.
- Host: GitHub
- URL: https://github.com/matheusrodriguesdasilveira/salesforce_nodejs_integration
- Owner: MatheusRodriguesdaSilveira
- Created: 2025-06-11T12:56:30.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-17T17:58:54.000Z (about 1 year ago)
- Last Synced: 2025-09-03T01:39:11.626Z (10 months ago)
- Topics: crm, fastify, jsforce, nodejs, salesforce, typescript, zod
- Language: TypeScript
- Homepage:
- Size: 50.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Salesforce - Integração com Node.js
API RESTful para gestão de contatos no CRM Salesforce
---
# ☁ Salesforce integração com Node.js na gestão de contatos
Este projeto é uma **API RESTful** desenvolvida com **Node.js**, **TypeScript** e **Fastify**, com integração ao **Salesforce** via **Jsforce**.
Seu principal **objetivo** é fornecer **endpoints seguros e escaláveis** para **criação**, **leitura** e **atualização de contatos na plataforma Salesforce**, facilitando a comunicação entre aplicações externas e o CRM.
---
## 🚀 Funcionalidades
- ✅ Criar novos contatos no Salesforce
- ✅ Listar todos os contatos salvos
- ✅ Buscar um contato pelo ID
- ✅ Atualizar dados de um contato específico
---
## 🛠️ Tecnologias utilizadas
- **Node.js** – Ambiente de execução JavaScript
- **TypeScript** – Tipagem estática e mais robustez no desenvolvimento
- **Fastify** – Framework leve e rápido para APIs
- **Zod** – Validação de esquemas e dados
- **Salesforce** – Plataforma de CRM utilizada
- **Jsforce** – Biblioteca para integração com Salesforce via Node.js
---
## 📁 Estrutura de Pastas
```
src/
├─ @types/
│ └─ contact.ts # Tipagem personalizada para contatos
├─ config/
│ ├─ salesforce.ts # Configuração e autenticação com Salesforce
│ └─ schema.ts # Validações de entrada com Zod
├─ controller/
│ ├─ create-contact.controller.ts
│ ├─ get-contact-id.controller.ts
│ ├─ get-contacts.controller.ts
│ └─ update-contact.controller.ts
├─ service/
│ ├─ create-contact.service.ts
│ ├─ get-contact-id.service.ts
│ ├─ get-contacts.service.ts
│ └─ update-contact.service.ts
├─ route.ts # Definição das rotas da API
└─ server.ts # Inicialização do servidor Fastify
```
---
## 📜 Como rodar o projeto
```bash
# 1. Clonar o repositório
git clone https://github.com/MatheusRodriguesdaSilveira/Salesforce_NodeJs_Integration.git
# 2. Acessar a pasta do projeto
cd Salesforce_NodeJs_Integration
# 3. Instalar as dependências
npm install
# 4. Criar um arquivo .env com as credenciais do Salesforce
# Exemplo de conteúdo do .env:
# SF_USERNAME=seu-usuario
# SF_PASSWORD=sua-senha
# SF_LOGIN_URL=https://login.salesforce.com
# 5. Iniciar o servidor em modo desenvolvimento
npm run dev
```
---
## 📌 Observações
- Este projeto simula a rotina de uma profissional de serviços com agendamentos personalizados.
- Pode ser facilmente adaptado para **barbearias**, **clínicas de estética**, **fisioterapeutas**, **consultórios médicos**, entre outros.
---
## 🧠 Aprendizados
Durante o desenvolvimento deste projeto, os principais aprendizados foram:
- Integração completa com a API do Salesforce utilizando `jsforce`
- Estrutura de API escalável com separação de responsabilidades
- Boas práticas com Fastify + TypeScript
- Autenticação baseada em variáveis de ambiente
- Modelagem simples de dados com foco em reuso e clareza
- Criação de rotas RESTful seguindo padrões HTTP
- Validação de entrada com `zod` para evitar dados inválidos
---
## 📄 Licença
Este projeto está sob a licença **MIT**.
© 2025 - Matheus Rodrigues da Silveira
---
Feito com 💻 por Matheus Rodrigues