n8n-editor-ui 1.87.1 → 1.89.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.
Files changed (110) hide show
  1. package/dist/assets/{AnimatedSpinner-BJKBduqI.js → AnimatedSpinner-64kuDSMd.js} +1 -1
  2. package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-BNiwICGe.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-vU7A4Ql5.js} +1 -1
  3. package/dist/assets/{AuthView-DrViDPFs.js → AuthView-BtMwWncz.js} +2 -2
  4. package/dist/assets/{CanvasChatSwitch-0IWSu8RE.css → CanvasChatSwitch-BDVIAjN6.css} +12 -11
  5. package/dist/assets/{CanvasChatSwitch-BnTApoNZ.js → CanvasChatSwitch-DCcRHty_.js} +26 -24
  6. package/dist/assets/{ChangePasswordView-DPUv2ZhO.js → ChangePasswordView-ngd6kK9h.js} +3 -3
  7. package/dist/assets/CollectionParameter-NNrH2Qf1.js +4 -0
  8. package/dist/assets/{CredentialsView-Cx3MfjwO.js → CredentialsView-c9VZrSEP.js} +6 -6
  9. package/dist/assets/{ErrorView-C3Sxa6Qs.js → ErrorView-M0yTzQxC.js} +1 -1
  10. package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-B0NnOKRw.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-BsM5P8VY.js} +2 -2
  11. package/dist/assets/{ExecutionsView-BD9a5MiE.js → ExecutionsView-2Ywg0NsP.js} +8 -8
  12. package/dist/assets/{FileSaver.min-CsyH54Dh.js → FileSaver.min-DAXzY4JY.js} +1 -1
  13. package/dist/assets/{FixedCollectionParameter-icyYiANk.js → FixedCollectionParameter-CNRFXDrN.js} +1 -1
  14. package/dist/assets/{ForgotMyPasswordView-B7m6OAyt.js → ForgotMyPasswordView-C1SOW4HN.js} +3 -3
  15. package/dist/assets/{InsightsChartAverageRuntime-CiI5y8BG.js → InsightsChartAverageRuntime-D_7tKoef.js} +4 -4
  16. package/dist/assets/{InsightsChartFailed-BAnQv9pU.js → InsightsChartFailed-DDejxv0R.js} +5 -5
  17. package/dist/assets/{InsightsChartFailureRate-CGRL86zw.js → InsightsChartFailureRate-PS5N1AdB.js} +4 -4
  18. package/dist/assets/{InsightsChartTimeSaved-BJmjC9xP.js → InsightsChartTimeSaved-BBw2CgSS.js} +4 -4
  19. package/dist/assets/{InsightsChartTotal-YSqQgGkL.js → InsightsChartTotal-2MVolQhG.js} +7 -7
  20. package/dist/assets/InsightsDashboard-DCdd_dks.js +174 -0
  21. package/dist/assets/{InsightsDashboard-CB4vHnBh.css → InsightsDashboard-DPVczYm3.css} +21 -8
  22. package/dist/assets/{InsightsPaywall-BCSe1GCl.js → InsightsPaywall-DtIcXb48.js} +1 -1
  23. package/dist/assets/{InsightsSummary-Bf61oFlG.js → InsightsSummary-BzdlA4Dr.js} +48 -25
  24. package/dist/assets/{InsightsSummary-W08OzElS.css → InsightsSummary-FixbpmPJ.css} +28 -25
  25. package/dist/assets/{InsightsTableWorkflows-Us3j4UTO.css → InsightsTableWorkflows-Blv_GPUj.css} +16 -1
  26. package/dist/assets/{InsightsTableWorkflows-B5M_o3Di.js → InsightsTableWorkflows-CnEuNzZ9.js} +63 -15
  27. package/dist/assets/{Logo-DZ8mhDMd.js → Logo-CmGfYtCL.js} +1 -1
  28. package/dist/assets/{MainHeader-CItoJWMi.js → MainHeader-DdjAOCVS.js} +9 -9
  29. package/dist/assets/{MainSidebar-Cponf9eD.js → MainSidebar-CPtfXLom.js} +4 -2
  30. package/dist/assets/{NodeCreation-DiUBT9p0.js → NodeCreation-C9WNMB5W.js} +4 -4
  31. package/dist/assets/{NodeCreator-BHji7uJa.js → NodeCreator-Dt7b_La2.js} +3 -3
  32. package/dist/assets/{NodeDetailsView-BT-ro74o.css → NodeDetailsView-B2kdGJ7R.css} +14 -14
  33. package/dist/assets/{NodeDetailsView-CPsaG2IZ.js → NodeDetailsView-BPQgwdWz.js} +23 -12
  34. package/dist/assets/{NodeView-9P-9rNOD.js → NodeView-CKF92Cc3.js} +17 -18
  35. package/dist/assets/{ProjectCardBadge-BdyDghHf.js → ProjectCardBadge-Ca29o2Nu.js} +1 -1
  36. package/dist/assets/{ProjectHeader-D8-9oE80.js → ProjectHeader-Dq3fVC-9.js} +1 -1
  37. package/dist/assets/{ProjectSettings-Brpx7x2l.js → ProjectSettings-6oRh_PiD.js} +2 -2
  38. package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-CShLauba.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-DtHAaMts.js} +1 -1
  39. package/dist/assets/{ResourcesListLayout-nD22utQX.js → ResourcesListLayout-CjpS9ho7.js} +12 -2
  40. package/dist/assets/{ResourcesListLayout-CWgWhtKq.css → ResourcesListLayout-b44J07nq.css} +8 -8
  41. package/dist/assets/{RunDataAi-DULZvgnn.js → RunDataAi-DpuaI4HY.js} +64 -41
  42. package/dist/assets/{RunDataJson-jnag_uEf.js → RunDataJson-CS1Vs4me.js} +23 -13
  43. package/dist/assets/{RunDataJsonActions-CWCdb4Yi.js → RunDataJsonActions-UEDmvE5v.js} +1 -1
  44. package/dist/assets/{RunDataSearch-CI5OdX2M.js → RunDataSearch-BjsM_QL7.js} +1 -1
  45. package/dist/assets/{RunDataTable-CQc98S7W.js → RunDataTable-zY9Z73dm.js} +17 -7
  46. package/dist/assets/{SamlOnboarding-mdVsZszT.js → SamlOnboarding-CMQ3F8vU.js} +3 -3
  47. package/dist/assets/{SettingsApiView-CRDQ66Jq.js → SettingsApiView-C7mJo5RT.js} +1 -1
  48. package/dist/assets/{SettingsCommunityNodesView-DCp8y1mn.js → SettingsCommunityNodesView-oV3f1FYs.js} +4 -4
  49. package/dist/assets/{SettingsExternalSecrets-PhLe1dhs.js → SettingsExternalSecrets-Zm50ediz.js} +1 -1
  50. package/dist/assets/{SettingsLdapView-DrPh9Cmp.js → SettingsLdapView-D0lujKk6.js} +1 -1
  51. package/dist/assets/{SettingsLogStreamingView-D_dGzLfg.js → SettingsLogStreamingView-DMRYf3h4.js} +1 -1
  52. package/dist/assets/{SettingsPersonalView-C6XeNBcf.js → SettingsPersonalView-BlKM42Fv.js} +1 -1
  53. package/dist/assets/{SettingsSourceControl-Bu_qi87k.js → SettingsSourceControl-BRkqOyBq.js} +1 -1
  54. package/dist/assets/{SettingsSso-BF8Nr76R.js → SettingsSso-ClphkEtx.js} +1 -1
  55. package/dist/assets/{SettingsUsageAndPlan-DTyc2TI4.js → SettingsUsageAndPlan-BnxbFSLN.js} +1 -1
  56. package/dist/assets/{SettingsUsersView-BfK_vKh5.js → SettingsUsersView-CnqllPG4.js} +1 -1
  57. package/dist/assets/{SettingsView-bkz5b7Ks.js → SettingsView-CJ4icVTM.js} +1 -1
  58. package/dist/assets/{SetupView--_MmPcKt.js → SetupView-BaUQwZK2.js} +3 -3
  59. package/dist/assets/{SetupWorkflowCredentialsButton-C94b-j6c.js → SetupWorkflowCredentialsButton-DiRHCsta.js} +1 -1
  60. package/dist/assets/{SetupWorkflowFromTemplateView-Bn6NUya1.js → SetupWorkflowFromTemplateView-CjiIpX1D.js} +3 -3
  61. package/dist/assets/{SigninView-s9B3HXBX.js → SigninView-DrRmsG64.js} +3 -3
  62. package/dist/assets/{SignoutView-CvFIZuRL.js → SignoutView-DEK6MH1B.js} +1 -1
  63. package/dist/assets/{SignupView-B6YMoGnc.js → SignupView-CTdIAp1U.js} +3 -3
  64. package/dist/assets/{TemplateDetails-DOGmuYC4.js → TemplateDetails-B6Nnq5_s.js} +1 -1
  65. package/dist/assets/{TemplateList-BRL4OSZK.js → TemplateList-BKmKXiHs.js} +1 -1
  66. package/dist/assets/{TemplatesCollectionView-Ct2GIDCZ.js → TemplatesCollectionView-CXgiZ-fy.js} +5 -5
  67. package/dist/assets/{TemplatesSearchView-CWGmY4-P.js → TemplatesSearchView-BoX9MKRy.js} +3 -3
  68. package/dist/assets/{TemplatesView-vYQo2Y75.js → TemplatesView-htM1lafV.js} +1 -1
  69. package/dist/assets/{TemplatesWorkflowView-Cw6mc6wy.js → TemplatesWorkflowView-DIqdCPxB.js} +5 -5
  70. package/dist/assets/{TestDefinitionEditView-CZnzTAsp.js → TestDefinitionEditView-izO1b1I3.js} +7 -7
  71. package/dist/assets/{TestDefinitionListView-CKsRlhn4.js → TestDefinitionListView-DuLocBuw.js} +1 -1
  72. package/dist/assets/{TestDefinitionNewView-B1KZ2Qnt.js → TestDefinitionNewView-Dg37IAs6.js} +2 -2
  73. package/dist/assets/{TestDefinitionRootView-V43FaNr3.js → TestDefinitionRootView-DlG7VKKU.js} +1 -1
  74. package/dist/assets/{VariablesView-DLB1Vvnc.js → VariablesView-Cq8LInqk.js} +3 -3
  75. package/dist/assets/{WorkerView-Iqi25XGQ.js → WorkerView-BTQTq3vI.js} +6 -6
  76. package/dist/assets/{WorkflowActivator-D9fExB06.js → WorkflowActivator-E1mdIOaC.js} +2 -2
  77. package/dist/assets/{WorkflowExecutionsInfoAccordion-Md7C2uBw.js → WorkflowExecutionsInfoAccordion-DxGM_yu-.js} +1 -1
  78. package/dist/assets/{WorkflowExecutionsLandingPage-CKOlfG7s.js → WorkflowExecutionsLandingPage-BkftsbSa.js} +2 -2
  79. package/dist/assets/{WorkflowExecutionsPreview-DS6HDJng.js → WorkflowExecutionsPreview-w7I_h1ID.js} +6 -6
  80. package/dist/assets/{WorkflowExecutionsView-LF3g9gDB.js → WorkflowExecutionsView-lyjECt6I.js} +7 -7
  81. package/dist/assets/{WorkflowHistory-Cu7OIIMi.js → WorkflowHistory-B8_7vx-c.js} +3 -3
  82. package/dist/assets/{WorkflowOnboardingView-B2WUKfr6.js → WorkflowOnboardingView-D2fR8tdw.js} +1 -1
  83. package/dist/assets/{WorkflowPreview-DlKRTeNZ.js → WorkflowPreview-CNu7Kd6F.js} +1 -1
  84. package/dist/assets/{WorkflowsView-dot2ovV7.js → WorkflowsView-B_70hdtG.js} +133 -42
  85. package/dist/assets/{WorkflowsView-CJB9aI6A.css → WorkflowsView-DV1tjQwB.css} +17 -11
  86. package/dist/assets/{chartjs.utils-BLcAAfTE.js → chartjs.utils-3n4f3zmI.js} +6 -3
  87. package/dist/assets/{dateFormatter-Cdy8FmTT.js → dateFormatter-C1XlsLk2.js} +1 -1
  88. package/dist/assets/easyAiWorkflowUtils-CCJdF1g3.js +132 -0
  89. package/dist/assets/{global-link-actions-CfWIYTMM.js → global-link-actions-B6woWi9D.js} +1 -1
  90. package/dist/assets/{import-curl-DO7fae0m.js → import-curl-BlRUX0EU.js} +1 -1
  91. package/dist/assets/{index-D76xStxp.js → index-B-Y7sDIj.js} +672 -529
  92. package/dist/assets/{index-Bo3CExk-.js → index-BHGYFXFB.js} +1 -1
  93. package/dist/assets/{index-DJ205bL0.css → index-DwKuVkBg.css} +52 -52
  94. package/dist/assets/{pickBy-DdpxIwij.js → pickBy-BdN6wCB-.js} +1 -1
  95. package/dist/assets/{templateActions-BCMgItKi.js → templateActions-FAVGvEAM.js} +1 -1
  96. package/dist/assets/{useBeforeUnload-CDzomPGL.js → useBeforeUnload-oRTjaea2.js} +1 -1
  97. package/dist/assets/{useCanvasMapping-D1DfqsUU.js → useCanvasMapping-CmD2j75y.js} +3 -3
  98. package/dist/assets/{useCanvasOperations-CAthHfOB.js → useCanvasOperations-DYORubSM.js} +23 -16
  99. package/dist/assets/{useClearExecutionButtonVisible-CnDyjcGF.js → useClearExecutionButtonVisible-ReuF4PkZ.js} +2 -2
  100. package/dist/assets/{useExecutionDebugging-Bm9sy3W3.js → useExecutionDebugging-I7MLJdC1.js} +1 -1
  101. package/dist/assets/{useExecutionHelpers-C_yBGArA.js → useExecutionHelpers-CyZuZAQA.js} +2 -2
  102. package/dist/assets/{useImportCurlCommand-CK-lTdZr.js → useImportCurlCommand-DZVwxoke.js} +2 -2
  103. package/dist/assets/{usePushConnection-potv7eom.js → usePushConnection-SgX-5Lz6.js} +14 -15
  104. package/dist/assets/{useTestDefinitionForm-Dlzud2C-.js → useTestDefinitionForm-gWQ_zjEl.js} +1 -1
  105. package/dist/assets/{useWorkflowActivate-BvmFVCGP.js → useWorkflowActivate-CX21vkKl.js} +1 -1
  106. package/dist/index.html +2 -2
  107. package/package.json +1 -1
  108. package/dist/assets/CollectionParameter-14_bIMyy.js +0 -4
  109. package/dist/assets/InsightsDashboard-oe5QP-_0.js +0 -154
  110. package/dist/assets/easyAiWorkflowUtils-C5xkiwuo.js +0 -181
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-editor-ui",
3
- "version": "1.87.1",
3
+ "version": "1.89.0",
4
4
  "description": "Workflow Editor UI for n8n",
