npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@openfn/language-googlesheets

v5.1.1

Published

A Google Sheets Language Pack for OpenFn

Downloads

2,140

Readme

Language Google Sheets

Language Pack for building expressions and operations to make Google Sheets API calls.

Documentation

Configuration

View all the required and optional properties for state.configuration in the official configuration-schema definition.

This adaptor supports two authentication methods: OAuth2 and Service Account.

OAuth2

On app.openfn.org: Click Sign in with Google Sheets in the credential setup form. Authentication is handled for you and no manual token management is needed.

Using the OpenFn CLI locally: Use the gcloud CLI to print a temporary access token and provide it in your configuration:

gcloud auth print-access-token
{
  "configuration": {
    "access_token": "ya29.A0..."
  }
}

Service Account

Service accounts are ideal for server-to-server integrations that run without user interaction. Use a service account when you need reliable, long-running access without managing OAuth2 token refresh.

To create a service account and obtain a JSON key file, follow the Google Cloud service account documentation. Your OpenFn credential requires the client_email and private_key fields from the downloaded JSON key file.

Share the spreadsheet with the service account

A service account does not have access to any spreadsheet by default. You must share each spreadsheet the adaptor needs to access, just like you would share with any other Google user.

  1. Open the spreadsheet in Google Sheets.
  2. Click Share (top-right corner).
  3. Enter the service account's client_email address.
  4. Grant at least Editor access (or Viewer if read-only is sufficient).
  5. Click Send.

Note: The service account email looks like [email protected]. If you see a "This person may not be a Google user" warning, you can safely ignore it and proceed.

appendValues()

Add rows to an existing sheet: https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId/values/Sheet1!A1:E1:append?valueInputOption=USER_ENTERED

appendValues({
  spreadsheetId: '1O-a4_RgPF_p8W3I6b5M9wobA3-CBW8hLClZfUik5sos',
  range: 'Sheet1!A1:E1',
  values: [
    ['From expression', '$15', '2', '3/15/2016'],
    ['Really now!', '$100', '1', '3/20/2016'],
  ],
});

Development

Clone the adaptors monorepo. Follow the Getting Started guide inside to get set up.

Run tests using pnpm run test or pnpm run test:watch

Build the project using pnpm build.

To just build the docs run pnpm build docs