{"id":26678224,"url":"https://github.com/telexintegrations/telex-zendesk-integration","last_synced_at":"2025-03-26T05:15:14.948Z","repository":{"id":279060123,"uuid":"937131413","full_name":"telexintegrations/telex-zendesk-integration","owner":"telexintegrations","description":null,"archived":false,"fork":false,"pushed_at":"2025-02-23T13:48:07.000Z","size":21,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-23T14:33:19.714Z","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/telexintegrations.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}},"created_at":"2025-02-22T12:12:39.000Z","updated_at":"2025-02-23T13:48:10.000Z","dependencies_parsed_at":"2025-02-23T14:43:24.766Z","dependency_job_id":null,"html_url":"https://github.com/telexintegrations/telex-zendesk-integration","commit_stats":null,"previous_names":["telexintegrations/telex-zendesk-integration"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Ftelex-zendesk-integration","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Ftelex-zendesk-integration/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Ftelex-zendesk-integration/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/telexintegrations%2Ftelex-zendesk-integration/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/telexintegrations","download_url":"https://codeload.github.com/telexintegrations/telex-zendesk-integration/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245591533,"owners_count":20640692,"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","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-03-26T05:15:14.419Z","updated_at":"2025-03-26T05:15:14.933Z","avatar_url":"https://github.com/telexintegrations.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HNG12 Stage 3 - Telex Integration\n\n## Description\n\nThis is a RESTful API developed as part of the HNG12 internship Stage 3 task. The API integrates with Telex and Zendesk, allowing seamless data exchange between the two platforms. It retrieves and processes feedback data from Zendesk and formats it for use in the Telex system. The API is built using FastAPI for optimal performance, featuring robust error handling, authentication mechanisms, and dynamic response formatting.\n\nKey Features:\n\n- Fetch and process Zendesk feedback data\n- Token-based authentication for secure access\n- Dynamic date handling for created and updated timestamps\n- CORS support for cross-origin requests\n- Fast response time (\u003c 500ms)\n- JSON response format with proper error handling\n\n## Technologies Used\n\n- Python\n- FastAPI\n- Uvicorn\n- CORS Middleware\n\n## API Specification\n\n### Endpoint\nPOST /api/v1/integration.json\n\n### Request Format\n\nThe API expects a JSON request containing authentication and necessary parameters:\n```json\n{\n  \"auth_token\": \"your-auth-token\",\n  \"zendesk_ticket_id\": \"12345\"\n}\n```\n\n\n### Response Format\n\nThe API returns a JSON response with HTTP status code 200 OK:\n```json\n{\n  \"data\": {\n    \"date\": {\n      \"created_at\": \"2025-02-20\",\n      \"updated_at\": \"2025-02-20\"\n    },\n    \"feedback\": {\n      \"ticket\": \"created ticket\",\n      \"satisfaction_score\": \"Good\",\n      \"average_response_time\": \"3 hours\"\n    }\n  }\n}\n```\n\n### Response Codes\n\n- `200 OK` – Request successful\n\n- `400 Bad Request` – Invalid request parameters\n\n- `401 Unauthorized` – Invalid authentication token\n\n- `500 Internal Server Error` – Server issue\n\n\n## Local Development Setup\n\n### Prerequisites\n\nEnsure you have the following installed:\n\n- Python 3.x\n\n- pip\n\n### Steps to Set Up Locally\n\n1. **Clone the repository:**\n    ```sh\n    git clone https://github.com/BlessOnyi/hng12-stage3-telex.git\n    cd hng12-stage3-telex\n\n2. **Create and Activate a Virtual Environment:\n    python -m venv venv\n\n**Activate Environment**\n\n- source venv/bin/activate  # On macOS/Linux\n\n- venv\\Scripts\\activate  # On Windows\n\n3 **Install dependencies**\n    Run the following command to install all required dependencies:\n    ```sh\n    pip install -r requirements.txt\n\n4 **Run the development server:**\n\n-uvicorn main:app --reload\n\n-The API will be available at: https://tfklhl45-8000.uks1.devtunnels.ms/integration.json\nhttps://telex-zendesk-integration-one.vercel.app/integration.json\n\n\n## Pictorial representation of telex getting tickets from zendesk\n![alt text](image.png)\n\n## Deployment\n\n### To deploy this API using Vercel:\n1. **Install Vercel CLI:**  \n   ```sh\n   npm i -g vercel\n\n2. **Login to Vercel:**  \n   ```sh\n   vercel login\n\n\n3. **Deploy to Production:**\n   ```sh\n   vercel --prod\n\n\n## Installation\n4. **Install dependencies**  \n   Ensure you have requirements.txt. If you dont, Run the following command:\n   ```sh\n   pip install -r requirements.txt\n\n5. **Set the start command**\n  uvicorn main:app --host 0.0.0.0 --port $PORT\n\n### Environment Variables  \n- `PORT`: Server port (default: 8000)\n\nAUTH_TOKEN: API authentication token from Zendesk\n\n### The API is deployed at:\n\nhttps://telex-zendesk-integration-one.vercel.app/integration.json\nor \nhttps://tfklhl45-8000.uks1.devtunnels.ms/integration.json\n\n### Testing\n1. **Using Postman:**\n\n- Open Postman\n- Create a new GET request\n- Enter the URL: Deployed API URL\n- Send the request\n- Verify the JSON response matches the specified format\n\n2. **Performance:**\n- Response time: \u003c 500ms\n- Monitored using Vercel Analytics\n- Optimized for quick response through FastAPI's async capabilities\n\n\n### Backlink related to my chosen programming language/stack:\n[Hire Python Developers](https://hng.tech/hire/python-developers)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelexintegrations%2Ftelex-zendesk-integration","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftelexintegrations%2Ftelex-zendesk-integration","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftelexintegrations%2Ftelex-zendesk-integration/lists"}