5
5
  "main": "index.js",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -1,4 +0,0 @@
1
- import { gO as _sfc_main } from "./index-D76xStxp.js";
2
- export {
3
- _sfc_main as default
4
- };
@@ -1,154 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/InsightsPaywall-BCSe1GCl.js","assets/index-D76xStxp.js","assets/index-DJ205bL0.css","assets/InsightsPaywall-OeXh6LeZ.css","assets/InsightsChartTotal-YSqQgGkL.js","assets/index-Bo3CExk-.js","assets/chartjs.utils-BLcAAfTE.js","assets/InsightsSummary-Bf61oFlG.js","assets/InsightsSummary-W08OzElS.css","assets/InsightsChartFailed-BAnQv9pU.js","assets/InsightsChartFailureRate-CGRL86zw.js","assets/InsightsChartTimeSaved-BJmjC9xP.js","assets/InsightsChartAverageRuntime-CiI5y8BG.js","assets/InsightsTableWorkflows-B5M_o3Di.js","assets/InsightsTableWorkflows-Us3j4UTO.css"])))=>i.map(i=>d[i]);
2
- import { d as defineComponent, W as useRoute, gq as useInsightsStore, q as computed, bZ as defineAsyncComponent, I as watch, h as resolveComponent, i as createElementBlock, g as openBlock, j as createVNode, k as createBaseVNode, w as withCtx, l as createTextVNode, t as toDisplayString, m as unref, c as useI18n, e as createBlock, f as createCommentVNode, n as normalizeClass, F as Fragment, b2 as resolveDynamicComponent, aq as __vitePreload, _ as _export_sfc } from "./index-D76xStxp.js";
3
- import { I as InsightsSummary } from "./InsightsSummary-Bf61oFlG.js";
4
- const _sfc_main = /* @__PURE__ */ defineComponent({
5
- __name: "InsightsDashboard",
6
- props: {
7
- insightType: {}
8
- },
9
- setup(__props) {
10
- const InsightsPaywall = defineAsyncComponent(
11
- async () => await __vitePreload(() => import("./InsightsPaywall-BCSe1GCl.js"), true ? __vite__mapDeps([0,1,2,3]) : void 0)
12
- );
13
- const InsightsChartTotal = defineAsyncComponent(
14
- async () => await __vitePreload(() => import("./InsightsChartTotal-YSqQgGkL.js"), true ? __vite__mapDeps([4,5,1,2,6,7,8]) : void 0)
15
- );
16
- const InsightsChartFailed = defineAsyncComponent(
17
- async () => await __vitePreload(() => import("./InsightsChartFailed-BAnQv9pU.js"), true ? __vite__mapDeps([9,5,1,2,6,7,8]) : void 0)
18
- );
19
- const InsightsChartFailureRate = defineAsyncComponent(
20
- async () => await __vitePreload(() => import("./InsightsChartFailureRate-CGRL86zw.js"), true ? __vite__mapDeps([10,1,2,6,7,8,5]) : void 0)
21
- );
22
- const InsightsChartTimeSaved = defineAsyncComponent(
23
- async () => await __vitePreload(() => import("./InsightsChartTimeSaved-BJmjC9xP.js"), true ? __vite__mapDeps([11,1,2,6,7,8,5]) : void 0)
24
- );
25
- const InsightsChartAverageRuntime = defineAsyncComponent(
26
- async () => await __vitePreload(() => import("./InsightsChartAverageRuntime-CiI5y8BG.js"), true ? __vite__mapDeps([12,1,2,6,7,8,5]) : void 0)
27
- );
28
- const InsightsTableWorkflows = defineAsyncComponent(
29
- async () => await __vitePreload(() => import("./InsightsTableWorkflows-B5M_o3Di.js"), true ? __vite__mapDeps([13,1,2,7,8,14]) : void 0)
30
- );
31
- const props = __props;
32
- const route = useRoute();
33
- const i18n = useI18n();
34
- const insightsStore = useInsightsStore();
35
- const chartComponents = computed(() => ({
36
- total: InsightsChartTotal,
37
- failed: InsightsChartFailed,
38
- failureRate: InsightsChartFailureRate,
39
- timeSaved: InsightsChartTimeSaved,
40
- averageRunTime: InsightsChartAverageRuntime
41
- }));
42
- const getDefaultFilter = (query) => {
43
- const { time_span } = query;
44
- return {
45
- time_span: time_span ?? "7"
46
- };
47
- };
48
- const filters = computed(() => getDefaultFilter(route.query));
49
- const transformFilter = ({ id, desc }) => {
50
- const key = id;
51
- const order = desc ? "desc" : "asc";
52
- return `${key}:${order}`;
53
- };
54
- const fetchPaginatedTableData = ({
55
- page,
56
- itemsPerPage,
57
- sortBy
58
- }) => {
59
- const skip = page * itemsPerPage;
60
- const take = itemsPerPage;
61
- const sortKey = sortBy.length ? transformFilter(sortBy[0]) : void 0;
62
- void insightsStore.table.execute(0, {
63
- skip,
64
- take,
65
- sortBy: sortKey
66
- });
67
- };
68
- watch(
69
- () => filters.value.time_span,
70
- () => {
71
- if (insightsStore.isSummaryEnabled) {
72
- void insightsStore.summary.execute();
73
- }
74
- void insightsStore.charts.execute();
75
- void insightsStore.table.execute();
76
- },
77
- {
78
- immediate: true
79
- }
80
- );
81
- return (_ctx, _cache) => {
82
- const _component_N8nHeading = resolveComponent("N8nHeading");
83
- return openBlock(), createElementBlock("div", {
84
- class: normalizeClass(_ctx.$style.insightsView)
85
- }, [
86
- createVNode(_component_N8nHeading, {
87
- bold: "",
88
- tag: "h2",
89
- size: "xlarge"
90
- }, {
91
- default: withCtx(() => [
92
- createTextVNode(toDisplayString(unref(i18n).baseText("insights.dashboard.title")), 1)
93
- ]),
94
- _: 1
95
- }),
96
- createBaseVNode("div", null, [
97
- unref(insightsStore).isSummaryEnabled ? (openBlock(), createBlock(InsightsSummary, {
98
- key: 0,
99
- summary: unref(insightsStore).summary.state,
100
- loading: unref(insightsStore).summary.isLoading,
101
- class: normalizeClass(_ctx.$style.insightsBanner)
102
- }, null, 8, ["summary", "loading", "class"])) : createCommentVNode("", true),
103
- unref(insightsStore).isInsightsEnabled ? (openBlock(), createElementBlock("div", {
104
- key: 1,
105
- class: normalizeClass(_ctx.$style.insightsContent)
106
- }, [
107
- createBaseVNode("div", {
108
- class: normalizeClass(_ctx.$style.insightsChartWrapper)
109
- }, [
110
- unref(insightsStore).charts.isLoading ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
111
- createTextVNode(" loading ")
112
- ], 64)) : (openBlock(), createBlock(resolveDynamicComponent(chartComponents.value[props.insightType]), {
113
- key: 1,
114
- type: props.insightType,
115
- data: unref(insightsStore).charts.state
116
- }, null, 8, ["type", "data"]))
117
- ], 2),
118
- createBaseVNode("div", {
119
- class: normalizeClass(_ctx.$style.insightsTableWrapper)
120
- }, [
121
- createVNode(unref(InsightsTableWorkflows), {
122
- data: unref(insightsStore).table.state,
123
- loading: unref(insightsStore).table.isLoading,
124
- "onUpdate:options": fetchPaginatedTableData
125
- }, null, 8, ["data", "loading"])
126
- ], 2)
127
- ], 2)) : (openBlock(), createBlock(unref(InsightsPaywall), {
128
- key: 2,
129
- "data-test-id": "insights-dashboard-unlicensed"
130
- }))
131
- ])
132
- ], 2);
133
- };
134
- }
135
- });
136
- const insightsView = "_insightsView_1upqv_123";
137
- const insightsBanner = "_insightsBanner_1upqv_133";
138
- const insightsContent = "_insightsContent_1upqv_140";
139
- const insightsChartWrapper = "_insightsChartWrapper_1upqv_149";
140
- const insightsTableWrapper = "_insightsTableWrapper_1upqv_154";
141
- const style0 = {
142
- insightsView,
143
- insightsBanner,
144
- insightsContent,
145
- insightsChartWrapper,
146
- insightsTableWrapper
147
- };
148
- const cssModules = {
149
- "$style": style0
150
- };
151
- const InsightsDashboard = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
152
- export {
153
- InsightsDashboard as default
154
- };
@@ -1,181 +0,0 @@
1
- import { bu as NodeConnectionTypes } from "./index-D76xStxp.js";
2
- const getEasyAiWorkflowJson = ({
3
- isInstanceInAiFreeCreditsExperiment,
4
- withOpenAiFreeCredits
5
- }) => {
6
- let instructionsFirstStep = "Set up your [OpenAI credentials](https://docs.n8n.io/integrations/builtin/credentials/openai/?utm_source=n8n_app&utm_medium=credential_settings&utm_campaign=create_new_credentials_modal) in the `OpenAI Model` node";
7
- if (isInstanceInAiFreeCreditsExperiment) {
8
- instructionsFirstStep = `Claim your \`free\` ${withOpenAiFreeCredits} OpenAI calls in the \`OpenAI model\` node`;
9
- }
10
- return {
11
- name: "Demo: My first AI Agent in n8n",
12
- meta: {
13
- templateId: "PT1i+zU92Ii5O2XCObkhfHJR5h9rNJTpiCIkYJk9jHU="
14
- },
15
- nodes: [
16
- {
17
- id: "0d7e4666-bc0e-489a-9e8f-a5ef191f4954",
18
- name: "Google Calendar",
19
- type: "n8n-nodes-base.googleCalendarTool",
20
- typeVersion: 1.2,
21
- position: [880, 220],
22
- parameters: {
23
- operation: "getAll",
24
- calendar: {
25
- __rl: true,
26
- mode: "list"
27
- },
28
- returnAll: true,
29
- options: {
30
- timeMin: "={{ $fromAI('after', 'The earliest datetime we want to look for events for') }}",
31
- timeMax: "={{ $fromAI('before', 'The latest datetime we want to look for events for') }}",
32
- query: "={{ $fromAI('query', 'The search query to look for in the calendar. Leave empty if no search query is needed') }}",
33
- singleEvents: true
34
- }
35
- }
36
- },
37
- {
38
- id: "5b410409-5b0b-47bd-b413-5b9b1000a063",
39
- name: "When chat message received",
40
- type: "@n8n/n8n-nodes-langchain.chatTrigger",
41
- typeVersion: 1.1,
42
- position: [360, 20],
43
- webhookId: "a889d2ae-2159-402f-b326-5f61e90f602e",
44
- parameters: {
45
- options: {}
46
- }
47
- },
48
- {
49
- id: "29963449-1dc1-487d-96f2-7ff0a5c3cd97",
50
- name: "AI Agent",
51
- type: "@n8n/n8n-nodes-langchain.agent",
52
- typeVersion: 1.7,
53
- position: [560, 20],
54
- parameters: {
55
- options: {
56
- systemMessage: "=You're a helpful assistant that helps the user answer questions about their calendar.\n\nToday is {{ $now.format('cccc') }} the {{ $now.format('yyyy-MM-dd HH:mm') }}."
57
- }
58
- }
59
- },
60
- {
61
- id: "eae35513-07c2-4de2-a795-a153b6934c1b",
62
- name: "Sticky Note",
63
- type: "n8n-nodes-base.stickyNote",
64
- typeVersion: 1,
65
- position: [0, 0],
66
- parameters: {
67
- content: `## 👋 Welcome to n8n!
68
- This example shows how to build an AI Agent that interacts with your
69
- calendar.
70
-
71
- ### 1. Connect your accounts
72
- - ${instructionsFirstStep}
73
- - Connect your Google account in the \`Google Calendar\` node credentials section
74
-
75
- ### 2. Ready to test it?
76
- Click Chat below and start asking questions! For example you can try \`What meetings do I have today?\``,
77
- height: 389,
78
- width: 319,
79
- color: 6
80
- }
81
- },
82
- {
83
- id: "68b59889-7aca-49fd-a49b-d86fa6239b96",
84
- name: "Sticky Note1",
85
- type: "n8n-nodes-base.stickyNote",
86
- typeVersion: 1,
87
- position: [820, 200],
88
- parameters: {
89
- content: "\n\n\n\n\n\n\n\n\n\n\n\nDon't have **Google Calendar**? Simply exchange this with the **Microsoft Outlook** or other tools",
90
- height: 253,
91
- width: 226,
92
- color: 7
93
- }
94
- },
95
- {
96
- id: "cbaedf86-9153-4778-b893-a7e50d3e04ba",
97
- name: "OpenAI Model",
98
- type: "@n8n/n8n-nodes-langchain.lmChatOpenAi",
99
- typeVersion: 1,
100
- position: [520, 220],
101
- parameters: {
102
- options: {}
103
- }
104
- },
105
- {
106
- id: "75481370-bade-4d90-a878-3a3b0201edcc",
107
- name: "Memory",
108
- type: "@n8n/n8n-nodes-langchain.memoryBufferWindow",
109
- typeVersion: 1.3,
110
- position: [680, 220],
111
- parameters: {}
112
- },
113
- {
114
- id: "907552eb-6e0f-472e-9d90-4513a67a31db",
115
- name: "Sticky Note3",
116
- type: "n8n-nodes-base.stickyNote",
117
- typeVersion: 1,
118
- position: [0, 400],
119
- parameters: {
120
- content: "### Want to learn more?\nWant to learn more about AI and how to apply it best in n8n? Have a look at our [new tutorial series on YouTube](https://www.youtube.com/watch?v=yzvLfHb0nqE&lc).",
121
- height: 100,
122
- width: 317,
123
- color: 6
124
- }
125
- }
126
- ],
127
- connections: {
128
- "Google Calendar": {
129
- ai_tool: [
130
- [
131
- {
132
- node: "AI Agent",
133
- type: NodeConnectionTypes.AiTool,
134
- index: 0
135
- }
136
- ]
137
- ]
138
- },
139
- "When chat message received": {
140
- main: [
141
- [
142
- {
143
- node: "AI Agent",
144
- type: NodeConnectionTypes.Main,
145
- index: 0
146
- }
147
- ]
148
- ]
149
- },
150
- "OpenAI Model": {
151
- ai_languageModel: [
152
- [
153
- {
154
- node: "AI Agent",
155
- type: NodeConnectionTypes.AiLanguageModel,
156
- index: 0
157
- }
158
- ]
159
- ]
160
- },
161
- Memory: {
162
- ai_memory: [
163
- [
164
- {
165
- node: "AI Agent",
166
- type: NodeConnectionTypes.AiMemory,
167
- index: 0
168
- }
169
- ]
170
- ]
171
- }
172
- },
173
- settings: {
174
- executionOrder: "v1"
175
- },
176
- pinData: {}
177
- };
178
- };
179
- export {
180
- getEasyAiWorkflowJson as g
181
- };