n8n-nodes-formbase 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,7 +6,7 @@ Community node for [n8n](https://n8n.io) that starts workflows when a [formbase]
6
6
 
7
7
  - Trigger on completed submissions.
8
8
  - Trigger on abandoned submissions after a selected 12-hour, 1-day, 3-day, or 1-week idle window.
9
- - Load forms dynamically from every workspace available to the credential.
9
+ - Load forms dynamically from the workspace the credential is scoped to, across every page.
10
10
  - Register and remove formbase webhook subscriptions with the n8n workflow lifecycle.
11
11
  - Verify every webhook with HMAC-SHA256 and reject stale or forged requests.
12
12
  - Connect through workspace-scoped OAuth 2.1 with PKCE and automatic refresh-token rotation.
@@ -53,47 +53,45 @@ Import [`examples/formbase-submission.json`](examples/formbase-submission.json),
53
53
 
54
54
  ## Output
55
55
 
56
- Each webhook produces one n8n item containing formbase payload:
56
+ Each webhook produces one n8n item containing the formbase event envelope. Every answer appears once in `data.answers`, keyed by field key; `data.display` carries the human-readable text under the same keys:
57
57
 
58
58
  ```json
59
59
  {
60
- "eventId": "evt_abc123",
61
- "eventType": "SUBMIT_RESPONSE",
62
- "eventTimestamp": "2026-04-25T12:34:56.000Z",
63
- "form": {
64
- "id": "frm_abc123",
65
- "name": "Customer Feedback"
66
- },
67
- "submission": {
68
- "id": "sub_xyz789",
69
- "respondentEmail": "respondent@example.com",
70
- "submittedAt": "2026-04-25T12:34:56.000Z",
71
- "submissionPdfLink": "https://api.formbase.so/api/storage/...",
72
- "language": "en"
73
- },
74
- "fields": [
75
- {
76
- "fieldId": "fld_rating",
77
- "title": "How likely are you to recommend us?",
78
- "type": "rating",
79
- "value": {
80
- "raw": 9,
81
- "display": "9"
82
- }
83
- }
84
- ]
60
+ "id": "evt_abc123",
61
+ "type": "submission.completed",
62
+ "createdAt": "2026-04-25T12:34:56.000Z",
63
+ "apiVersion": "2026-09-22",
64
+ "test": false,
65
+ "data": {
66
+ "form": { "id": "frm_abc123", "name": "Customer Feedback", "snapshotId": "snp_..." },
67
+ "submission": {
68
+ "id": "sub_xyz789",
69
+ "respondentEmail": "respondent@example.com",
70
+ "submittedAt": "2026-04-25T12:34:56.000Z",
71
+ "pdfUrl": null,
72
+ "language": "en"
73
+ },
74
+ "answers": { "recommend": 9, "plan": "pro" },
75
+ "display": { "recommend": "9", "plan": "Pro" }
76
+ }
85
77
  }
86
78
  ```
87
79
 
88
- Delivered payloads use these `eventType` values:
80
+ Read a value with `{{ $json.data.answers.recommend }}`; the field keys come from `fields.list` (or the form's field Configure menu). A choice answer holds the readable option key (`"pro"`), and `display` holds its label (`"Pro"`). A repeating group is an array of row objects in `answers` and one joined line in `display`.
89
81
 
90
- | `eventType` | Meaning |
91
- | ------------------ | ---------------------------------------------------------- |
92
- | `SUBMIT_RESPONSE` | A respondent completed a new response. |
93
- | `UPDATE_RESPONSE` | An existing completed response changed. |
94
- | `ABANDON_RESPONSE` | An incomplete response reached the configured idle window. |
82
+ The node passes the envelope through unchanged — it does not flatten answers into the top level of the item. Nothing is dropped, every key stays where the formbase contract puts it, and a field key can never collide with an envelope key such as `type` or `test`. Map the handful of values a workflow needs with a Set node, as the example workflow does.
95
83
 
96
- Webhook registration events (`submission_created` and `submission_abandoned`) select which deliveries trigger the workflow. Payload `eventType` identifies what happened to the response. Use `eventId` to deduplicate retries.
84
+ A submission that answered a request also carries `data.request` (`id`, and the caller's `externalId` and `metadata` when they were supplied). A response saved to PDF carries `data.submission.pdfUrl`; it is `null` when no PDF is kept. `test` is `true` for a test delivery, so a workflow can branch on it.
85
+
86
+ Delivered events use these `type` values:
87
+
88
+ | `type` | Meaning |
89
+ | ----------------------- | ---------------------------------------------------------- |
90
+ | `submission.completed` | A respondent completed a new response. |
91
+ | `submission.updated` | An existing completed response changed. |
92
+ | `submission.abandoned` | An incomplete response reached the configured idle window. |
93
+
94
+ Webhook registration events (`submission_created` and `submission_abandoned`) select which deliveries trigger the workflow. The event `type` identifies what happened to the response. Use `id` to deduplicate retries; the same values arrive as `X-formbase-Event-Id` and `X-formbase-Event-Type` headers.
97
95
 
98
96
  Full contracts: [formbase API methods](https://docs.formbase.so/developers/rest-api) and [webhook reference](https://docs.formbase.so/developers/webhooks-reference).
99
97
 
@@ -106,7 +104,7 @@ npm run build
106
104
  npm run lint
107
105
  ```
108
106
 
109
- `npm run dev` starts n8n with the node loaded and rebuilds on changes. Compiled package files are written to `dist/`. Run `npm pack --dry-run` before publishing to inspect package contents.
107
+ `npm test` runs unit tests plus a lifecycle test that drives the node against an in-process formbase API over real HTTP (`test/fakeFormbase.mts`). `npm run dev` starts n8n with the node loaded and rebuilds on changes. Compiled package files are written to `dist/`. Run `npm pack --dry-run` before publishing to inspect package contents.
110
108
 
111
109
  ## License
112
110
 
@@ -6,44 +6,57 @@ const constants_1 = require("./constants");
6
6
  const FormbaseWebhookSignature_1 = require("./FormbaseWebhookSignature");
7
7
  const GenericFunctions_1 = require("./GenericFunctions");
8
8
  const FORMS_PAGE_SIZE = 100;
9
- async function listWorkspaceForms(context, workspace) {
9
+ async function listForms(context) {
10
+ var _a;
11
+ const workspaces = await (0, GenericFunctions_1.formbaseApiRequest)(context, 'workspaces.list');
12
+ const workspace = workspaces.items[0];
13
+ if (!workspace) {
14
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), 'This formbase credential has no workspace. Reconnect it and pick one.');
15
+ }
10
16
  const forms = [];
11
17
  let cursor;
12
18
  do {
13
- const result = (await GenericFunctions_1.formbaseApiRequest.call(context, 'forms.list', {
19
+ const page = await (0, GenericFunctions_1.formbaseApiRequest)(context, 'forms.list', {
14
20
  workspaceId: workspace.id,
15
21
  limit: FORMS_PAGE_SIZE,
16
22
  ...(cursor ? { cursor } : {}),
17
- }));
18
- forms.push(...result.items);
19
- if (!result.hasMore)
20
- break;
21
- if (!result.nextCursor) {
23
+ });
24
+ forms.push(...page.items);
25
+ if (page.hasMore && !page.nextCursor) {
22
26
  throw new n8n_workflow_1.NodeApiError(context.getNode(), { message: 'formbase returned an incomplete forms page' });
23
27
  }
24
- cursor = result.nextCursor;
28
+ cursor = page.hasMore ? ((_a = page.nextCursor) !== null && _a !== void 0 ? _a : undefined) : undefined;
25
29
  } while (cursor);
26
30
  return forms;
27
31
  }
28
- function findWebhookSubscription(subscriptions, targetUrl, eventType, idleWindow) {
29
- return subscriptions.find((subscription) => subscription.targetUrl === targetUrl &&
30
- subscription.provider === 'n8n' &&
31
- subscription.eventType === eventType &&
32
- subscription.idleWindow === idleWindow);
33
- }
34
- function findWebhookSubscriptionsByIdentity(subscriptions, targetUrl, eventType) {
35
- return subscriptions.filter((subscription) => subscription.targetUrl === targetUrl && subscription.provider === 'n8n' && subscription.eventType === eventType);
36
- }
37
- function getIdleWindow(context, eventType) {
38
- if (eventType === constants_1.FORMBASE_WEBHOOK_EVENTS.submissionCreated)
39
- return undefined;
32
+ function readRegistration(context) {
33
+ const webhookUrl = context.getNodeWebhookUrl('default');
34
+ const formId = context.getNodeParameter('formId');
35
+ if (!webhookUrl || !formId)
36
+ return null;
37
+ const eventType = context.getNodeParameter('event');
38
+ if (eventType !== constants_1.FORMBASE_WEBHOOK_EVENTS.submissionAbandoned)
39
+ return { webhookUrl, formId, eventType };
40
40
  const idleWindow = context.getNodeParameter('idleWindow');
41
41
  if (!(0, constants_1.isFormbaseIdleWindow)(idleWindow)) {
42
- throw new n8n_workflow_1.NodeApiError(context.getNode(), {
43
- message: `Idle window must be one of: ${constants_1.FORMBASE_IDLE_WINDOW_OPTIONS.map((option) => option.value).join(', ')}`,
44
- });
42
+ const allowed = constants_1.FORMBASE_IDLE_WINDOW_OPTIONS.map((option) => option.value).join(', ');
43
+ throw new n8n_workflow_1.NodeOperationError(context.getNode(), `Idle window must be one of: ${allowed}`);
45
44
  }
46
- return idleWindow;
45
+ return { webhookUrl, formId, eventType, idleWindow };
46
+ }
47
+ function isOwnSubscription(subscription, registration) {
48
+ if (subscription.provider !== 'n8n')
49
+ return false;
50
+ if (subscription.targetUrl !== registration.webhookUrl)
51
+ return false;
52
+ return subscription.eventType === registration.eventType;
53
+ }
54
+ function isCurrentRegistration(subscription, registration, webhookData) {
55
+ if (subscription.subscriptionId !== webhookData.subscriptionId)
56
+ return false;
57
+ if (typeof webhookData.webhookSecret !== 'string')
58
+ return false;
59
+ return subscription.idleWindow === registration.idleWindow;
47
60
  }
48
61
  function clearWebhookRegistration(webhookData) {
49
62
  delete webhookData.subscriptionId;
@@ -103,18 +116,18 @@ class FormbaseTrigger {
103
116
  name: 'event',
104
117
  type: 'options',
105
118
  options: [
119
+ {
120
+ name: 'Submission Created',
121
+ value: constants_1.FORMBASE_WEBHOOK_EVENTS.submissionCreated,
122
+ action: 'On submission created',
123
+ description: 'Runs when a respondent submits the selected form, and again when a completed submission is edited (event type submission.updated)',
124
+ },
106
125
  {
107
126
  name: 'Submission Abandoned',
108
127
  value: constants_1.FORMBASE_WEBHOOK_EVENTS.submissionAbandoned,
109
128
  action: 'On submission abandoned',
110
129
  description: 'Runs when a respondent leaves the selected form before submitting it; requires partial submission tracking',
111
130
  },
112
- {
113
- name: 'Submission Created',
114
- value: constants_1.FORMBASE_WEBHOOK_EVENTS.submissionCreated,
115
- action: 'On submission created',
116
- description: 'Runs when a respondent submits the selected form',
117
- },
118
131
  ],
119
132
  default: 'submission_created',
120
133
  description: 'Event to subscribe to. Abandoned submissions require partial submission tracking.',
@@ -138,70 +151,48 @@ class FormbaseTrigger {
138
151
  this.methods = {
139
152
  loadOptions: {
140
153
  async getForms() {
141
- const workspaceResult = (await GenericFunctions_1.formbaseApiRequest.call(this, 'workspaces.list', {}));
142
- const formsByWorkspace = await Promise.all(workspaceResult.items.map(async (workspace) => ({
143
- workspace,
144
- forms: await listWorkspaceForms(this, workspace),
145
- })));
146
- const showWorkspaceName = formsByWorkspace.length > 1;
147
- return formsByWorkspace.flatMap(({ workspace, forms }) => forms.map((form) => ({
148
- name: showWorkspaceName ? `${workspace.name} / ${form.name}` : form.name,
149
- value: form.id,
150
- })));
154
+ const forms = await listForms(this);
155
+ return forms.map((form) => ({ name: form.name, value: form.id }));
151
156
  },
152
157
  },
153
158
  };
154
159
  this.webhookMethods = {
155
160
  default: {
156
161
  async checkExists() {
157
- const webhookUrl = this.getNodeWebhookUrl('default');
158
- if (!webhookUrl)
159
- return false;
160
- const formId = this.getNodeParameter('formId');
161
- if (!formId)
162
+ const registration = readRegistration(this);
163
+ if (!registration)
162
164
  return false;
163
- const eventType = this.getNodeParameter('event');
164
- const idleWindow = getIdleWindow(this, eventType);
165
165
  const webhookData = this.getWorkflowStaticData('node');
166
- const result = (await GenericFunctions_1.formbaseApiRequest.call(this, 'webhooks.list', {
167
- formId,
168
- }));
169
- const match = findWebhookSubscription(result.items, webhookUrl, eventType, idleWindow);
170
- const staleMatches = findWebhookSubscriptionsByIdentity(result.items, webhookUrl, eventType).filter((subscription) => subscription.subscriptionId !== (match === null || match === void 0 ? void 0 : match.subscriptionId));
171
- for (const staleMatch of staleMatches) {
172
- await GenericFunctions_1.formbaseApiRequest.call(this, 'webhooks.delete', {
173
- subscriptionId: staleMatch.subscriptionId,
174
- });
166
+ const { items } = await (0, GenericFunctions_1.formbaseApiRequest)(this, 'webhooks.list', {
167
+ formId: registration.formId,
168
+ });
169
+ let current = false;
170
+ for (const subscription of items) {
171
+ if (!isOwnSubscription(subscription, registration))
172
+ continue;
173
+ if (isCurrentRegistration(subscription, registration, webhookData)) {
174
+ current = true;
175
+ continue;
176
+ }
177
+ await (0, GenericFunctions_1.formbaseApiRequest)(this, 'webhooks.delete', { subscriptionId: subscription.subscriptionId });
175
178
  }
176
- if (!match) {
179
+ if (!current)
177
180
  clearWebhookRegistration(webhookData);
178
- return false;
179
- }
180
- const registrationMatchesStaticData = webhookData.subscriptionId === match.subscriptionId && typeof webhookData.webhookSecret === 'string';
181
- if (registrationMatchesStaticData)
182
- return true;
183
- await GenericFunctions_1.formbaseApiRequest.call(this, 'webhooks.delete', {
184
- subscriptionId: match.subscriptionId,
185
- });
186
- clearWebhookRegistration(webhookData);
187
- return false;
181
+ return current;
188
182
  },
189
183
  async create() {
190
- const webhookUrl = this.getNodeWebhookUrl('default');
191
- if (!webhookUrl)
184
+ const registration = readRegistration(this);
185
+ if (!registration)
192
186
  return false;
193
- const formId = this.getNodeParameter('formId');
194
- const eventType = this.getNodeParameter('event');
195
- const idleWindow = getIdleWindow(this, eventType);
196
187
  const webhookSecret = (0, FormbaseWebhookSignature_1.createFormbaseWebhookSecret)();
197
- const created = (await GenericFunctions_1.formbaseApiRequest.call(this, 'webhooks.create', {
198
- formId,
199
- targetUrl: webhookUrl,
188
+ const created = await (0, GenericFunctions_1.formbaseApiRequest)(this, 'webhooks.create', {
189
+ formId: registration.formId,
190
+ targetUrl: registration.webhookUrl,
200
191
  provider: 'n8n',
201
- eventType,
202
- ...(idleWindow !== undefined ? { idleWindow } : {}),
192
+ eventType: registration.eventType,
193
+ ...(registration.idleWindow ? { idleWindow: registration.idleWindow } : {}),
203
194
  signingSecret: webhookSecret,
204
- }));
195
+ });
205
196
  const webhookData = this.getWorkflowStaticData('node');
206
197
  webhookData.subscriptionId = created.subscriptionId;
207
198
  webhookData.webhookSecret = webhookSecret;
@@ -215,14 +206,11 @@ class FormbaseTrigger {
215
206
  return true;
216
207
  }
217
208
  try {
218
- await GenericFunctions_1.formbaseApiRequest.call(this, 'webhooks.delete', {
219
- subscriptionId,
220
- });
209
+ await (0, GenericFunctions_1.formbaseApiRequest)(this, 'webhooks.delete', { subscriptionId });
221
210
  }
222
211
  catch (error) {
223
- if (!(error instanceof n8n_workflow_1.NodeApiError) || error.httpCode !== '404') {
212
+ if (!(error instanceof n8n_workflow_1.NodeApiError) || error.httpCode !== '404')
224
213
  return false;
225
- }
226
214
  }
227
215
  clearWebhookRegistration(webhookData);
228
216
  return true;
@@ -1 +1 @@
1
- {"version":3,"file":"FormbaseTrigger.node.js","sourceRoot":"","sources":["../../../nodes/Formbase/FormbaseTrigger.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormbaseTrigger.node.js","sourceRoot":"","sources":["../../../nodes/Formbase/FormbaseTrigger.node.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import type { IHookFunctions, ILoadOptionsFunctions, IWebhookFunctions } from 'n8n-workflow';
2
2
  export type FormbaseRpcContext = IHookFunctions | ILoadOptionsFunctions | IWebhookFunctions;
3
- export declare function formbaseApiRequest<T = unknown>(this: FormbaseRpcContext, method: string, params?: Record<string, unknown>): Promise<T>;
3
+ export declare function formbaseApiRequest<T = unknown>(context: FormbaseRpcContext, method: string, params?: Record<string, unknown>): Promise<T>;
@@ -14,9 +14,9 @@ const ERROR_CODE_TO_HTTP = {
14
14
  RATE_LIMITED: 429,
15
15
  INTERNAL_ERROR: 500,
16
16
  };
17
- async function formbaseApiRequest(method, params = {}) {
17
+ async function formbaseApiRequest(context, method, params = {}) {
18
18
  var _a, _b, _c, _d, _e, _f;
19
- const credentials = await this.getCredentials(constants_1.FORMBASE_OAUTH2_CREDENTIAL_NAME);
19
+ const credentials = await context.getCredentials(constants_1.FORMBASE_OAUTH2_CREDENTIAL_NAME);
20
20
  const resourceUrl = String((_a = credentials.serverUrl) !== null && _a !== void 0 ? _a : constants_1.FORMBASE_API_RESOURCE_URL).replace(/\/+$/, '');
21
21
  const options = {
22
22
  method: 'POST',
@@ -25,20 +25,17 @@ async function formbaseApiRequest(method, params = {}) {
25
25
  json: true,
26
26
  returnFullResponse: false,
27
27
  };
28
- const response = (await this.helpers.httpRequestWithAuthentication.call(this, constants_1.FORMBASE_OAUTH2_CREDENTIAL_NAME, options));
28
+ const response = (await context.helpers.httpRequestWithAuthentication.call(context, constants_1.FORMBASE_OAUTH2_CREDENTIAL_NAME, options));
29
29
  if (!response || typeof response !== 'object') {
30
- throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: 'Invalid response from formbase API' });
30
+ throw new n8n_workflow_1.NodeApiError(context.getNode(), { message: 'Invalid response from formbase API' });
31
31
  }
32
32
  if (response.ok === false) {
33
33
  const code = (_c = (_b = response.error) === null || _b === void 0 ? void 0 : _b.code) !== null && _c !== void 0 ? _c : 'INTERNAL_ERROR';
34
34
  const message = (_e = (_d = response.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : 'formbase API error';
35
- throw new n8n_workflow_1.NodeApiError(this.getNode(), { message, code }, {
36
- message: `${code}: ${message}`,
37
- httpCode: String((_f = ERROR_CODE_TO_HTTP[code]) !== null && _f !== void 0 ? _f : 500),
38
- });
35
+ throw new n8n_workflow_1.NodeApiError(context.getNode(), { message, code }, { message: `${code}: ${message}`, httpCode: String((_f = ERROR_CODE_TO_HTTP[code]) !== null && _f !== void 0 ? _f : 500) });
39
36
  }
40
37
  if (response.ok !== true || !('data' in response)) {
41
- throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: 'Invalid response from formbase API' });
38
+ throw new n8n_workflow_1.NodeApiError(context.getNode(), { message: 'Invalid response from formbase API' });
42
39
  }
43
40
  return response.data;
44
41
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Formbase/GenericFunctions.ts"],"names":[],"mappings":";;AAoCA,gDAyCC;AAvED,+CAA2C;AAE3C,2CAAwF;AAgBxF,MAAM,kBAAkB,GAA2B;IACjD,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,GAAG;IACjB,gBAAgB,EAAE,GAAG;IACrB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,gBAAgB,EAAE,GAAG;IACrB,QAAQ,EAAE,GAAG;IACb,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,GAAG;CACpB,CAAA;AAEM,KAAK,UAAU,kBAAkB,CAEtC,MAAc,EACd,SAAkC,EAAE;;IAEpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,2CAA+B,CAAC,CAAA;IAC9E,MAAM,WAAW,GAAG,MAAM,CAAC,MAAA,WAAW,CAAC,SAAS,mCAAI,qCAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAElG,MAAM,OAAO,GAAwB;QACnC,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QACxB,IAAI,EAAE,IAAI;QACV,kBAAkB,EAAE,KAAK;KAC1B,CAAA;IAGD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CACrE,IAAI,EACJ,2CAA+B,EAC/B,OAAO,CACR,CAA2B,CAAA;IAE5B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAC3F,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,IAAI,mCAAI,gBAAgB,CAAA;QACrD,MAAM,OAAO,GAAG,MAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,OAAO,mCAAI,oBAAoB,CAAA;QAC/D,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YACxD,OAAO,EAAE,GAAG,IAAI,KAAK,OAAO,EAAE;YAC9B,QAAQ,EAAE,MAAM,CAAC,MAAA,kBAAkB,CAAC,IAAI,CAAC,mCAAI,GAAG,CAAC;SAClD,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAC3F,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Formbase/GenericFunctions.ts"],"names":[],"mappings":";;AAuCA,gDA0CC;AAhFD,+CAA2C;AAE3C,2CAAwF;AAiBxF,MAAM,kBAAkB,GAA2B;IACjD,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,GAAG;IACjB,gBAAgB,EAAE,GAAG;IACrB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,gBAAgB,EAAE,GAAG;IACrB,QAAQ,EAAE,GAAG;IACb,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,GAAG;CACpB,CAAA;AASM,KAAK,UAAU,kBAAkB,CACtC,OAA2B,EAC3B,MAAc,EACd,SAAkC,EAAE;;IAEpC,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,2CAA+B,CAAC,CAAA;IACjF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAA,WAAW,CAAC,SAAS,mCAAI,qCAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAElG,MAAM,OAAO,GAAwB;QACnC,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QACxB,IAAI,EAAE,IAAI;QACV,kBAAkB,EAAE,KAAK;KAC1B,CAAA;IAGD,MAAM,QAAQ,GAAG,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CACxE,OAAO,EACP,2CAA+B,EAC/B,OAAO,CACR,CAAkC,CAAA;IAEnC,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,2BAAY,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAC9F,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,IAAI,mCAAI,gBAAgB,CAAA;QACrD,MAAM,OAAO,GAAG,MAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,OAAO,mCAAI,oBAAoB,CAAA;QAC/D,MAAM,IAAI,2BAAY,CACpB,OAAO,CAAC,OAAO,EAAE,EACjB,EAAE,OAAO,EAAE,IAAI,EAAE,EACjB,EAAE,OAAO,EAAE,GAAG,IAAI,KAAK,OAAO,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAA,kBAAkB,CAAC,IAAI,CAAC,mCAAI,GAAG,CAAC,EAAE,CACtF,CAAA;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,2BAAY,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAC9F,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC"}
@@ -8,17 +8,17 @@ export declare const FORMBASE_WEBHOOK_EVENTS: {
8
8
  };
9
9
  export type FormbaseWebhookEvent = (typeof FORMBASE_WEBHOOK_EVENTS)[keyof typeof FORMBASE_WEBHOOK_EVENTS];
10
10
  export declare const FORMBASE_IDLE_WINDOW_OPTIONS: readonly [{
11
- readonly name: "1 Day";
12
- readonly value: "1d";
13
- }, {
14
- readonly name: "1 Week";
15
- readonly value: "1w";
16
- }, {
17
11
  readonly name: "12 Hours";
18
12
  readonly value: "12h";
13
+ }, {
14
+ readonly name: "1 Day";
15
+ readonly value: "1d";
19
16
  }, {
20
17
  readonly name: "3 Days";
21
18
  readonly value: "3d";
19
+ }, {
20
+ readonly name: "1 Week";
21
+ readonly value: "1w";
22
22
  }];
23
23
  export type FormbaseIdleWindow = (typeof FORMBASE_IDLE_WINDOW_OPTIONS)[number]['value'];
24
24
  export declare function isFormbaseIdleWindow(value: unknown): value is FormbaseIdleWindow;
@@ -11,10 +11,10 @@ exports.FORMBASE_WEBHOOK_EVENTS = {
11
11
  submissionAbandoned: 'submission_abandoned',
12
12
  };
13
13
  exports.FORMBASE_IDLE_WINDOW_OPTIONS = [
14
- { name: '1 Day', value: '1d' },
15
- { name: '1 Week', value: '1w' },
16
14
  { name: '12 Hours', value: '12h' },
15
+ { name: '1 Day', value: '1d' },
17
16
  { name: '3 Days', value: '3d' },
17
+ { name: '1 Week', value: '1w' },
18
18
  ];
19
19
  const FORMBASE_IDLE_WINDOW_VALUES = new Set(exports.FORMBASE_IDLE_WINDOW_OPTIONS.map((option) => option.value));
20
20
  function isFormbaseIdleWindow(value) {
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../nodes/Formbase/constants.ts"],"names":[],"mappings":";;;AA4BA,oDAEC;AA9BY,QAAA,wBAAwB,GAAG,yBAAyB,CAAA;AAEpD,QAAA,iBAAiB,GAAG,SAAS,CAAA;AAE7B,QAAA,yBAAyB,GAAG,GAAG,gCAAwB,GAAG,yBAAiB,EAAE,CAAA;AAE7E,QAAA,+BAA+B,GAAG,mBAAmB,CAAA;AAErD,QAAA,uBAAuB,GAAG;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,mBAAmB,EAAE,sBAAsB;CACnC,CAAA;AAIG,QAAA,4BAA4B,GAAG;IAC1C,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;IAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;CACvB,CAAA;AAIV,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAC9D,oCAA4B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAC3D,CAAA;AAED,SAAgB,oBAAoB,CAAC,KAAc;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC5E,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../nodes/Formbase/constants.ts"],"names":[],"mappings":";;;AA6BA,oDAEC;AA/BY,QAAA,wBAAwB,GAAG,yBAAyB,CAAA;AAEpD,QAAA,iBAAiB,GAAG,SAAS,CAAA;AAE7B,QAAA,yBAAyB,GAAG,GAAG,gCAAwB,GAAG,yBAAiB,EAAE,CAAA;AAE7E,QAAA,+BAA+B,GAAG,mBAAmB,CAAA;AAErD,QAAA,uBAAuB,GAAG;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,mBAAmB,EAAE,sBAAsB;CACnC,CAAA;AAKG,QAAA,4BAA4B,GAAG;IAC1C,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE;IAClC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE;IAC9B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;IAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE;CACvB,CAAA;AAIV,MAAM,2BAA2B,GAAwB,IAAI,GAAG,CAC9D,oCAA4B,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAC3D,CAAA;AAED,SAAgB,oBAAoB,CAAC,KAAc;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC5E,CAAC"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-formbase",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "n8n community node for formbase — trigger workflows from form submissions.",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",
@@ -19,31 +19,31 @@
19
19
  {
20
20
  "id": "cdcb57d7-377e-45e2-8da9-63e52f4690b4",
21
21
  "name": "eventId",
22
- "value": "={{ $json.eventId }}",
22
+ "value": "={{ $json.id }}",
23
23
  "type": "string"
24
24
  },
25
25
  {
26
26
  "id": "9da94c68-fcf8-4f79-b78e-5bb78c043aec",
27
27
  "name": "eventType",
28
- "value": "={{ $json.eventType }}",
28
+ "value": "={{ $json.type }}",
29
29
  "type": "string"
30
30
  },
31
31
  {
32
32
  "id": "b27b42be-fc5d-491f-a93b-02a7fa4e63f8",
33
33
  "name": "submissionId",
34
- "value": "={{ $json.submission.id }}",
34
+ "value": "={{ $json.data.submission.id }}",
35
35
  "type": "string"
36
36
  },
37
37
  {
38
38
  "id": "2b171786-cb32-4e73-96e5-d60f39060fe1",
39
39
  "name": "respondentEmail",
40
- "value": "={{ $json.submission.respondentEmail }}",
40
+ "value": "={{ $json.data.submission.respondentEmail }}",
41
41
  "type": "string"
42
42
  },
43
43
  {
44
44
  "id": "a6366cdf-c3b9-4bdc-be3c-723d2bfab7a4",
45
45
  "name": "formName",
46
- "value": "={{ $json.form.name }}",
46
+ "value": "={{ $json.data.form.name }}",
47
47
  "type": "string"
48
48
  }
49
49
  ]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-formbase",
3
- "version": "0.4.1",
3
+ "version": "0.5.0",
4
4
  "description": "n8n community node for formbase — trigger workflows from form submissions.",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",