Issue with AppSheet API + Partitions (User Settings) when uploading files via API

Hello community,

I’d like to explain a process we have been using successfully for months and a limitation we are now facing when working with Partitions (User Settings) and the AppSheet API, specifically when uploading files.


:wrench: Current Process (Working Correctly)

We work with AppSheet + Google Apps Script and implemented a webhook-like flow to automatically store final reports (PDFs) in the client’s data source, not in the app owner’s Drive.

The process is the following:

  1. Generate PDF using AppSheet Bot

    • We use “Create a file” in a Bot.

    • The PDF is temporarily created in the app owner’s Google Drive, in a specific folder we define.

  2. Call a Webhook (Google Apps Script)

    • AppSheet sends the file name, row ID, table name, and other metadata.

    • The Apps Script has access only to the specific folder where the PDF was generated.

  3. Apps Script Processing

    • Receives the POST request.

    • Locates the generated PDF in the app owner’s Drive.

    • Converts the PDF to Base64.

    • Uses the AppSheet API to upload the file to the correct row and column, simulating a manual file upload.

  4. Result

    • AppSheet stores the file in the client’s Drive/data source, not the app owner’s.

    • The file appears correctly in the app.

    • The temporary PDF in the app owner’s Drive is deleted.

This flow has been working perfectly throughout 2025.


:warning: The Problem (With Partitions)

Some of our apps have large datasets, so we use Partitions based on User Settings, for example:

  • Year

  • Period

Normally, the app is working on the current partition (e.g. Year 2026 – Period 1).

The issue appears when:

  • The record we want to update belongs to a previous partition (e.g. Year 2024 – Period 3).

  • When the Apps Script uses the AppSheet API to upload the file:

    • AppSheet only searches for the row in the currently active partition

    • The row exists, but in a different sheet/partition

    • Therefore, the API cannot correctly locate or update the record


:red_question_mark: What We Are Trying to Achieve

Ideally, we would like one of the following:

  • Tell the AppSheet API which partition (year/period) it should use

  • Or dynamically set User Settings values (Year / Period) via the API before performing the update

  • Or have the API search across partitions, not only the active one

However, from what we have researched:

  • User Settings cannot be manipulated via the AppSheet API

  • The API always operates under the current app context, including active partitions


:thinking: Questions to the Community

  1. Has anyone worked with AppSheet API + Partitions + Google Apps Script in a similar scenario?

  2. Is there any way to:

    • Control or override User Settings via API?

    • Indicate the target partition when updating a row?

    • Or design partitions in a way that still allows API updates to historical data?

  3. Is this a known limitation of the AppSheet API?

Any guidance, workaround, or recommended architecture change would be greatly appreciated.

Thanks in advance!

Not possible.

Nope.

@AleksiAlkio, you have experience with partitions?

2 Likes

Yes you can select the partition with the API call inside of json and its parameters. Invoke the API - AppSheet Help

EDIT: Check the sample in “HTTP request body” section. It shows how you can select the values for the Usersettings.

5 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.