Snowflake

A data warehouse built for the cloud

Go to site
Explore
/
Apps
/
Snowflake

Snowflake API Integrations

Build and run workflows using the Snowflake API. Use 1000s of open source triggers and actions across 1000+ apps. Or write custom code to integrate any app or API in seconds.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import { promisify } from 'util'
import snowflake from 'snowflake-sdk'

export default defineComponent({
  props: {
    snowflake: {
      type: "app",
      app: "snowflake",
    }
  },
  async run({steps, $}) {
    const connection = snowflake.createConnection(this.snowflake.$auth)
    const connectAsync = promisify(connection.connect)
    await connectAsync()
    
    // util.promisify requires the last argument of the function you pass to 
    // it be the callback function, according to Node convention — see the docs at
    // https://nodejs.org/dist/latest-v8.x/docs/api/util.html#util_util_promisify_original .
    // Since Snowflake's connection.execute function accepts a single argument — 
    // options, an object — using promisify won't work. So we wrap the callback 
    // with a Promise and await it below.
    //
    // Pass the same options object (e.g. sqlText, binds) that you would pass to
    // https://docs.snowflake.com/en/user-guide/nodejs-driver-use.html#executing-statements
    // _except_ for the callback parameter. See example below.
    async function connExecuteAsync(options) {
      return new Promise((resolve, reject) => {
        connection.execute({
          ...options,
          complete: function(err, stmt, rows) {
            if (err) {
              reject(err)
            } else {
              resolve({stmt, rows})
            }
          }
        })
      })
    }
    
    // See https://docs.snowflake.com/en/user-guide/nodejs-driver-use.html#executing-statements
    const { rows } = await connExecuteAsync({
      sqlText: `SELECT CURRENT_TIMESTAMP()`,
    })
    return rows
  },
})
Insert Row with Snowflake API on New Requests (Payload Only) from HTTP / Webhook API
HTTP / Webhook + Snowflake
 
Try it
Send Message (Advanced) with Discord Webhook API on Query Results from Snowflake API
Snowflake + Discord Webhook
 
Try it
Add Multiple Rows with Google Sheets API on Query Results from Snowflake API
Snowflake + Google Sheets
 
Try it
Insert Row with Snowflake API on New Message from Discord API
Discord + Snowflake
 
Try it
Insert Row with Snowflake API on New Message In Channels from Slack API
Slack + Snowflake
 
Try it
New Query Results from the Snowflake API

Emit new event with the results of an arbitrary query

 
Try it
New Row from the Snowflake API

Emit new event when a row is added to a table

 
Try it
Insert Row with the Snowflake API

Insert a row into a table

 
Try it

Authentication

Snowflake uses API keys for authentication. When you connect your Snowflake account, Pipedream securely stores the keys so you can easily authenticate to Snowflake APIs in both code and no-code steps.

  1. Enter the username, password, and other details for your Snowflake database below. We recommend you create a read-only account if you only need to query Snowflake.

  2. Enter your Snowflake account identifier in the account field. You may need to include the full identifier and region as a part of this string, e.g. au12345.us-east-1. Please consult your instance and Snowflake docs for more detail.