enhancementgood first issueintegrationnew-featurenew-integration
Repository metrics
- Stars
- (1,930 stars)
- PR merge metrics
- (Avg merge 3h 2m) (10 merged PRs in 30d)
Description
Description
Add SurveyMonkey integration to sync surveys, responses, collectors, and respondent data into CORE.
Reference Implementations
Existing Integrations (use as templates)
integrations/hubspot/- Similar customer data platform with OAuthintegrations/linear/- Project management integrationintegrations/slack/- For reference on OAuth flow
Required Files Structure
integrations/surveymonkey/
├── src/
│ ├── index.ts # Main entry, OAuth spec
│ ├── schedule.ts # Sync logic
│ ├── utils.ts # SurveyMonkey API utilities
│ ├── account-create.ts # OAuth setup
│ └── create-activity.ts # Activity formatting
├── package.json
├── tsup.config.ts
└── README.md
SurveyMonkey API Integration
OAuth Setup
- Use OAuth 2.0
- Developer Portal (US):
https://developer.surveymonkey.com/ - Developer Portal (EU):
https://developer.eu.surveymonkey.com/ - Required scopes: surveys_read, responses_read, collectors_read, users_read, contacts_read
- Base URL:
https://api.surveymonkey.com/v3
Key Endpoints
GET /v3/surveys- List all surveysGET /v3/surveys/{id}- Get survey detailsGET /v3/surveys/{id}/details- Get full survey with questionsGET /v3/surveys/{id}/responses/bulk- Get all responses for a surveyGET /v3/surveys/{id}/responses/{response_id}- Get a specific responseGET /v3/surveys/{id}/collectors- List collectors for a surveyGET /v3/collectors/{id}- Get collector detailsGET /v3/users/me- Get current user infoGET /v3/groups- List groupsGET /v3/contact_lists- List contact lists
Events to Track
- Surveys - Created, modified, deployed surveys
- Responses - New survey responses, completed responses
- Collectors - Collector creation, status changes (open/closed)
- Contacts - Contact list updates, new respondents
Implementation Tasks
- Set up basic integration structure following
integrations/github/src/index.tspattern - Implement OAuth 2.0 flow in
account-create.ts - Create API utilities in
utils.tswith SurveyMonkey v3 API client - Implement sync logic in
schedule.tsfor surveys, responses, collectors - Convert SurveyMonkey data to CORE activity format
- Add error handling and rate limiting
- Create integration documentation
- Add to
integrations/README.md
Technical Notes
- REST API v3 with JSON responses
- OAuth 2.0 authentication
- Pagination via
pageandper_pageparameters (configurable page size) - Separate US and EU data centers with different base URLs
- Rate limits apply per OAuth token
- Bulk response endpoint is most efficient for syncing all responses
- Supports webhooks for real-time response notifications
- Survey details endpoint returns full question structure needed to interpret responses
Resources
- SurveyMonkey API v3 Documentation
- SurveyMonkey Developer Portal
- SurveyMonkey API Help
- SurveyMonkey API Postman Collection
- SurveyMonkey Public API Docs (GitHub)
Labels
enhancement, integration, new-feature