RedPlanetHQ / RedPlanetHQ/core
New Integration: Freshdesk
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2k
- Forks
- 194
- Avg merge
- 12m
- Merged PRs (30d)
- 2
Description
Description
Add Freshdesk integration to sync customer support tickets, contacts, and conversations into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/hubspot/- Similar CRM/support systemintegrations/linear/- Project management integration with ticket trackingintegrations/slack/- Messaging and conversation sync reference
Required Files Structure
integrations/freshdesk/
├── src/
│ ├── index.ts # Main entry, OAuth spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # Freshdesk API utilities
│ ├── account-create.ts # API key / OAuth setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
Freshdesk API Integration
OAuth Setup
- Use API Key authentication (Freshdesk uses API key-based auth via HTTP Basic Auth with API key as username and "X" as password)
- Base URL format:
https://{domain}.freshdesk.com/api/v2/ - Rate limit: Varies by plan (e.g., Blossom: 200/min, Garden: 400/min, Estate: 700/min, Forest: 1000/min)
Key Endpoints
GET /api/v2/tickets- List all ticketsGET /api/v2/tickets/{id}- Get a specific ticketGET /api/v2/tickets/{id}/conversations- Get ticket conversationsGET /api/v2/contacts- List all contactsGET /api/v2/contacts/{id}- Get a specific contactGET /api/v2/agents- List all agentsGET /api/v2/groups- List all groupsGET /api/v2/companies- List all companiesGET /api/v2/products- List all products
Events to Track
- Tickets - Created, updated, resolved, closed, reopened
- Conversations - Replies, notes, forwards added to tickets
- Contacts - New contacts created, contact updates
- Agents - Agent assignments, status changes
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement API key authentication flow in
account-create.ts - Create API utilities in
utils.tswith Freshdesk v2 API client - Implement sync logic in
schedule.tsfor tickets, contacts, conversations - Convert Freshdesk events to CORE activity format
- Add error handling and rate limiting (respect plan-specific limits)
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- Freshdesk API v2 uses REST with JSON responses
- Supports CORS for cross-origin requests
- Pagination via
pageandper_pagequery parameters (max 100 per page) - Supports filtering tickets by various fields (status, priority, created_at, updated_at)
- Use
updated_sinceparameter for incremental sync - Authentication: Base64 encode
{api_key}:Xfor Basic Auth header
Resources
Labels
enhancement, integration, new-feature
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing integrations/hubspot/, integrations/linear/, integrations/slack/, and integrations/github/src/index.ts. Review the required Freshdesk files and API endpoints, then determine how tickets, contacts, conversations, and events map to CORE activities. Done means the integration structure, authentication, incremental sync, pagination, rate limiting, documentation, and integrations/README.md entry are complete.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100