Locoia
  • Overview
  • Account and User Settings
    • User types
    • Adding Users
    • Teams
    • Access Permissions
    • 2 Factor Authentication 2FA
    • Versioning and Snapshots
    • Activity Log
  • Reset your Password
  • Invoices and Payments
  • Automation
    • Flow Builder
      • Flow Building Best Practices
      • Jinja Template Language
        • Jinja: (Custom) variables, wildcards and functions
        • Magic Code Samples
      • Connectors & APIs
        • Titles and References
        • Referencing data of objects, lists, arrays - how to pass data dynamically
        • Accessing Objects with JSONPath
        • Merging nested JSON objects
        • Parsing JSONs from String
        • Response Headers & Status Codes
        • Custom Data Fields
        • Wildcard API calls and actions
        • Response cleaning
      • Text Strings, Date & Time, Numbers and Currencies
        • Text and Strings
        • Dates & Time
        • Numbers (Thousand Separators, Currencies)
      • Email-formatting
      • Code Fields
      • Running single Flow steps
      • Flow run data retention, logging, and error notifications
      • Advanced View
      • Dynamic Title
      • Custom Error Handling
      • Error Handling Flows
      • Automatic Pagination
    • Flow Debugger
      • Automatic Retrying
      • Run Flows again
      • Troubleshooting Flows
    • Community Library
  • Connectors & Helpers
    • Connectors
      • Monday.com
      • ActiveCampaign
      • Aircall
      • Allthings
      • Amplitude
      • Animus
      • Assetti
      • Awork
      • AWS RDS Database - How to connect
      • bubble.io
      • Casavi
      • Chargebee
      • CleverReach
      • comgy
      • commercetools
      • Everreal
      • Exact Online
      • Facebook Marketing
      • Fahrländer Partner
      • FastBill
      • FILESTAGE.io
      • Freshdesk
      • Freshsales
      • Google Ads
      • Google Ads Lead Form
      • Google Analytics
      • Google Chat
      • Google Drive
      • Google Sheets
      • Gmail
      • HubSpot
      • Heyflow
      • iDWELL
      • ImmobilienScout24
      • Instagram Ads
      • Intercom
      • klaviyo
      • Kiwi Opening Doors
      • Klenty
      • Klipfolio
      • Kolibri CRM
      • konfipay
      • KUGU
      • Shopify
      • S3 AWS
      • SQS AWS
      • Lambda AWS
      • Learnster
      • lexoffice
      • LineMetrics
      • Linkedin
      • Locoia
      • Notion
      • MailGun
      • Makula
      • Microsoft Dynamics 365
      • Microsoft OneDrive
      • MixPanel
      • MongoDB
      • Odoo
      • OnFleet
      • OnOffice
      • Oracle NetSuite
      • Outbrain
      • Quickbooks
      • Trello
      • PandaDoc
      • Personio
      • Pinterest Ads
      • Pipedrive
      • Plentific
      • PriceHubble
      • relay
      • REALCUBE
      • Sage ERP
      • Salesforce
      • SAP
      • Scoro
      • Seafile
      • sevDesk
      • SharePoint
      • SharpSpring
      • Slack
      • Snapchat Marketing
      • Snowflake
      • Teamleader Focus
      • Teamwork.com
      • Tableau
      • TikTok
      • TinQwise
      • The Trade Desk
      • Twitter
      • Typeform
      • WordPress
      • Xero
      • Youtube
      • Zendesk
      • Zoho CRM
      • Zoom
    • Helpers
      • Scheduler
      • Webhook
      • Dict Helper
      • Spreadsheet Helper
      • REST Helper
      • Boolean Helper
      • Multi Case Helper
      • Looper
      • FTP Helper
      • CSV Helper
      • XLSX Helper
      • Mail Sender
      • Flow Trigger
      • File Storage Helper
      • Terminate Helper
      • Delay Helper
      • SQL Connector
      • PDF Helper
      • Zip Helper
      • Data Warehouse Helper
      • XML Helper
      • Form Helper
      • Arrow
      • Error Arrow
    • Authentication Types Available
      • Setting up authentication
      • OAuth1
      • OAuth2
      • Refreshable token
      • AWS Signature
      • Basic Auth and Other Simple Authentication Methods
      • How are API versioning and API updates handeled?
      • Custom OAuth2 clients (apps)
    • Building Connectors
      • Base Connector Setup
        • Connector Auth Validation
        • GraphQL APIs
        • Rendering with User Input
      • Building Connector Actions
        • Actions Examples
      • Search Automation
      • Pagination Automation
      • Uploading Files in Actions
      • Working with SOAP APIs
    • Super Actions
    • Webhook Trigger for Connectors
    • Data Mapping and Env Variables
  • Embed - White Label Portal
    • Embed Overview
      • 1. Embed Flow
        • 1.1 Creating Embed Flows
        • 1.2 Updating Embed Flows
        • 1.3 Embed Error Handling
        • 1.4 Setting up Callbacks for Integration activation/deactivation
        • 1.5 Setting up Remote search
        • 1.6 Setting up End User logs
      • 2. Configure Embed
        • 2.1 Embed Integration via SSO
        • 2.2 Proprietary connector setup
        • 2.3 Sharing level
        • 2.4 Consent screen
        • 2.5 Account Secrets
        • 2.7 Further settings
      • 3. Integrate Embed
        • 3.1 iframe vs native embed
        • 3.2 Customizing CSS
        • 3.3 Events emitted from iframe to parent window
      • 4. Embed for End User
        • 4.1 Embed Remote Search
        • 4.2 Embed End User Logs
      • 5. Test Embed Configuration
        • Testing example
      • 6. Embed Integrations and Connector Auths
    • Embed FAQs
  • Data and Dashboards
    • Dashboards & Insights
      • Introduction to Dashboards
      • Introduction to Insights
      • Introduction to Data Sources
      • Dashboard Filters
      • Insight Marketplace - Using Pre-Built Insights
      • Writing SQL Queries
      • Useful SQL Examples
      • Charts
        • Line Chart
        • Bar and Horizontal Bar Chart
        • Stat Card
        • Pie Chart
        • Gauge Chart
        • Donut Chart
        • Stacked Bar, Horizontal Stacked Bar, and Normalized Horizontal Stacked Bar
        • Multiple Line Chart
        • Pivot Table
        • Map Chart
  • Best Practice Guides
    • Integration Best Practices
    • Integration Check List
    • CSV Files in Excel
    • Multi-Tenant Flows
    • On-Premise Integrations
    • Database Connection Setup
    • Data and General Security
    • Using Tags
    • FAQ
  • API
    • Locoia API Authentication - Personal Access Token
    • Create Connector Authentication
  • Contact us
  • Status of Service
  • Data Privacy
  • Imprint
