mirror of
https://github.com/twentyhq/twenty
synced 2026-04-21 13:37:22 +00:00
4.9 KiB
4.9 KiB
Changelog
[0.2.1] - 2025-11-03
Added
- Import status tracking: Added four new meeting fields to track import status and failure handling:
importStatus(SELECT) - Tracks SUCCESS, FAILED, PENDING, RETRYING statesimportError(TEXT) - Stores error messages when imports faillastImportAttempt(DATE_TIME) - Timestamp of the last import attemptimportAttempts(NUMBER) - Counter for number of import attempts
- Automatic failure tracking: Enhanced webhook handler to automatically create failed meeting records when processing fails
- Failed meeting formatter: Added
toFailedMeetingCreateInput()method to create standardized failed meeting records
Enhanced
- Meeting type definition: Extended
MeetingCreateInputtype with import tracking fields - Success status tracking: Successful meeting imports now automatically set
importStatus: 'SUCCESS'and track timestamps - Error handling: Webhook processing failures are now captured and stored as meeting records for visibility and potential retry
[0.2.0] - 2025-11-03
Changed
- Major refactoring: Split monolithic
receive-fireflies-notes.tsinto modular architecture:fireflies-api-client.ts- Fireflies GraphQL API integration with retry logictwenty-crm-service.ts- Twenty CRM operations (contacts, notes, meetings)formatters.ts- Meeting and note body formattingwebhook-handler.ts- Main webhook orchestrationwebhook-validator.ts- HMAC signature verificationutils.ts- Shared utility functionstypes.ts- Centralized type definitions
- Schema update: Changed Meeting
notesfield fromRICH_TEXTtoRELATIONtype linking to Note object - Enhanced participant extraction from multiple Fireflies API data sources (participants, meeting_attendees, speakers, meeting_attendance)
- Improved organizer email matching with name-based heuristics
- Updated note creation to use
bodyV2.markdownformat instead of legacybodyfield - Modernized Meeting object schema with proper link field types for transcriptUrl and recordingUrl
- Enhanced test suite with improved mocking for new modular structure
- Configuration optimization: Reduced default retry attempts from 30 to 5 with increased delay (120s) to better respect Fireflies API rate limits (50 requests/day for free/pro plans)
- Updated field setup script to support relation field creation with Note object
- Restructured exports: types now exported from
types.ts, runtime functions fromindex.ts - Updated import paths in action handlers to use centralized index exports
- Added TypeScript path mappings for
twenty-sdkin workspace configuration
Added
createNoteTargetmethod for linking notes to multiple participants- Support for extracting participants from extended Fireflies API response formats
- Better organizer identification logic matching email usernames to speaker names
axiosdependency for improved HTTP client capabilities- API subscription plan documentation highlighting rate limit differences (50/day vs 60/minute)
- Enhanced README with rate limiting guidance and configuration documentation
- Relation field creation support in field provisioning script
Fixed
- Note linking now properly associates a single note with multiple participants in 1:1 meetings
- Participant extraction handles missing email addresses gracefully
- Improved handling of various Fireflies participant data structures
- Test mocks updated to use string format for participants (
"Name <email>") matching Fireflies API response format - Test assertions updated to validate
bodyV2.markdowninstead of deprecatedbodyfield
[0.1.0] - 2025-11-02
Added
- HMAC SHA-256 signature verification for incoming Fireflies webhooks
- Fireflies GraphQL client with retry logic, timeout handling, and summary readiness detection
- Summary-focused meeting processing that extracts action items, sentiment, keywords, and transcript/recording links
- Scripted custom field provisioning via
yarn setup:fields - Local webhook testing workflow via
yarn test:webhook - Comprehensive Jest suite (15 tests) covering authentication, API integration, summary strategies, and error handling
Changed
- Replaced legacy JSON manifests with TypeScript configuration:
application.config.tsnow declares app metadata and configuration variablessrc/objects/meeting.tsdefines the Meeting object via@ObjectMetadatasrc/actions/receive-fireflies-notes.tsexports the Fireflies webhook action plus its runtime config
- Updated documentation (README, Deployment Guide, Testing) to reflect the new project layout and workflows
- Switched utility scripts to
tsxand aligned package management with the hello-world example
Fixed
- Resolved real-world Fireflies payload mismatch by adopting the minimal webhook schema
- Replaced body-based secrets with header-driven HMAC verification
- Ensured graceful degradation when summaries are pending or Fireflies is temporarily unavailable