-
Notifications
You must be signed in to change notification settings - Fork 5.5k
[TRIGGER] New Paperform Triggers #5700 #19214
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…ment methods, and introduce new sources for form submissions and partial submissions.
|
The latest updates on your projects. Learn more about Vercel for GitHub. 2 Skipped Deployments
|
WalkthroughAdds webhook lifecycle support and two instant webhook-based triggers to the Paperform integration: "New form submission" and "New partial form submission." Introduces shared base for webhook activation/deactivation and extends the app with createHook and deleteHook methods; updates package and source versions. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant Source as "Submission Source"
participant App as "Paperform App"
participant DB as "DB"
participant Paperform as "Paperform API"
participant Webhook as "Webhook Receiver"
User->>Source: Activate
Source->>App: createHook(formId, target_url, triggers)
App->>Paperform: POST /forms/{formId}/webhooks
Paperform-->>App: { id: webhookId, ... }
App-->>Source: webhook created
Source->>DB: _setWebhookId(webhookId)
DB-->>Source: stored
rect rgb(230,245,255)
Note over Paperform,Webhook: Event delivery
Paperform->>Webhook: POST event
Webhook->>Source: run({ body })
Source->>Source: parse body -> { id, summary, ts }
Source-->>User: Emit event
end
User->>Source: Deactivate
Source->>DB: _getWebhookId()
DB-->>Source: webhookId
Source->>App: deleteHook(webhookId)
App->>Paperform: DELETE /webhooks/{webhookId}
Paperform-->>App: success
App-->>Source: removed
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Pre-merge checks and finishing touches❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (3)
🧰 Additional context used🧠 Learnings (2)📚 Learning: 2024-07-24T02:06:47.016ZApplied to files:
📚 Learning: 2025-07-09T18:07:12.426ZApplied to files:
🧬 Code graph analysis (1)components/paperform/sources/common/base.mjs (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
🔇 Additional comments (3)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 5
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (8)
components/paperform/package.json(1 hunks)components/paperform/paperform.app.mjs(1 hunks)components/paperform/sources/common/base.mjs(1 hunks)components/paperform/sources/new-form-submission-instant/new-form-submission-instant.mjs(1 hunks)components/paperform/sources/new-form-submission-instant/test-event.mjs(1 hunks)components/paperform/sources/new-partial-form-submission-instant/new-partial-form-submission-instant.mjs(1 hunks)components/paperform/sources/new-partial-form-submission-instant/test-event.mjs(1 hunks)components/paperform/sources/new-submission/new-submission.mjs(1 hunks)
🧰 Additional context used
🧠 Learnings (3)
📚 Learning: 2024-10-10T19:18:27.998Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 14265
File: components/the_magic_drip/sources/common.mjs:35-43
Timestamp: 2024-10-10T19:18:27.998Z
Learning: In `components/the_magic_drip/sources/common.mjs`, when processing items in `getAndProcessData`, `savedIds` is intentionally updated with IDs of both emitted and non-emitted items to avoid emitting retroactive events upon first deployment and ensure only new events are emitted as they occur.
Applied to files:
components/paperform/sources/new-partial-form-submission-instant/new-partial-form-submission-instant.mjs
📚 Learning: 2024-07-24T02:06:47.016Z
Learnt from: GTFalcao
Repo: PipedreamHQ/pipedream PR: 12697
File: components/salesforce_rest_api/sources/common-webhook-methods.mjs:1-71
Timestamp: 2024-07-24T02:06:47.016Z
Learning: The `common-webhook-methods.mjs` object is designed to be extended, similar to an abstract class, and intentionally does not implement certain methods like `generateWebhookMeta` and `getEventType` to enforce implementation in subclasses.
Applied to files:
components/paperform/sources/new-partial-form-submission-instant/new-partial-form-submission-instant.mjscomponents/paperform/sources/common/base.mjscomponents/paperform/paperform.app.mjs
📚 Learning: 2025-10-20T01:01:02.970Z
Learnt from: js07
Repo: PipedreamHQ/pipedream PR: 18744
File: components/slack_v2/actions/send-large-message/send-large-message.mjs:49-64
Timestamp: 2025-10-20T01:01:02.970Z
Learning: In components/slack_v2/actions/send-large-message/send-large-message.mjs, the metadata_event_payload prop is typed as string, so the code only needs to handle string-to-JSON parsing and does not need to handle object inputs.
Applied to files:
components/paperform/sources/new-form-submission-instant/test-event.mjs
🧬 Code graph analysis (1)
components/paperform/sources/common/base.mjs (1)
components/paperform/sources/new-submission/new-submission.mjs (1)
ts(60-60)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (4)
- GitHub Check: Publish TypeScript components
- GitHub Check: pnpm publish
- GitHub Check: Verify TypeScript components
- GitHub Check: Lint Code Base
🔇 Additional comments (5)
components/paperform/package.json (1)
3-3: LGTM! Version bump is appropriate.The minor version increment correctly reflects the addition of new webhook management methods and event sources.
components/paperform/sources/new-submission/new-submission.mjs (1)
8-8: LGTM! Version bump maintains consistency.The patch version increment aligns with the package-level minor version bump.
components/paperform/paperform.app.mjs (1)
52-60: LGTM! Webhook creation method is well-structured.The method correctly constructs the webhook endpoint path and uses the POST method for resource creation.
components/paperform/sources/new-form-submission-instant/new-form-submission-instant.mjs (1)
1-24: LGTM! Clean implementation of the new submission trigger.The source correctly extends the common base and implements the required abstract methods (
getTriggersandgetSummary). The webhook trigger type "submission" aligns with Paperform's API.components/paperform/sources/new-partial-form-submission-instant/test-event.mjs (1)
1-27: LGTM! Test data accurately represents partial submissions.The null values for
submission_id,created_at,ip_address, andchargeappropriately reflect that partial submissions are incomplete and lack finalized metadata.
...aperform/sources/new-partial-form-submission-instant/new-partial-form-submission-instant.mjs
Show resolved
Hide resolved
For Integration QA: |
|
Hi everyone, all test cases are passed! Ready for release! Test reports
|
Resolves #5700
Summary by CodeRabbit
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.