← Confection + Google Drive integrations

Add File Sharing Preference with Google Drive APIon New or Updated Leads from Confection API

Pipedream makes it easy to connect APIs for Google Drive, Confection and 800+ other apps remarkably fast.

Trigger workflow on
New or Updated Leads from the Confection API
Next, do this
Add File Sharing Preference with the Google Drive API
No credit card required
Into to Pipedream
Watch us build a workflow
Watch us build a workflow
7 min
Watch now ➜
Trusted by 250,000+ developers from startups to Fortune 500 companies:
Trusted by 250,000+ developers from startups to Fortune 500 companies

Developers Pipedream

Getting Started

This integration creates a workflow with a Confection trigger and Google Drive action. When you configure and deploy the workflow, it will run on Pipedream's servers 24x7 for free.

  1. Select this integration
  2. Configure the New or Updated Leads trigger
    1. Connect your Confection account
    2. Configure timer
  3. Configure the Add File Sharing Preference action
    1. Connect your Google Drive account
    2. Optional- Select a Drive
    3. Select a File
    4. Optional- Select a Role
    5. Optional- Select a Type
    6. Optional- Configure Domain
    7. Optional- Configure Email Address
  4. Deploy the workflow
  5. Send a test event to validate your setup
  6. Turn on the trigger

Details

This integration uses pre-built, open source components from Pipedream's GitHub repo. These components are developed by Pipedream and the community, and verified and maintained by Pipedream.

To contribute an update to an existing component or create a new component, create a PR on GitHub. If you're new to Pipedream component development, you can start with quickstarts for trigger span and action development, and then review the component API reference.

Trigger

Description:Emit new event when any UUID is created or updated. To learn more about how Confection handles UUIDs, visit https://confection.io/main/demo/#uuid.
Version:0.0.1
Key:confection-new-updated-leads

Trigger Code

import common from "../common.mjs";

export default {
  key: "confection-new-updated-leads",
  name: "New or Updated Leads",
  version: "0.0.1",
  dedupe: "unique",
  description:
    "Emit new event when any UUID is created or updated. To learn more about how Confection handles UUIDs, visit https://confection.io/main/demo/#uuid.",
  props: common.props,

  methods: {
    ...common.methods,
    /**
     * Get summary for the triggered event
     *
     * @param {string} uuid - Emitted data UUID
     */
    getSummary(uuid) {
      return `New or updated UUID: ${uuid}`;
    },
    /**
     * Get data from Confection Live API
     *
     * @param {string} lastTimestamp - Start of results time frame
     * @param {string} timestamp - End of results time frame
     */
    getSourceData(lastTimestamp, timestamp) {
      return this.confection.getNewOrUpdatedLeads(lastTimestamp, timestamp);
    },
  },
  run: common.run,
};

Trigger Configuration

This component may be configured based on the props defined in the component code. Pipedream automatically prompts for input values in the UI and CLI.
LabelPropTypeDescription
ConfectionconfectionappThis component uses the Confection app.
timer$.interface.timer
N/Adb$.service.dbThis component uses $.service.db to maintain state between component invocations.

Trigger Authentication

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

Find your account ID and API keys here: https://dashboard.confection.io/my-keys

Need an account? Using Confection for the first time? Please see our quick-start guide: https://confection.io/quick-start/pipedream

About Confection

Confection collects, stores, and distributes data in a way that's unaffected by client-side disruptions involving cookies, cross-domain scripts, and device IDs. It's also compliant with global privacy laws so it’s good for people too.

Action

Description:Add a [sharing](https://support.google.com/drive/answer/7166529) permission to the sharing preferences of a file and provide a sharing URL. [See the docs](https://developers.google.com/drive/api/v3/reference/permissions/create) for more information
Version:0.0.4
Key:google_drive-add-file-sharing-preference

Action Code

import googleDrive from "../../google_drive.app.mjs";

/**
 * Uses Google Drive API to create a permission for a file. The role granted by
 * the permission is one of `owner`,`organizer`,`fileOrganizer`,
 * `writer`,`commenter`, `reader`. See the [Google Drive API Reference for
 * Permissions](https://bit.ly/2XKKG1X) for more information.
 */
export default {
  key: "google_drive-add-file-sharing-preference",
  name: "Add File Sharing Preference",
  description:
    "Add a [sharing](https://support.google.com/drive/answer/7166529) permission to the sharing preferences of a file and provide a sharing URL. [See the docs](https://developers.google.com/drive/api/v3/reference/permissions/create) for more information",
  version: "0.0.4",
  type: "action",
  props: {
    googleDrive,
    drive: {
      propDefinition: [
        googleDrive,
        "watchedDrive",
      ],
      optional: true,
    },
    fileId: {
      propDefinition: [
        googleDrive,
        "fileId",
        (c) => ({
          drive: c.drive,
        }),
      ],
      optional: false,
      description: "The file to share",
    },
    role: {
      propDefinition: [
        googleDrive,
        "role",
      ],
    },
    type: {
      propDefinition: [
        googleDrive,
        "type",
      ],
    },
    domain: {
      propDefinition: [
        googleDrive,
        "domain",
      ],
    },
    emailAddress: {
      propDefinition: [
        googleDrive,
        "emailAddress",
      ],
    },
  },
  async run({ $ }) {
    const {
      fileId,
      role,
      type,
      domain,
      emailAddress,
    } = this;
    // Create the permission for the file
    await this.googleDrive.createPermission(fileId, {
      role,
      type,
      domain,
      emailAddress,
    });

    // Get the file to get the `webViewLink` sharing URL
    const resp = await this.googleDrive.getFile(this.fileId);
    const webViewLink = resp.webViewLink;
    $.export("$summary", `Successfully added a sharing permission to the file, "${resp.name}"`);
    return webViewLink;
  },
};

Action Configuration

This component may be configured based on the props defined in the component code. Pipedream automatically prompts for input values in the UI.

LabelPropTypeDescription
Google DrivegoogleDriveappThis component uses the Google Drive app.
DrivedrivestringSelect a value from the drop down menu.
FilefileIdstringSelect a value from the drop down menu.
RolerolestringSelect a value from the drop down menu:ownerorganizerfileOrganizerwritercommenterreader
TypetypestringSelect a value from the drop down menu:usergroupdomainanyone
Domaindomainstring

The domain of the G Suite organization to which this permission refers if Type is domain (e.g., yourcomapany.com)

Email AddressemailAddressstring

The email address of the user or group to which this permission refers if Type is user or group

Action Authentication

Google Drive uses OAuth authentication. When you connect your Google Drive account, Pipedream will open a popup window where you can sign into Google Drive and grant Pipedream permission to connect to your account. Pipedream securely stores and automatically refreshes the OAuth tokens so you can easily authenticate any Google Drive API.

Pipedream requests the following authorization scopes when you connect your account:

emailprofilehttps://www.googleapis.com/auth/drivehttps://www.googleapis.com/auth/drive.readonly

About Google Drive

Internet-related services and products

More Ways to Connect Google Drive + Confection