{"name":"csv-to-db","description":null,"organizationId":22461,"isEnabled":false,"crontab":null,"timezone":"America/New_York","blockData":[{"top":48,"left":48,"uuid":"ee1626d2-c19d-4de8-87d6-73c920809609","options":{},"pluginId":"startTrigger","blockType":"webhook","editorType":"JavascriptQuery","environment":"production","isMinimized":false,"resourceName":"webhook","incomingOnSuccessEdges":[]},{"top":48,"left":448,"uuid":"07f62bd7-fa1c-48ec-bf78-c07fbf3ad906","pluginId":"getCSV","blockType":"default","editorType":"RetoolStorageQuery","environment":"production","resourceName":"retool_storage","incomingOnSuccessEdges":["ee1626d2-c19d-4de8-87d6-73c920809609"]},{"top":48,"left":912,"uuid":"dd69d12a-7ab9-45df-966e-4923df453db1","pluginId":"decodeCSV","blockType":"code","editorType":"JavascriptQuery","environment":"production","resourceName":"JavascriptQuery","incomingOnSuccessEdges":["07f62bd7-fa1c-48ec-bf78-c07fbf3ad906"]},{"top":40,"left":40,"uuid":"21f12a6c-87d4-4ff2-a411-dde1dd67ebe9","options":{"parameters":[{"id":"b85c2216-a823-47ce-9514-4d03727126f6","name":"base64String","exampleValue":"123"}]},"pluginId":"decodeBase64CSV","blockType":"function","editorType":"JavascriptQuery","environment":"production","resourceName":"JavascriptQuery","incomingOnSuccessEdges":[]},{"top":48,"left":1312,"uuid":"a037d4ec-84f4-4c74-8803-dcec910383f1","pluginId":"convertToJSON","blockType":"code","editorType":"JavascriptQuery","environment":"production","resourceName":"JavascriptQuery","incomingOnSuccessEdges":["dd69d12a-7ab9-45df-966e-4923df453db1"]},{"top":48,"left":2224,"uuid":"4a9cdeea-efcf-48c6-96a6-b40b3ee18676","pluginId":"insertIntoTable","blockType":"default","editorType":"SqlQueryUnified","environment":"production","resourceName":"43af5d16-f347-455c-aaf0-851bd91a532e","incomingOnSuccessEdges":["c36ffce1-0530-41e1-9d76-c694a3927afa"]},{"top":40,"left":40,"uuid":"9ed4d805-f32a-4c52-8e89-1d7ec7bb493e","options":{"parameters":[{"id":"e1c15328-7a7d-4597-bf20-bdd1385888e6","name":"decodedString","exampleValue":"123\\n456\\n"}]},"pluginId":"csvToJSON","blockType":"function","editorType":"JavascriptQuery","environment":"production","resourceName":"JavascriptQuery","incomingOnSuccessEdges":[]},{"top":48,"left":1744,"uuid":"c36ffce1-0530-41e1-9d76-c694a3927afa","pluginId":"truncateTable","blockType":"default","editorType":"SqlQueryUnified","environment":"production","resourceName":"43af5d16-f347-455c-aaf0-851bd91a532e","incomingOnSuccessEdges":["a037d4ec-84f4-4c74-8803-dcec910383f1"]}],"templateData":"[\"~#iR\",[\"^ \",\"n\",\"appTemplate\",\"v\",[\"^ \",\"appMaxWidth\",\"100%\",\"appStyles\",\"\",\"appTesting\",null,\"appThemeId\",null,\"appThemeModeId\",null,\"appThemeName\",null,\"createdAt\",null,\"customComponentCollections\",[],\"customDocumentTitle\",\"\",\"customDocumentTitleEnabled\",false,\"customShortcuts\",[],\"experimentalDataTabEnabled\",false,\"experimentalFeatures\",[\"^ \",\"disableMultiplayerEditing\",false,\"multiplayerEditingEnabled\",false,\"sourceControlTemplateDehydration\",false],\"folders\",[\"~#iL\",[]],\"formAppSettings\",[\"^ \",\"customRedirectUrl\",\"\"],\"inAppRetoolPillAppearance\",\"NO_OVERRIDE\",\"instrumentationEnabled\",false,\"internationalizationSettings\",[\"^ \",\"internationalizationEnabled\",false,\"internationalizationFiles\",[]],\"isFetching\",false,\"isFormApp\",false,\"isGlobalWidget\",false,\"isMobileApp\",false,\"loadingIndicatorsDisabled\",false,\"markdownLinkBehavior\",\"auto\",\"mobileAppSettings\",[\"^ \",\"displaySetting\",[\"^ \",\"landscapeMode\",false,\"tabletMode\",false],\"mobileOfflineModeBannerMode\",\"default\",\"mobileOfflineModeDelaySync\",false,\"mobileOfflineModeEnabled\",false],\"mobileOfflineAssets\",[],\"multiScreenMobileApp\",false,\"notificationsSettings\",[\"^ \",\"globalQueryShowFailureToast\",true,\"globalQueryShowSuccessToast\",false,\"globalQueryToastDuration\",4.5,\"globalToastPosition\",\"bottomRight\"],\"pageCodeFolders\",[\"^ \"],\"pageLoadValueOverrides\",[\"^B\",[]],\"persistUrlParams\",false,\"plugins\",[\"~#iOM\",[\"startTrigger\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"startTrigger\",\"uuid\",null,\"type\",\"datasource\",\"subtype\",\"JavascriptQuery\",\"namespace\",null,\"resourceName\",\"JavascriptQuery\",\"resourceDisplayName\",null,\"template\",[\"~#iM\",[\"queryRefreshTime\",\"\",\"allowedGroupIds\",[\"^B\",[]],\"streamResponse\",false,\"lastReceivedFromResourceAt\",null,\"isFunction\",false,\"functionParameters\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"functionDescription\",null,\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"workflowRunExecutionType\",\"sync\",\"showFailureToaster\",true,\"query\",\"\\n  const evalStartTriggerBlock = () => {\\n    const getExampleInputJSON = () => {\\n      try {\\n        return {\\n  \\\"folderName\\\":\\\"123\\\",\\n  \\\"fileName\\\": \\\"123\\\",\\n  \\\"url\\\":\\\"123\\\"  \\n}\\n      } catch {\\n        return { error: true, message: 'Error parsing example input JSON' }\\n      }\\n    }\\n    const getExamplePathParams = () => {\\n      try {\\n        return {}\\n      } catch {\\n        return { error: true, message: 'Error parsing example path params' }\\n      }\\n    }\\n    const getExampleHeaders = () => {\\n      try {\\n        return {}\\n      } catch {\\n        return { error: true, message: 'Error parsing example headers' }\\n      }\\n    }\\n    return {\\n      _retool_exampleInputJSON: getExampleInputJSON(),\\n      _retool_exampleHeaders: getExampleHeaders(),\\n      _retool_examplePathParams: getExamplePathParams(),\\n    }\\n  }\\n  return evalStartTriggerBlock()\\n  \",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"workflowRunBodyType\",\"raw\",\"privateParams\",[\"^B\",[]],\"queryRunOnSelectorUpdate\",false,\"runWhenPageLoadsDelay\",\"\",\"data\",null,\"importedQueryInputs\",[\"^1>\",[]],\"_additionalScope\",[\"^B\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"queryRunTime\",null,\"changesetObject\",\"\",\"offlineOptimisticResponse\",null,\"errorTransformer\",\"return data.error\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^B\",[]],\"enableErrorTransformer\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^1>\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"overrideOrgCacheForUserCache\",false,\"runWhenPageLoads\",false,\"transformer\",\"return data\",\"events\",[\"^B\",[]],\"queryTimeout\",\"10000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^B\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"style\",null,\"position2\",null,\"mobilePosition2\",null,\"mobileAppPosition\",null,\"tabIndex\",null,\"container\",\"\",\"^7\",\"~m1749588263274\",\"updatedAt\",\"~m1749651479306\",\"folder\",\"\",\"presetName\",null,\"screen\",null,\"boxId\",null,\"subBoxIds\",null]]],\"getCSV\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"getCSV\",\"^17\",null,\"^18\",\"datasource\",\"^19\",\"RetoolStorageQuery\",\"^1:\",null,\"^1;\",\"retool_storage\",\"^1<\",null,\"^1=\",[\"^1>\",[\"queryRefreshTime\",\"\",\"allowedGroupIds\",[\"^B\",[]],\"streamResponse\",false,\"lastReceivedFromResourceAt\",null,\"isFunction\",false,\"functionParameters\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"functionDescription\",null,\"successMessage\",\"\",\"queryDisabled\",\"\",\"dataSource\",[\"^B\",[]],\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"workflowRunExecutionType\",\"sync\",\"showFailureToaster\",true,\"fileName\",\"\",\"query\",\"\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"workflowRunBodyType\",\"raw\",\"privateParams\",[\"^B\",[]],\"queryRunOnSelectorUpdate\",false,\"runWhenPageLoadsDelay\",\"\",\"data\",\"\",\"selectFolderNameBy\",\"dropdown\",\"importedQueryInputs\",[\"^1>\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"queryRunTime\",null,\"actionType\",\"read\",\"shouldOverwriteOnNameCollision\",false,\"pageSize\",\"100\",\"changesetObject\",\"\",\"offlineOptimisticResponse\",null,\"errorTransformer\",\"return data.error\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"isPublic\",false,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^B\",[]],\"enableErrorTransformer\",false,\"showLatestVersionUpdatedWarning\",false,\"dynamicFileId\",true,\"timestamp\",0,\"evalType\",\"script\",\"enableAsyncFileUpload\",false,\"importedQueryDefaults\",[\"^1>\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"fileId\",\"{{ startTrigger.data.url }}\",\"uploadBy\",\"component\",\"pageNumber\",\"1\",\"overrideOrgCacheForUserCache\",false,\"folderName\",\"\",\"runWhenPageLoads\",false,\"transformer\",\"return data\",\"events\",[\"^B\",[]],\"newFolderName\",\"\",\"queryTimeout\",\"10000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^B\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^1?\",null,\"^1@\",null,\"^1A\",null,\"^1B\",null,\"^1C\",null,\"^1D\",\"\",\"^7\",\"~m1749588322521\",\"^1E\",\"~m1749651346987\",\"^1F\",\"\",\"^1G\",null,\"^1H\",null,\"^1I\",null,\"^1J\",null]]],\"decodeCSV\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"decodeCSV\",\"^17\",null,\"^18\",\"datasource\",\"^19\",\"JavascriptQuery\",\"^1:\",null,\"^1;\",\"JavascriptQuery\",\"^1<\",null,\"^1=\",[\"^1>\",[\"queryRefreshTime\",\"\",\"allowedGroupIds\",[\"^B\",[]],\"streamResponse\",false,\"lastReceivedFromResourceAt\",null,\"isFunction\",false,\"functionParameters\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"functionDescription\",null,\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"workflowRunExecutionType\",\"sync\",\"showFailureToaster\",true,\"query\",\"let csvContent = await decodeBase64CSV(getCSV.data.base64Data);\\nconsole.log(csvContent);\\n\\nreturn csvContent;\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"workflowRunBodyType\",\"raw\",\"privateParams\",[\"^B\",[]],\"queryRunOnSelectorUpdate\",false,\"runWhenPageLoadsDelay\",\"\",\"data\",null,\"importedQueryInputs\",[\"^1>\",[]],\"_additionalScope\",[\"^B\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"queryRunTime\",null,\"changesetObject\",\"\",\"offlineOptimisticResponse\",null,\"errorTransformer\",\"return data.error\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^B\",[]],\"enableErrorTransformer\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^1>\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"overrideOrgCacheForUserCache\",false,\"runWhenPageLoads\",false,\"transformer\",\"return data\",\"events\",[\"^B\",[]],\"queryTimeout\",\"10000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^B\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^1?\",null,\"^1@\",null,\"^1A\",null,\"^1B\",null,\"^1C\",null,\"^1D\",\"\",\"^7\",\"~m1749588499915\",\"^1E\",\"~m1749588745254\",\"^1F\",\"\",\"^1G\",null,\"^1H\",null,\"^1I\",null,\"^1J\",null]]],\"decodeBase64CSV\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"decodeBase64CSV\",\"^17\",null,\"^18\",\"datasource\",\"^19\",\"JavascriptQuery\",\"^1:\",null,\"^1;\",\"JavascriptQuery\",\"^1<\",null,\"^1=\",[\"^1>\",[\"queryRefreshTime\",\"\",\"allowedGroupIds\",[\"^B\",[]],\"streamResponse\",false,\"lastReceivedFromResourceAt\",null,\"isFunction\",false,\"functionParameters\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"functionDescription\",null,\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"workflowRunExecutionType\",\"sync\",\"showFailureToaster\",true,\"query\",\"const binaryString = atob(base64String);\\n  \\n// Convert binary string to text (handles UTF-8 characters)\\nconst csvText = new TextDecoder().decode(Uint8Array.from(binaryString, char => char.charCodeAt(0))\\n  );\\n  \\nreturn csvText;\\n\\n\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"workflowRunBodyType\",\"raw\",\"privateParams\",[\"^B\",[]],\"queryRunOnSelectorUpdate\",false,\"runWhenPageLoadsDelay\",\"\",\"data\",null,\"importedQueryInputs\",[\"^1>\",[]],\"_additionalScope\",[\"^B\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"queryRunTime\",null,\"changesetObject\",\"\",\"offlineOptimisticResponse\",null,\"errorTransformer\",\"return data.error\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^B\",[]],\"enableErrorTransformer\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^1>\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"overrideOrgCacheForUserCache\",false,\"runWhenPageLoads\",false,\"transformer\",\"return data\",\"events\",[\"^B\",[]],\"queryTimeout\",\"10000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^B\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^1?\",null,\"^1@\",null,\"^1A\",null,\"^1B\",null,\"^1C\",null,\"^1D\",\"\",\"^7\",\"~m1749588527030\",\"^1E\",\"~m1749588675386\",\"^1F\",\"\",\"^1G\",null,\"^1H\",null,\"^1I\",null,\"^1J\",null]]],\"convertToJSON\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"convertToJSON\",\"^17\",null,\"^18\",\"datasource\",\"^19\",\"JavascriptQuery\",\"^1:\",null,\"^1;\",\"JavascriptQuery\",\"^1<\",null,\"^1=\",[\"^1>\",[\"queryRefreshTime\",\"\",\"allowedGroupIds\",[\"^B\",[]],\"streamResponse\",false,\"lastReceivedFromResourceAt\",null,\"isFunction\",false,\"functionParameters\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"functionDescription\",null,\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"workflowRunExecutionType\",\"sync\",\"showFailureToaster\",true,\"query\",\"const csvContent = await csvToJSON(decodeCSV.data.data);\\n\\nreturn csvContent;\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"workflowRunBodyType\",\"raw\",\"privateParams\",[\"^B\",[]],\"queryRunOnSelectorUpdate\",false,\"runWhenPageLoadsDelay\",\"\",\"data\",null,\"importedQueryInputs\",[\"^1>\",[]],\"_additionalScope\",[\"^B\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"queryRunTime\",null,\"changesetObject\",\"\",\"offlineOptimisticResponse\",null,\"errorTransformer\",\"return data.error\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^B\",[]],\"enableErrorTransformer\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^1>\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"overrideOrgCacheForUserCache\",false,\"runWhenPageLoads\",false,\"transformer\",\"return data\",\"events\",[\"^B\",[]],\"queryTimeout\",\"10000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^B\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^1?\",null,\"^1@\",null,\"^1A\",null,\"^1B\",null,\"^1C\",null,\"^1D\",\"\",\"^7\",\"~m1749588795500\",\"^1E\",\"~m1749649789070\",\"^1F\",\"\",\"^1G\",null,\"^1H\",null,\"^1I\",null,\"^1J\",null]]],\"insertIntoTable\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"insertIntoTable\",\"^17\",null,\"^18\",\"datasource\",\"^19\",\"SqlQueryUnified\",\"^1:\",null,\"^1;\",\"43af5d16-f347-455c-aaf0-851bd91a532e\",\"^1<\",null,\"^1=\",[\"^1>\",[\"queryRefreshTime\",\"\",\"allowedGroupIds\",[\"^B\",[]],\"streamResponse\",false,\"records\",\"{{ convertToJSON.data.data }}\",\"lastReceivedFromResourceAt\",null,\"isFunction\",false,\"databasePasswordOverride\",\"\",\"functionParameters\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"functionDescription\",null,\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"workflowRunExecutionType\",\"sync\",\"showFailureToaster\",true,\"query\",\"\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"workflowRunBodyType\",\"raw\",\"privateParams\",[\"^B\",[]],\"queryRunOnSelectorUpdate\",false,\"runWhenPageLoadsDelay\",\"\",\"data\",null,\"recordId\",\"\",\"importedQueryInputs\",[\"^1>\",[]],\"_additionalScope\",[\"^B\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"dataArray\",[\"^B\",[]],\"cacheKeyTtl\",\"\",\"filterBy\",\"\",\"requestSentTimestamp\",null,\"databaseHostOverride\",\"\",\"metadata\",null,\"editorMode\",\"gui\",\"queryRunTime\",null,\"actionType\",\"BULK_INSERT\",\"changesetObject\",\"\",\"shouldUseLegacySql\",false,\"offlineOptimisticResponse\",null,\"errorTransformer\",\"return data.error\",\"finished\",null,\"databaseNameOverride\",\"\",\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^B\",[]],\"enableErrorTransformer\",false,\"databaseWarehouseOverride\",\"\",\"enableBulkUpdates\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^1>\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"overrideOrgCacheForUserCache\",false,\"bulkUpdatePrimaryKey\",\"\",\"runWhenPageLoads\",false,\"transformer\",\"return data\",\"events\",[\"^B\",[]],\"tableName\",\"etl_table\",\"queryTimeout\",\"10000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^B\",[]],\"databaseUsernameOverride\",\"\",\"databaseRoleOverride\",\"\",\"shouldEnableBatchQuerying\",false,\"doNotThrowOnNoOp\",false,\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^1?\",null,\"^1@\",null,\"^1A\",null,\"^1B\",null,\"^1C\",null,\"^1D\",\"\",\"^7\",\"~m1749588819318\",\"^1E\",\"~m1749650042677\",\"^1F\",\"\",\"^1G\",null,\"^1H\",null,\"^1I\",null,\"^1J\",null]]],\"csvToJSON\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"csvToJSON\",\"^17\",null,\"^18\",\"datasource\",\"^19\",\"JavascriptQuery\",\"^1:\",null,\"^1;\",\"JavascriptQuery\",\"^1<\",null,\"^1=\",[\"^1>\",[\"queryRefreshTime\",\"\",\"allowedGroupIds\",[\"^B\",[]],\"streamResponse\",false,\"lastReceivedFromResourceAt\",null,\"isFunction\",false,\"functionParameters\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"functionDescription\",null,\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"workflowRunExecutionType\",\"sync\",\"showFailureToaster\",true,\"query\",\"// Split into lines and get headers\\nconst lines = decodedString.split('\\\\n');\\nconst headers = lines[0].split(',').map(header => {\\n\\n// Clean up header and convert to snake_case\\nconst cleanHeader = header.replace(/^\\\"(.*)\\\"$/, '$1').trim();\\nreturn cleanHeader\\n      .toLowerCase()\\n      .replace(/[^\\\\w\\\\s]/g, '') // Remove special characters\\n      .replace(/\\\\s+/g, '_');   // Replace spaces with underscores\\n});\\n  \\n// Process data rows\\nconst result = [];\\nfor (let i = 1; i < lines.length; i++) {\\n  if (!lines[i].trim()) continue; // Skip empty lines\\n    \\n  // Handle quoted values with commas inside them\\n  const row = {};\\n  let currentPosition = 0;\\n  let fieldValue = '';\\n  let inQuotes = false;\\n    \\n  for (let j = 0; j < headers.length; j++) {\\n    // Reset for new field\\n    fieldValue = '';\\n      \\n  // Process characters until we find a comma outside quotes or end of line\\n    while (currentPosition < lines[i].length) {\\n      const char = lines[i][currentPosition];\\n        \\n      // Handle quotes\\n      if (char === '\\\"') {\\n        inQuotes = !inQuotes;\\n        currentPosition++;\\n        continue;\\n      }\\n        \\n      // If we hit a comma outside quotes, we're done with this field\\n      if (char === ',' && !inQuotes) {\\n        currentPosition++;\\n        break;\\n      }\\n        \\n      // Add character to field value\\n      fieldValue += char;\\n      currentPosition++;\\n    }\\n      \\n    // Add field to row object\\n    row[headers[j]] = fieldValue;\\n  }\\n    \\n  result.push(row);\\n}\\nreturn result;\\n\\n\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"workflowRunBodyType\",\"raw\",\"privateParams\",[\"^B\",[]],\"queryRunOnSelectorUpdate\",false,\"runWhenPageLoadsDelay\",\"\",\"data\",null,\"importedQueryInputs\",[\"^1>\",[]],\"_additionalScope\",[\"^B\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"cacheKeyTtl\",\"\",\"requestSentTimestamp\",null,\"metadata\",null,\"queryRunTime\",null,\"changesetObject\",\"\",\"offlineOptimisticResponse\",null,\"errorTransformer\",\"return data.error\",\"finished\",null,\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^B\",[]],\"enableErrorTransformer\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^1>\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"overrideOrgCacheForUserCache\",false,\"runWhenPageLoads\",false,\"transformer\",\"return data\",\"events\",[\"^B\",[]],\"queryTimeout\",\"10000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^B\",[]],\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^1?\",null,\"^1@\",null,\"^1A\",null,\"^1B\",null,\"^1C\",null,\"^1D\",\"\",\"^7\",\"~m1749588859718\",\"^1E\",\"~m1749649811931\",\"^1F\",\"\",\"^1G\",null,\"^1H\",null,\"^1I\",null,\"^1J\",null]]],\"truncateTable\",[\"^0\",[\"^ \",\"n\",\"pluginTemplate\",\"v\",[\"^ \",\"id\",\"truncateTable\",\"^17\",null,\"^18\",\"datasource\",\"^19\",\"SqlQueryUnified\",\"^1:\",null,\"^1;\",\"43af5d16-f347-455c-aaf0-851bd91a532e\",\"^1<\",null,\"^1=\",[\"^1>\",[\"queryRefreshTime\",\"\",\"allowedGroupIds\",[\"^B\",[]],\"streamResponse\",false,\"records\",\"\",\"lastReceivedFromResourceAt\",null,\"isFunction\",false,\"databasePasswordOverride\",\"\",\"functionParameters\",null,\"queryDisabledMessage\",\"\",\"servedFromCache\",false,\"offlineUserQueryInputs\",\"\",\"functionDescription\",null,\"successMessage\",\"\",\"queryDisabled\",\"\",\"playgroundQuerySaveId\",\"latest\",\"workflowParams\",null,\"resourceNameOverride\",\"\",\"runWhenModelUpdates\",false,\"workflowRunExecutionType\",\"sync\",\"showFailureToaster\",true,\"query\",\"TRUNCATE TABLE etl_table RESTART IDENTITY;\",\"playgroundQueryUuid\",\"\",\"playgroundQueryId\",null,\"error\",null,\"workflowRunBodyType\",\"raw\",\"privateParams\",[\"^B\",[]],\"queryRunOnSelectorUpdate\",false,\"runWhenPageLoadsDelay\",\"\",\"warningCodes\",[\"^B\",[]],\"data\",null,\"recordId\",\"\",\"importedQueryInputs\",[\"^1>\",[]],\"_additionalScope\",[\"^B\",[]],\"isImported\",false,\"showSuccessToaster\",true,\"dataArray\",[\"^B\",[]],\"cacheKeyTtl\",\"\",\"filterBy\",\"\",\"requestSentTimestamp\",null,\"databaseHostOverride\",\"\",\"metadata\",null,\"editorMode\",\"sql\",\"queryRunTime\",null,\"actionType\",\"\",\"changesetObject\",\"\",\"shouldUseLegacySql\",false,\"offlineOptimisticResponse\",null,\"errorTransformer\",\"return data.error\",\"finished\",null,\"databaseNameOverride\",\"\",\"confirmationMessage\",null,\"isFetching\",false,\"changeset\",\"\",\"rawData\",null,\"queryTriggerDelay\",\"0\",\"resourceTypeOverride\",null,\"watchedParams\",[\"^B\",[]],\"enableErrorTransformer\",false,\"databaseWarehouseOverride\",\"\",\"enableBulkUpdates\",false,\"showLatestVersionUpdatedWarning\",false,\"timestamp\",0,\"evalType\",\"script\",\"importedQueryDefaults\",[\"^1>\",[]],\"enableTransformer\",false,\"showUpdateSetValueDynamicallyToggle\",true,\"overrideOrgCacheForUserCache\",false,\"bulkUpdatePrimaryKey\",\"\",\"runWhenPageLoads\",false,\"transformer\",\"return data\",\"events\",[\"^B\",[]],\"tableName\",\"\",\"queryTimeout\",\"10000\",\"workflowId\",null,\"requireConfirmation\",false,\"queryFailureConditions\",\"\",\"changesetIsObject\",false,\"enableCaching\",false,\"allowedGroups\",[\"^B\",[]],\"databaseUsernameOverride\",\"\",\"databaseRoleOverride\",\"\",\"shouldEnableBatchQuerying\",false,\"doNotThrowOnNoOp\",false,\"offlineQueryType\",\"None\",\"queryThrottleTime\",\"750\",\"updateSetValueDynamically\",false,\"notificationDuration\",\"\"]],\"^1?\",null,\"^1@\",null,\"^1A\",null,\"^1B\",null,\"^1C\",null,\"^1D\",\"\",\"^7\",\"~m1749589922150\",\"^1E\",\"~m1749649956289\",\"^1F\",\"\",\"^1G\",null,\"^1H\",null,\"^1I\",null,\"^1J\",null]]]]],\"preloadedAppJavaScript\",null,\"preloadedAppJSLinks\",[],\"queryStatusVisibility\",false,\"responsiveLayoutDisabled\",false,\"rootScreen\",null,\"savePlatform\",\"web\",\"shortlink\",null,\"testEntities\",[],\"tests\",[],\"urlFragmentDefinitions\",[\"^B\",[]],\"version\",\"3.222.0\",\"serializedLayout\",null,\"agentEvals\",[\"^ \"]]]]","triggerWebhooks":[{"name":"startTrigger","uuid":"startTrigger","headers":"{}","inputSchema":{"properties":[]},"useHeaderApiKey":false,"exampleInputJSON":"{\n  \"folderName\":\"123\",\n  \"fileName\": \"123\",\n  \"url\":\"123\"  \n}","examplePathParams":""}],"customLibraries":[{"version":"4.17.21","language":"javascript","variable":"_","codeString":"/* Edit library variable below */\n\nconst _ = require('lodash')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require(\"mathjs\") */\n","libraryName":"lodash"},{"version":"2.1.0","language":"javascript","variable":"numbro","codeString":"/* Edit library variable below */\n\nconst numbro = require('numbro')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require(\"mathjs\") */\n","libraryName":"numbro"},{"version":"5.3.2","language":"javascript","variable":"Papa","codeString":"/* Edit library variable below */\n\nconst Papa = require('papaparse')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require(\"mathjs\") */\n","libraryName":"papaparse"},{"version":"0.5.23","language":"javascript","variable":"moment","codeString":"/* Edit library variable below */\n\nconst moment = require('moment-timezone')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require(\"mathjs\") */\n","libraryName":"moment-timezone"},{"version":"3.4.0","language":"javascript","variable":"uuid","codeString":"/* Edit library variable below */\n\nconst uuid = require('uuid')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require(\"mathjs\") */\n","libraryName":"uuid"}],"createdBy":829469,"protected":false,"setupScripts":{"python":{"codeString":""},"javascript":{"codeString":"// lodash\n/* Edit library variable below */\n\nconst _ = require('lodash')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require(\"mathjs\") */\n\n// numbro\n/* Edit library variable below */\n\nconst numbro = require('numbro')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require(\"mathjs\") */\n\n// papaparse\n/* Edit library variable below */\n\nconst Papa = require('papaparse')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require(\"mathjs\") */\n\n// moment-timezone\n/* Edit library variable below */\n\nconst moment = require('moment-timezone')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require(\"mathjs\") */\n\n// uuid\n/* Edit library variable below */\n\nconst uuid = require('uuid')\n\n/* Add destructured imports from library below\neg. const { pow, log } = require(\"mathjs\") */\n"}},"subflows":[],"type":"workflow","iconName":null,"iconColor":null,"hasProtectedTriggers":false,"protectedTriggers":[]}