Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/concaption/zoho-housecall-data-2-ways-sync
An automated integration system that synchronizes data between Zoho CRM and HouseCall Pro, streamlining customer, estimate, and employee management.
https://github.com/concaption/zoho-housecall-data-2-ways-sync
data-sync fastapi python zoho zoho-api zoho-crm
Last synced: 4 days ago
JSON representation
An automated integration system that synchronizes data between Zoho CRM and HouseCall Pro, streamlining customer, estimate, and employee management.
- Host: GitHub
- URL: https://github.com/concaption/zoho-housecall-data-2-ways-sync
- Owner: concaption
- Created: 2024-11-08T18:20:01.000Z (7 days ago)
- Default Branch: main
- Last Pushed: 2024-11-08T18:45:05.000Z (7 days ago)
- Last Synced: 2024-11-08T19:32:42.375Z (7 days ago)
- Topics: data-sync, fastapi, python, zoho, zoho-api, zoho-crm
- Language: Python
- Homepage:
- Size: 1.07 MB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: Readme.md
Awesome Lists containing this project
README
Zoho HouseCall Data Sync
An automated integration system that synchronizes data between Zoho CRM and HouseCall Pro, streamlining customer, estimate, and employee management.
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](https://github.com/concaption/zoho-housecall-data-2-ways-sync)
[![Open Source Love](https://badges.frapsoft.com/os/v3/open-source.png?v=103)](https://github.com/concaption/zoho-housecall-data-2-ways-sync)
[![MIT license](https://img.shields.io/badge/License-MIT-blue.svg)](https://github.com/concaption/zoho-housecall-data-2-ways-sync)## Features
- Webhook handling for both Zoho CRM and HouseCall Pro events
- Customer data synchronization
- Deal/Estimate management
- Automated lead source tracking
- Google Sheets integration for data logging
- OAuth2 authentication for Zoho CRM
- Comprehensive logging system## Prerequisites
- Python 3.10+
- Docker (optional)
- Zoho CRM account with API access
- HouseCall Pro account with API access
- Google Sheets API credentials## Installation
1. Clone the repository
2. Set up your virtual environment:```bash
make setup
```3. Install dependencies:
```bash
make install
```4. Copy `.env.example` to `.env` and fill in your credentials:
```env
PROJECT_NAME="Data Sync"
PROJECT_VERSION="0.1.0"
HOUSECALL_API_KEY="your_housecall_api_key"
ZOHO_CLIENT_ID="your_zoho_client_id"
ZOHO_CLIENT_SECRET="your_zoho_client_secret"
ZOHO_AUTH_CODE="your_zoho_auth_code"
ZOHO_REDIRECT_URI="your_redirect_uri"
```5. Copy `credentials.json.example` to `credentials.json` and fill in your Google Sheets API credentials
## Running the Application
### Local Development
```bash
make run
```### Using Docker
```bash
docker-compose up
```## Testing
Run the test suite:
```bash
make test
```## Project Structure
- `api/` - API route handlers
- `utils/` - Utility functions for Zoho, HouseCall Pro, and Google Sheets
- `schema/` - Pydantic models for data validation
- `config.py` - Application configuration
- `main.py` - FastAPI application entry point## API Endpoints
### Zoho CRM
- `POST /zoho/authenticate` - Authenticate with Zoho CRM
- `GET /zoho/refresh` - Refresh Zoho access token
- `POST /zoho/incoming` - Webhook endpoint for Zoho events### HouseCall Pro
- `POST /housecall/incoming` - Webhook endpoint for HouseCall Pro events
## Development
Format code:
```bash
make format
```Lint code:
```bash
make lint
```Run all checks:
```bash
make all
```## Contributing
1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request## License
This project is licensed under the MIT License - see the LICENSE file for details.
## Acknowledgments
- FastAPI
- Zoho CRM API
- HouseCall Pro API
- Google Sheets API```mermaid
graph TB
%% Title
title[Integration Architecture]
style title fill:none,stroke:none
subgraph Zoho CRM
Z1[Zoho CRM Events]:::zoho
Z2[Contacts]:::zoho
Z3[Deals]:::zoho
Z4[OAuth2 Auth]:::zoho
endsubgraph HouseCall Pro
H1[HouseCall Events]
H2[Customers]
H3[Estimates]
H4[Jobs]
H5[Lead Sources]
endsubgraph Integration Layer
W1[Webhook Handler]
S1[Data Sync Engine]
A1[Auth Manager]
L1[Logging System]
endsubgraph Storage
G1[Google Sheets]
T1[Token Storage]
end%% Event Flow
Z1 -->|Webhook| W1
H1 -->|Webhook| W1
%% Data Sync
W1 -->|Process Events| S1
S1 -->|Update| Z2
S1 -->|Update| Z3
S1 -->|Update| H2
S1 -->|Update| H3
S1 -->|Update| H4
S1 -->|Create/Update| H5%% Authentication
Z4 -->|Token| A1
A1 -->|Store| T1
%% Logging
S1 -->|Log Events| L1
L1 -->|Store| G1%% Styles
classDef zoho fill:#ff9999
classDef hcp fill:#99ff99
classDef integration fill:#9999ff
classDef storage fill:#ffff99class Z1,Z2,Z3,Z4 zoho
class H1,H2,H3,H4,H5 hcp
class W1,S1,A1,L1 integration
class G1,T1 storage
```Hire me at
[![Hire concaption on upwork: https://www.upwork.com/freelancers/concaption](https://img.shields.io/badge/UpWork-6FDA44?style=for-the-badge&logo=Upwork&logoColor=white)](https://www.upwork.com/freelancers/concaption)