Hi everyone,
Iโve followed this excellent guide by Martin Hawksey to connect a Gemini-powered Apps Script function (jsonControlledImageExtraction) with AppSheet.
The script receives an image URL, extracts structured data using Geminiโs JSON schema, and returns a valid object. AppSheet automation is set up as:
โขโRun a taskโ โ โCall a scriptโ
โขReturn type: Object
โขThen โ Set Values to map the output fields
โ
The function runs fine, returns the expected object, and shows correct output in the logs.
โHowever, the extracted values are not being written to Google Sheets.
Could it be a problem with:
โขHow Set Values is configured?
โขMissing row context?
โขSome sync issue between AppSheet and Sheets?
Would appreciate any insights or fixes โ thanks in advance!
Solved! Go to Solution.
@Islom wrote:
However, the extracted values are not being written to Google Sheets.
You need to access the Monitor Logs. At the top of your Bot is a "Monitor" button. Tap that and then access the "Runs" tab. Find the Bot execution entry and check the "Process Steps" panel on the far right to see the outcome of your Bot steps. Look at the "GeminiApp" step and confirm that you are getting a returned object in the Bot itself. If you are and the JSON object looks correct then it is a matter of making sure you are accessing the returned object correctly. See article below for details on how to use returned JSON objects.
Use return values from Apps Script Task
Also be aware that if you have any requirements or validation implemented, your row WILL be subjected to those while attempting to assign the Object values. You may need to look into the Audit Logs to see any violations of those conditions.
I hope this helps!
@Islom wrote:
However, the extracted values are not being written to Google Sheets.
You need to access the Monitor Logs. At the top of your Bot is a "Monitor" button. Tap that and then access the "Runs" tab. Find the Bot execution entry and check the "Process Steps" panel on the far right to see the outcome of your Bot steps. Look at the "GeminiApp" step and confirm that you are getting a returned object in the Bot itself. If you are and the JSON object looks correct then it is a matter of making sure you are accessing the returned object correctly. See article below for details on how to use returned JSON objects.
Use return values from Apps Script Task
Also be aware that if you have any requirements or validation implemented, your row WILL be subjected to those while attempting to assign the Object values. You may need to look into the Audit Logs to see any violations of those conditions.
I hope this helps!
Thanks for the guidance!
I checked the Monitor > Runs > Process Steps as you suggested. The function does run and returns the correct values (as seen in the screenshot). However, AppSheet still throws the error:
โFailed App Script type translation: Schema has more than one column but no object was returned.โ
Whatโs confusing is that the Cloud logs show a proper object coming back from Gemini (with product_name, product_code, etc.). But in the Monitor panel, the return value seems to be wrapped inside a structure like this:
{ "listValue": { "values": [ { "structValue": { "fields": { ... } } } ] } }
So it looks like AppSheet isnโt recognizing it as a flat object, which causes the โno object returnedโ error โ even though it technically is.
Would appreciate any help figuring out how to make the return value AppSheet-compatible. Thanks again!
Thanks a lot for the help! ๐ You were right โ the issue was with how the object was wrapped. Once I adjusted the return structure to a flat object, AppSheet picked it up perfectly. Appreciate your guidance
User | Count |
---|---|
18 | |
15 | |
10 | |
7 | |
4 |