Brohammad / Brohammad/VoxForge
Implement a Freshdesk ticketing adapter
- Dominant language
- Python
- Stars
- 4
- Forks
- 1
- Avg merge
- 5d 13m
- Merged PRs (30d)
- 10
Description
## Summary
Zendesk create/lookup exists with unit tests. Freshdesk is still a blocked stub (`Ticketing provider 'freshdesk' was removed`).
## Context
- Roadmap v1.0: Freshdesk adapter
- `src/voxforge/infrastructure/providers/support/factory.py`
- `src/voxforge/infrastructure/providers/support/zendesk.py` (pattern to follow)
- `docs/architecture/customer-support-tools.md`
- Env already has `FRESHDESK_DOMAIN` / `FRESHDESK_API_KEY` in config
## Scope
- [ ] Backend adapter: create ticket, lookup by id, lookup by customer email
- [ ] Carry conversation summary, replay URL, session id (same as Zendesk)
- [ ] Duplicate suppression if Freshdesk supports tags/unique keys
- [ ] Production validation when `TICKETING_PROVIDER=freshdesk`
- [ ] Unit tests (httpretty/respx/httpx mock, no live account required in PR CI)
- [ ] Docs: known-limitations, customer-support-tools, CHANGELOG
## Out of scope
Live sandbox proof can be a follow-up, same as Zendesk.
Contributor guide
Research direction
Start with src/voxforge/infrastructure/providers/support/zendesk.py and the provider selection in src/voxforge/infrastructure/providers/support/factory.py, then review docs/architecture/customer-support-tools.md. Add Freshdesk coverage for ticket creation, lookup by ID and customer email, and the listed conversation metadata using mocked HTTP tests. Done means provider validation works with TICKETING_PROVIDER=freshdesk and the known-limitations, architecture, and CHANGELOG documentation is updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 64/100