Google Cloud

The Google Cloud Platform

Go to site

Integrate the Google Cloud API with the Airtable API

Setup the Google Cloud API trigger to run a workflow which integrates with the Airtable API. Pipedream's integration platform allows you to integrate Google Cloud and Airtable remarkably fast. Free for developers.

Connect Google Cloud

module.exports = defineComponent({
  props: {
    google_cloud: {
      type: "app",
      app: "google_cloud",
    }
  },
  async run({steps, $}) {
    // Required workaround to get the @google-cloud/storage package
    // working correctly on Pipedream
    require("@dylburger/umask")()
    
    const { Storage } = require('@google-cloud/storage')
    
    const key = JSON.parse(this.google_cloud.$auth.key_json)
     
    // Creates a client from a Google service account key.
    // See https://cloud.google.com/nodejs/docs/reference/storage/1.6.x/global#ClientConfig
    const storage = new Storage({
      projectId: key.project_id,
      credentials: {
        client_email: key.client_email,
        private_key: key.private_key,
      }
    })
    
    // Uncomment this section and rename for your bucket before running this code
    // const bucketName = 'pipedream-test-bucket';
    
    await storage.createBucket(bucketName)
    console.log(`Bucket ${bucketName} created.`)
  },
})

Connect Airtable

module.exports = defineComponent({
  props: {
    airtable: {
      type: "app",
      app: "airtable",
    },
    baseId: {
      type: "$.airtable.baseId",
      appProp: "airtable",
    },
    tableId: {
      type: "$.airtable.tableId",
      baseIdProp: "baseId",
    },
  },
  async run({steps, $}) {
    const Airtable = require('airtable');
    const base = new Airtable({apiKey: this.airtable.$auth.api_key}).base(this.baseId);

    const data = []
    
    await base(this.tableId).select({
      // pass optional config parameters here
    }).eachPage(function page(records, fetchNextPage) {
        // This function (`page`) will get called for each page of records.
        records.forEach(function(record) {
            data.push(record._rawJson)
        });

        // To fetch the next page of records, call `fetchNextPage`.
        // If there are more records, `page` will get called again.
        // If there are no more records, `done` will get called.
        fetchNextPage();
    })

    return data
  },
})

Community Posts

Airtable Webhooks with Slack + Pipedream
Airtable Webhooks with Slack + Pipedream
We love Airtable here at Pipedream. But Airtable lacks one killer feature — webhooks. We took advantage of Airtable’s Slack notifications and built a way to send webhooks to an HTTP endpoint every time a record is created or updated in a base. It takes 10 minutes to setup and it’s free.
Webhooks workaround using Slack
Webhooks workaround using Slack
This has been an open item in the Airtable support community for a few years, see "Webhooks for Records 393" and here 39, & here 28, and we are excited to offer a free solution to the community. Here is the high level solution: Based on the transitive property (A=B and B=C, then A=C), Airtable supports Slack Notifications, and Slack supports webhooks, so Airtable supports webhooks! You just have to know how to set it up correctly. With a simple integration via Pipedream into Slack, all Airtable users can now get near real time notifications of all updated fields and values in Airtable.
Overcoming Airtable Scripting Limitations with Pipedream
Overcoming Airtable Scripting Limitations with Pipedream
How I used Pipedream — Created a workflow having an API endpoint to convert Airtable’s Attachment Image URL to Base64 encode image (to push it to another API). Similarly, there could be a million other use-cases.