Powered by GitBook
On this page
  • Overview
  • Actions
  • 1. Insert or update data
  • Nested JSON
  • 2. Retrieve data

Was this helpful?

  1. Connectors & Helpers
  2. Helpers

Data Warehouse Helper

Upsert to and read data from Data Sources

PreviousZip HelperNextXML Helper

Last updated 8 months ago

Was this helpful?

Overview

The Data Warehouse Helper allows you to data with automatic flattening of nested JSON structures. It also enables you to retrieve data and apply filters using PostgreSQL WHERE statements.

Actions

1. Insert or update data

The data warehouse helper allows you to store various types of data, e.g. even complex structures, like JSONs, will be stored flat.

Possible input values:

  • Value reference - the data object that you want to store in the Data Warehouse.

  • Primary key column - The primary key on which you want to deduplicate, e.g. usually ID.

  • Data source ID - a data source ID of a data source that you previously generated so that one can store the data against it.

Nested JSON

Nested JSON structures will be automatically flattened, so that you don't have to do this anymore during the transformation step.

For example, this is the nested input list of dictionaries:

[
  {
    "field_a": "value 123",
    "my_nested_field": {
      "another_field": 456,
      "even_more_nested": {
        "field_a": "example",
        "field_b": true
      }
    }
  },
  {
    ...
]

During the data insertion, the nested JSON will be automatically flattened and the field name will be the json path, connected by _ (the nested structure will be preserved as well):

[
  {
    "field_a": "value 123",
    "my_nested_field": {
      "another_field": 456,
      "even_more_nested": {
        "field_a": "example",
        "field_b": true
      }
    },
    "my_nested_field_another_field": 456,
    "my_nested_field_even_more_nested_field_a": "example",
    "my_nested_field_even_more_nested_field_b": true,
  },
  {
    ...
]

In case the column name generated by this exceeds 63 characters, the name will be truncated from the beginning (in order to keep the column name unique), e.g. my_very_long_field_name_that_is_also_nested_inside_another_dict_field_abc

Will be stored as:

ng_field_name_that_is_also_nested_inside_another_dict_field_abc

2. Retrieve data

Using the Retrieve from action, you can retrieve data from Data Sources, Transforms, and Insights, directly from a flow and filter using PostgreSQL WHERE statements.

Possible input values:

  • Source type - the source, e.g. data_source

  • Source id - the ID of the source, e.g. the ID of the data source

  • WHERE Statement - A WHERE statement, using PostgreSQL, that will be applied to the retrieval. The WHERE does not need to be written - optional

  • Start Date - The start date in case the variable $start_date is used in the Insight that you're retrieving data from - optional (Insights only)

  • End Date - The end date in case the variable $end_date is used in the Insight that you're retrieving data from - optional (Insights only)

In PostgreSQL unquoted names are case-insensitive. This means that mycolumn = 'abc' and myColumn = 'abc' are equivalent and both columns are interpreted as mycolumn.

However, quoted names are case-sensitive. So in case there is any casing in your column names you should use quotes, e.g. "myColumn" = 'abc'.