mirror of
https://github.com/simstudioai/sim.git
synced 2026-04-06 03:00:16 -04:00
* feat(ashby): add webhook triggers with automatic lifecycle management * fix(ashby): address PR review comments - Restore mode: 'advanced' on updateName sub-block - Move action after spread in formatWebhookInput to prevent override - Remove generic webhook trigger (Ashby requires webhookType) * fix(ashby): throw on unknown triggerId, always include webhookType * fix(ashby): address PR review feedback - paramVisibility, stageType, json catch - Add paramVisibility: 'user-only' to apiKey extra field - Remove stageType from candidateStageChange/candidateHire outputs (TriggerOutput type conflict with 'type' field) - Add .catch() fallback to .json() parse in createAshbyWebhookSubscription - Fix candidateStageChange outputs to match actual Ashby application payload structure * fix(ashby): add missing applicationSubmit outputs, fix delete log branches - Add candidate, currentInterviewStage, job to applicationSubmit outputs - Split delete webhook log into ok/404/error branches for accurate logging * fix(ashby): drain response body on delete, clarify decidedAt description - Cancel unconsumed response body in ok/404 delete branches to free connections - Update decidedAt description to note it's typically null at offer creation * fix(ashby): eliminate double-logging, fix hiringTeam JSDoc - Remove pre-throw warn/error logs; catch block is single logging point - Remove hiringTeam from candidateHire JSDoc (TriggerOutput doesn't support arrays)
320 lines
13 KiB
TypeScript
320 lines
13 KiB
TypeScript
import { airtableWebhookTrigger } from '@/triggers/airtable'
|
|
import {
|
|
ashbyApplicationSubmitTrigger,
|
|
ashbyCandidateDeleteTrigger,
|
|
ashbyCandidateHireTrigger,
|
|
ashbyCandidateStageChangeTrigger,
|
|
ashbyJobCreateTrigger,
|
|
ashbyOfferCreateTrigger,
|
|
} from '@/triggers/ashby'
|
|
import {
|
|
attioCommentCreatedTrigger,
|
|
attioCommentDeletedTrigger,
|
|
attioCommentResolvedTrigger,
|
|
attioCommentUnresolvedTrigger,
|
|
attioListEntryCreatedTrigger,
|
|
attioListEntryDeletedTrigger,
|
|
attioListEntryUpdatedTrigger,
|
|
attioNoteCreatedTrigger,
|
|
attioNoteDeletedTrigger,
|
|
attioNoteUpdatedTrigger,
|
|
attioRecordCreatedTrigger,
|
|
attioRecordDeletedTrigger,
|
|
attioRecordMergedTrigger,
|
|
attioRecordUpdatedTrigger,
|
|
attioTaskCreatedTrigger,
|
|
attioTaskDeletedTrigger,
|
|
attioTaskUpdatedTrigger,
|
|
attioWebhookTrigger,
|
|
} from '@/triggers/attio'
|
|
import {
|
|
calcomBookingCancelledTrigger,
|
|
calcomBookingCreatedTrigger,
|
|
calcomBookingPaidTrigger,
|
|
calcomBookingRejectedTrigger,
|
|
calcomBookingRequestedTrigger,
|
|
calcomBookingRescheduledTrigger,
|
|
calcomMeetingEndedTrigger,
|
|
calcomRecordingReadyTrigger,
|
|
calcomWebhookTrigger,
|
|
} from '@/triggers/calcom'
|
|
import {
|
|
calendlyInviteeCanceledTrigger,
|
|
calendlyInviteeCreatedTrigger,
|
|
calendlyRoutingFormSubmittedTrigger,
|
|
calendlyWebhookTrigger,
|
|
} from '@/triggers/calendly'
|
|
import {
|
|
circlebackMeetingCompletedTrigger,
|
|
circlebackMeetingNotesTrigger,
|
|
circlebackWebhookTrigger,
|
|
} from '@/triggers/circleback'
|
|
import {
|
|
confluenceAttachmentCreatedTrigger,
|
|
confluenceAttachmentRemovedTrigger,
|
|
confluenceBlogCreatedTrigger,
|
|
confluenceBlogRemovedTrigger,
|
|
confluenceBlogUpdatedTrigger,
|
|
confluenceCommentCreatedTrigger,
|
|
confluenceCommentRemovedTrigger,
|
|
confluenceLabelAddedTrigger,
|
|
confluenceLabelRemovedTrigger,
|
|
confluencePageCreatedTrigger,
|
|
confluencePageMovedTrigger,
|
|
confluencePageRemovedTrigger,
|
|
confluencePageUpdatedTrigger,
|
|
confluenceSpaceCreatedTrigger,
|
|
confluenceSpaceUpdatedTrigger,
|
|
confluenceWebhookTrigger,
|
|
} from '@/triggers/confluence'
|
|
import { fathomNewMeetingTrigger, fathomWebhookTrigger } from '@/triggers/fathom'
|
|
import { firefliesTranscriptionCompleteTrigger } from '@/triggers/fireflies'
|
|
import { genericWebhookTrigger } from '@/triggers/generic'
|
|
import {
|
|
githubIssueClosedTrigger,
|
|
githubIssueCommentTrigger,
|
|
githubIssueOpenedTrigger,
|
|
githubPRClosedTrigger,
|
|
githubPRCommentTrigger,
|
|
githubPRMergedTrigger,
|
|
githubPROpenedTrigger,
|
|
githubPRReviewedTrigger,
|
|
githubPushTrigger,
|
|
githubReleasePublishedTrigger,
|
|
githubWebhookTrigger,
|
|
githubWorkflowRunTrigger,
|
|
} from '@/triggers/github'
|
|
import { gmailPollingTrigger } from '@/triggers/gmail'
|
|
import { googleFormsWebhookTrigger } from '@/triggers/googleforms'
|
|
import {
|
|
grainHighlightCreatedTrigger,
|
|
grainHighlightUpdatedTrigger,
|
|
grainRecordingCreatedTrigger,
|
|
grainRecordingUpdatedTrigger,
|
|
grainStoryCreatedTrigger,
|
|
grainWebhookTrigger,
|
|
} from '@/triggers/grain'
|
|
import {
|
|
hubspotCompanyCreatedTrigger,
|
|
hubspotCompanyDeletedTrigger,
|
|
hubspotCompanyPropertyChangedTrigger,
|
|
hubspotContactCreatedTrigger,
|
|
hubspotContactDeletedTrigger,
|
|
hubspotContactPrivacyDeletedTrigger,
|
|
hubspotContactPropertyChangedTrigger,
|
|
hubspotConversationCreationTrigger,
|
|
hubspotConversationDeletionTrigger,
|
|
hubspotConversationNewMessageTrigger,
|
|
hubspotConversationPrivacyDeletionTrigger,
|
|
hubspotConversationPropertyChangedTrigger,
|
|
hubspotDealCreatedTrigger,
|
|
hubspotDealDeletedTrigger,
|
|
hubspotDealPropertyChangedTrigger,
|
|
hubspotTicketCreatedTrigger,
|
|
hubspotTicketDeletedTrigger,
|
|
hubspotTicketPropertyChangedTrigger,
|
|
} from '@/triggers/hubspot'
|
|
import { imapPollingTrigger } from '@/triggers/imap'
|
|
import {
|
|
jiraIssueCommentedTrigger,
|
|
jiraIssueCreatedTrigger,
|
|
jiraIssueDeletedTrigger,
|
|
jiraIssueUpdatedTrigger,
|
|
jiraWebhookTrigger,
|
|
jiraWorklogCreatedTrigger,
|
|
} from '@/triggers/jira'
|
|
import {
|
|
lemlistEmailBouncedTrigger,
|
|
lemlistEmailClickedTrigger,
|
|
lemlistEmailOpenedTrigger,
|
|
lemlistEmailRepliedTrigger,
|
|
lemlistEmailSentTrigger,
|
|
lemlistInterestedTrigger,
|
|
lemlistLinkedInRepliedTrigger,
|
|
lemlistNotInterestedTrigger,
|
|
lemlistWebhookTrigger,
|
|
} from '@/triggers/lemlist'
|
|
import {
|
|
linearCommentCreatedTrigger,
|
|
linearCommentUpdatedTrigger,
|
|
linearCustomerRequestCreatedTrigger,
|
|
linearCustomerRequestUpdatedTrigger,
|
|
linearCycleCreatedTrigger,
|
|
linearCycleUpdatedTrigger,
|
|
linearIssueCreatedTrigger,
|
|
linearIssueRemovedTrigger,
|
|
linearIssueUpdatedTrigger,
|
|
linearLabelCreatedTrigger,
|
|
linearLabelUpdatedTrigger,
|
|
linearProjectCreatedTrigger,
|
|
linearProjectUpdateCreatedTrigger,
|
|
linearProjectUpdatedTrigger,
|
|
linearWebhookTrigger,
|
|
} from '@/triggers/linear'
|
|
import {
|
|
microsoftTeamsChatSubscriptionTrigger,
|
|
microsoftTeamsWebhookTrigger,
|
|
} from '@/triggers/microsoftteams'
|
|
import { outlookPollingTrigger } from '@/triggers/outlook'
|
|
import { rssPollingTrigger } from '@/triggers/rss'
|
|
import { slackWebhookTrigger } from '@/triggers/slack'
|
|
import { stripeWebhookTrigger } from '@/triggers/stripe'
|
|
import { telegramWebhookTrigger } from '@/triggers/telegram'
|
|
import { twilioVoiceWebhookTrigger } from '@/triggers/twilio_voice'
|
|
import { typeformWebhookTrigger } from '@/triggers/typeform'
|
|
import type { TriggerRegistry } from '@/triggers/types'
|
|
import {
|
|
webflowCollectionItemChangedTrigger,
|
|
webflowCollectionItemCreatedTrigger,
|
|
webflowCollectionItemDeletedTrigger,
|
|
webflowFormSubmissionTrigger,
|
|
} from '@/triggers/webflow'
|
|
import { whatsappWebhookTrigger } from '@/triggers/whatsapp'
|
|
|
|
export const TRIGGER_REGISTRY: TriggerRegistry = {
|
|
slack_webhook: slackWebhookTrigger,
|
|
airtable_webhook: airtableWebhookTrigger,
|
|
ashby_application_submit: ashbyApplicationSubmitTrigger,
|
|
ashby_candidate_stage_change: ashbyCandidateStageChangeTrigger,
|
|
ashby_candidate_hire: ashbyCandidateHireTrigger,
|
|
ashby_candidate_delete: ashbyCandidateDeleteTrigger,
|
|
ashby_job_create: ashbyJobCreateTrigger,
|
|
ashby_offer_create: ashbyOfferCreateTrigger,
|
|
attio_webhook: attioWebhookTrigger,
|
|
attio_record_created: attioRecordCreatedTrigger,
|
|
attio_record_updated: attioRecordUpdatedTrigger,
|
|
attio_record_deleted: attioRecordDeletedTrigger,
|
|
attio_record_merged: attioRecordMergedTrigger,
|
|
attio_note_created: attioNoteCreatedTrigger,
|
|
attio_note_updated: attioNoteUpdatedTrigger,
|
|
attio_note_deleted: attioNoteDeletedTrigger,
|
|
attio_task_created: attioTaskCreatedTrigger,
|
|
attio_task_updated: attioTaskUpdatedTrigger,
|
|
attio_task_deleted: attioTaskDeletedTrigger,
|
|
attio_comment_created: attioCommentCreatedTrigger,
|
|
attio_comment_resolved: attioCommentResolvedTrigger,
|
|
attio_comment_unresolved: attioCommentUnresolvedTrigger,
|
|
attio_comment_deleted: attioCommentDeletedTrigger,
|
|
attio_list_entry_created: attioListEntryCreatedTrigger,
|
|
attio_list_entry_updated: attioListEntryUpdatedTrigger,
|
|
attio_list_entry_deleted: attioListEntryDeletedTrigger,
|
|
calendly_webhook: calendlyWebhookTrigger,
|
|
calendly_invitee_created: calendlyInviteeCreatedTrigger,
|
|
calendly_invitee_canceled: calendlyInviteeCanceledTrigger,
|
|
calendly_routing_form_submitted: calendlyRoutingFormSubmittedTrigger,
|
|
calcom_booking_created: calcomBookingCreatedTrigger,
|
|
calcom_booking_cancelled: calcomBookingCancelledTrigger,
|
|
calcom_booking_rescheduled: calcomBookingRescheduledTrigger,
|
|
calcom_booking_requested: calcomBookingRequestedTrigger,
|
|
calcom_booking_rejected: calcomBookingRejectedTrigger,
|
|
calcom_booking_paid: calcomBookingPaidTrigger,
|
|
calcom_meeting_ended: calcomMeetingEndedTrigger,
|
|
calcom_recording_ready: calcomRecordingReadyTrigger,
|
|
calcom_webhook: calcomWebhookTrigger,
|
|
confluence_webhook: confluenceWebhookTrigger,
|
|
confluence_page_created: confluencePageCreatedTrigger,
|
|
confluence_page_updated: confluencePageUpdatedTrigger,
|
|
confluence_page_removed: confluencePageRemovedTrigger,
|
|
confluence_page_moved: confluencePageMovedTrigger,
|
|
confluence_comment_created: confluenceCommentCreatedTrigger,
|
|
confluence_comment_removed: confluenceCommentRemovedTrigger,
|
|
confluence_blog_created: confluenceBlogCreatedTrigger,
|
|
confluence_blog_updated: confluenceBlogUpdatedTrigger,
|
|
confluence_blog_removed: confluenceBlogRemovedTrigger,
|
|
confluence_attachment_created: confluenceAttachmentCreatedTrigger,
|
|
confluence_attachment_removed: confluenceAttachmentRemovedTrigger,
|
|
confluence_space_created: confluenceSpaceCreatedTrigger,
|
|
confluence_space_updated: confluenceSpaceUpdatedTrigger,
|
|
confluence_label_added: confluenceLabelAddedTrigger,
|
|
confluence_label_removed: confluenceLabelRemovedTrigger,
|
|
generic_webhook: genericWebhookTrigger,
|
|
github_webhook: githubWebhookTrigger,
|
|
github_issue_opened: githubIssueOpenedTrigger,
|
|
github_issue_closed: githubIssueClosedTrigger,
|
|
github_issue_comment: githubIssueCommentTrigger,
|
|
github_pr_opened: githubPROpenedTrigger,
|
|
github_pr_closed: githubPRClosedTrigger,
|
|
github_pr_merged: githubPRMergedTrigger,
|
|
github_pr_comment: githubPRCommentTrigger,
|
|
github_pr_reviewed: githubPRReviewedTrigger,
|
|
github_push: githubPushTrigger,
|
|
github_release_published: githubReleasePublishedTrigger,
|
|
github_workflow_run: githubWorkflowRunTrigger,
|
|
fireflies_transcription_complete: firefliesTranscriptionCompleteTrigger,
|
|
fathom_new_meeting: fathomNewMeetingTrigger,
|
|
fathom_webhook: fathomWebhookTrigger,
|
|
gmail_poller: gmailPollingTrigger,
|
|
grain_webhook: grainWebhookTrigger,
|
|
grain_recording_created: grainRecordingCreatedTrigger,
|
|
grain_recording_updated: grainRecordingUpdatedTrigger,
|
|
grain_highlight_created: grainHighlightCreatedTrigger,
|
|
grain_highlight_updated: grainHighlightUpdatedTrigger,
|
|
grain_story_created: grainStoryCreatedTrigger,
|
|
circleback_meeting_completed: circlebackMeetingCompletedTrigger,
|
|
circleback_meeting_notes: circlebackMeetingNotesTrigger,
|
|
circleback_webhook: circlebackWebhookTrigger,
|
|
jira_webhook: jiraWebhookTrigger,
|
|
jira_issue_created: jiraIssueCreatedTrigger,
|
|
jira_issue_updated: jiraIssueUpdatedTrigger,
|
|
jira_issue_deleted: jiraIssueDeletedTrigger,
|
|
jira_issue_commented: jiraIssueCommentedTrigger,
|
|
jira_worklog_created: jiraWorklogCreatedTrigger,
|
|
lemlist_webhook: lemlistWebhookTrigger,
|
|
lemlist_email_replied: lemlistEmailRepliedTrigger,
|
|
lemlist_email_opened: lemlistEmailOpenedTrigger,
|
|
lemlist_email_clicked: lemlistEmailClickedTrigger,
|
|
lemlist_email_sent: lemlistEmailSentTrigger,
|
|
lemlist_email_bounced: lemlistEmailBouncedTrigger,
|
|
lemlist_linkedin_replied: lemlistLinkedInRepliedTrigger,
|
|
lemlist_interested: lemlistInterestedTrigger,
|
|
lemlist_not_interested: lemlistNotInterestedTrigger,
|
|
linear_webhook: linearWebhookTrigger,
|
|
linear_issue_created: linearIssueCreatedTrigger,
|
|
linear_issue_updated: linearIssueUpdatedTrigger,
|
|
linear_issue_removed: linearIssueRemovedTrigger,
|
|
linear_comment_created: linearCommentCreatedTrigger,
|
|
linear_comment_updated: linearCommentUpdatedTrigger,
|
|
linear_project_created: linearProjectCreatedTrigger,
|
|
linear_project_updated: linearProjectUpdatedTrigger,
|
|
linear_cycle_created: linearCycleCreatedTrigger,
|
|
linear_cycle_updated: linearCycleUpdatedTrigger,
|
|
linear_label_created: linearLabelCreatedTrigger,
|
|
linear_label_updated: linearLabelUpdatedTrigger,
|
|
linear_project_update_created: linearProjectUpdateCreatedTrigger,
|
|
linear_customer_request_created: linearCustomerRequestCreatedTrigger,
|
|
linear_customer_request_updated: linearCustomerRequestUpdatedTrigger,
|
|
microsoftteams_webhook: microsoftTeamsWebhookTrigger,
|
|
microsoftteams_chat_subscription: microsoftTeamsChatSubscriptionTrigger,
|
|
outlook_poller: outlookPollingTrigger,
|
|
rss_poller: rssPollingTrigger,
|
|
stripe_webhook: stripeWebhookTrigger,
|
|
telegram_webhook: telegramWebhookTrigger,
|
|
typeform_webhook: typeformWebhookTrigger,
|
|
whatsapp_webhook: whatsappWebhookTrigger,
|
|
google_forms_webhook: googleFormsWebhookTrigger,
|
|
twilio_voice_webhook: twilioVoiceWebhookTrigger,
|
|
webflow_collection_item_created: webflowCollectionItemCreatedTrigger,
|
|
webflow_collection_item_changed: webflowCollectionItemChangedTrigger,
|
|
webflow_collection_item_deleted: webflowCollectionItemDeletedTrigger,
|
|
webflow_form_submission: webflowFormSubmissionTrigger,
|
|
hubspot_contact_created: hubspotContactCreatedTrigger,
|
|
hubspot_contact_deleted: hubspotContactDeletedTrigger,
|
|
hubspot_contact_privacy_deleted: hubspotContactPrivacyDeletedTrigger,
|
|
hubspot_contact_property_changed: hubspotContactPropertyChangedTrigger,
|
|
hubspot_company_created: hubspotCompanyCreatedTrigger,
|
|
hubspot_company_deleted: hubspotCompanyDeletedTrigger,
|
|
hubspot_company_property_changed: hubspotCompanyPropertyChangedTrigger,
|
|
hubspot_conversation_creation: hubspotConversationCreationTrigger,
|
|
hubspot_conversation_deletion: hubspotConversationDeletionTrigger,
|
|
hubspot_conversation_new_message: hubspotConversationNewMessageTrigger,
|
|
hubspot_conversation_privacy_deletion: hubspotConversationPrivacyDeletionTrigger,
|
|
hubspot_conversation_property_changed: hubspotConversationPropertyChangedTrigger,
|
|
hubspot_deal_created: hubspotDealCreatedTrigger,
|
|
hubspot_deal_deleted: hubspotDealDeletedTrigger,
|
|
hubspot_deal_property_changed: hubspotDealPropertyChangedTrigger,
|
|
hubspot_ticket_created: hubspotTicketCreatedTrigger,
|
|
hubspot_ticket_deleted: hubspotTicketDeletedTrigger,
|
|
hubspot_ticket_property_changed: hubspotTicketPropertyChangedTrigger,
|
|
imap_poller: imapPollingTrigger,
|
|
}
|