enhancementgood first issueintegrationnew-featurenew-integration
Repository metrics
- Stars
- (1,930 stars)
- PR merge metrics
- (PR metrics pending)
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