I have a file on PDFfiller that people fill out and submit. Upon their submission, Zapier take the file and uploads it to gDrive.
I am trying to add a 3rd Zap, to Invoke Action in one of my apps in which the action will โchange dataโ (rename a File column) but am not sure which version to use?
TIA for any and all input!
Also having a hard time understand what this required ID field is within the Zap. I was thinking it was the Key column in my Carriers table, but that is not an option from the drop down list. Any ideas?
Ended up changing my workflow around a little bit. I finally got the file to rename like I wanted it to, but Iโm not sure what the difference is between using gSheets or gForms to bring in the gForm submission data. I initially chose gForm but realized it didnโt have an โINSTANTโ badge next to it in my Zapier Dashboard. So I went with gSheets as it displays the โINSTANTโ badge. Problem here though, is it still takes 3 minutes (near exactly) every time for it to return the data. Which is fine for now, but far from instant. Iโm just thankful itโs all working. (Any insight on this issue is greatly appreciated)
Anyways, when a new row is added to the gSheet, Zapier uses my gMail account to send a link of my PDFFiller form from the email address referenced from the gForm submission. (Zap: โcarrier_invite_submissionโ)
When the user completes the PDFfiller form, Zapier uploads it to my gDrive and names it: (Zap: โcarrier_submission_uploadโ)
CONCATENATE(โDocuments/Carrier Files/Contract/โ,[MC Number],".pdf")
All is working up to this point, except for the fact that the app user, wonโt be able to see the newly concatenated value until the row itself is updated. I need this done automatically, and was thinking I could solve this problem by using Zapier to Invoke an AppSheet Action called โaction_contract_submissionโ which would take the [Executed Contract] column and change the the value to equal โUploadedโ.
I would rather the action do some sort of FORCE SYNC, but havenโt gotten that far yet. Iโve read all the info I could find on the matter in all of the AppSheet resources, and have found where I may be able to use a Deep Link somehow and use an &at or something like that. Iโll have to keep digging. (If anyone has any insight on this it will be greatly appreciated)
This has been a fun challenge so far, but Iโm going to need some help from someone with a little more experience with Zapier, as I have none. Iโve spent a great deal of time to get to this point, so if anyone can help, it will be greatly appreciated.
Thank you
So if Iโm understanding the problem correctly, Zapier is uploading the PDF to the gDrive and writing its location to the sheet. But if an AppSheet user is currently using the app, they wonโt see the updated value until they sync the app. Is that correct?
I donโt know of any way to force the userโs app to sync (which would be dangerous anyway since they might be in the middle of updating something). What you could do is broadcast a push notification to your users that the PDF has been uploaded and they should sync to see it. I think you could do this by adding a Workflow rule that gets triggered when Executed Contract gets set to Uploaded. Then when Zapier invoked the action which sets the value, your workflow rule gets kicked off and sends your users a push notification so they know they need to sync.
Would something like that work for you?
Regards,
Hughes
I do like the notification idea, and I think thatโll work. But AppSheet is actually the one writing the filename to the spreadsheet, so a basic sync of the app wonโt bring in the value I donโt thibk. I think Iโd actually have to click on the row itself within the app, and make an adjustment to that row, and save it for it to populate the filename.
If I knew how to use Zapier to insert the filename instead of AppSheet, then a basic sync would bring in thr data, which might be achievable by changing my Zapier workflow slightly.
Regardless of which method to insert thr filename, the action I have set is currently not working. I chose AppSheet 1.0 from the drop down menu in Zapier, as that is the only one I couod get to not throw an error.
Here is the AppSheet action I have set within Zapier. Only thing Iโm not too sure of is the Timestamp field, which probably indicates that is where the problem lies, but I am not sure.
Edit: Just realized the timezone is set to PST. Iโm in EST. Not sure if that has anything to do with that action not being invoked, but Iโll correct it and see.
Okay so is the actual problem that you want the file available within the AppSheet app, but you donโt know where to save the file and how to name the value on the worksheet from Zapier in order for AppSheet to see it correctly?
So for an app based on a Google sheet that has columns of type [File], AppSheet creates a subfolder in the same location as the Google sheet with the app name and โ_ Files _โ appended to it. What you need to do is have Zapier save the PDF within that folder for your app. Then in the Google Sheet, for the File column, you need to write the relative path to the file.
So if your app is named โMy Appโ and you upload a PDF named โ123.pdfโ, you would need to put that PDF into the folder โMy App_Files_โ and then you would need to set the value of the File column in your Google sheet to โMy App_Files_/123.pdfโ. Does that make sense?
It sounds like part of your problem is that Zapier is saving the files to the location โDocuments/Carrier Files/Contract/[MC Number].pdf" but your AppSheet app isnโt going to see them in that location.
Iโve got the filename functionality working just fine, and coming into the app just fine. The file column that youโre referring to is called [Contract] and itโs file path is set to
Documents/Carrier Files/Contract/
Whenever Zapier uploads the file to gDrive, it uploads it to that folder as well. So the first two steps of the Zap work fine. The problem is when I add the AppSheet step, itโs not doing anything.
Hmm, okay then maybe I donโt understand the problem.
What do you mean by the AppSheet step? Do you mean the Action that sets the Executed Contract to Uploaded? As in, Zapier is not successfully calling the action or the action isnโt setting the value correctly? Or do you mean that you want AppSheet to set the path to the uploaded PDF file in the Google Sheet and thatโs not happening?
Iโm almost certain that Zapierโs AppSheet step is not calling the AppSheet action in my app. Here are the 3 steps of my Zap. The first 2 work perfectly. The 3rd step, the AppSheet step, is not working correctly.
There are pretty detailed instructions for calling AppSheet from Zapier here:
It says in that article to use AppSheet 2.0.0 so I think that may be part of your problem. It looks like itโs trying to use that Timestamp field as a key value to find the right row in your table, but the โErrorDescriptionโ in your screen shot says there is no row in the table with that key value. Maybe with AppSheet 2.0.0 you can specify the key values rather than using a Timestamp like that. Does that help?
Iโve read through all of the AppSheet resources, including the one you mentioned, and am still having a hard time getting the link from Zapier to AppSheet working properly. I ended up setting the Timestamp value in Zapier to the [Timestamp] column of the table, which is also the Key. So I think I have everything filled out correctly, but am now getting an error saying it canโt find the Timestamp value in the row. But if you look in the error message, the Timestamp is exactly 7 hours difference. My current speculation is it may have something to do with a Timezone setting somewhere, Iโve checked Timezone settings in Zapier and gSheets and both are set to EST, which is correct. So iโm not sure whatโs going on but Iโm still working on it. I appreciate your help.
Hmmm, Iโm guessing this may be a UTC thing. As I send this reply right now, itโs now 3 AM UTC, so it seems entirely possible that at the point you took that screen shot earlier that it was 11:53 PM UTC. So maybe you need to add/subtract an offset to put your timestamp into UTC time to make this work.
If you look in Audit History for the REST API request, it will show you the data values that are arriving at the server including the key values. See https://help.appsheet.com/en/articles/2247996-troubleshooting-api-calls
Thanks for that info, I checked the history and it looks like the REST API was successful:
However, the AppSheet action did not fire. I am assuming that means the error is on Zapierโs side, which again probably has something to do with the Timezone difference. I tried using Zapierโs Formatter and adjusting the [Timestamp] column +5 hours. When I went back and ran the test again, it adjusted the value of the Timestamp like it should, but then the red error boxโs time adjusted with it, and ending up with no results. So iโm currently trying to wrap my head around what all that means, and what my next step for troubleshooting is.
One thing I just noticed, is that the time values in the Audit History are exactly 5 hours greater than my current time. So maybe itโs something on AppSheetโs side?
Here is the REST API Invoke error. The error is 5 hours ahead of the Timestamp value in the table. I have no idea where or what is making it look for a Timestamp 5 hours from the time it reads in the gSheet.
**This is the Timestamp in my gSheet:( 3/1/2020 20:36:03 )
**Why is it looking for: ( Row having key โ3/2/2020 1:36:03 AMโ not found )
Error:
โRow having key โ3/2/2020 1:36:03 AMโ not found.โ
Properties:
{
โRestAPIVersionโ: 2,
โTableNameโ: โCarrier Inviteโ,
โAppTemplateVersionโ: โ1.000702โ,
โActionโ: โaction_contract_uploadedโ,
โRestActionTypeโ: โActionโ,
โDataActionโ: โData: set the values of some columnsโ,
โlocaleโ: โen-USโ,
โrunAsUserEmailโ: โโ,
โselectorโ: โโ,
โtimezoneโ: โUS Eastern Standard Timeโ,
โtzOffsetโ: โ300โ,
โuserIdโ: 415658,
โRowsโ: 1,
โRowSizeโ: 19,
โAppTemplateNameโ: โ4d382c60-ef66-4f07-b5df-232dd37ed233โ,
โOperationโ: โREST API invokeโ,
โRecordTypeโ: โStopโ,
โResultSuccessโ: false,
โStatusCodeโ: โNotFoundโ,
โPerformanceโ: โ{โVersionโ:1,โTimeโ:โ00:00:00.9207279โ,โPerformanceTimingRootโ:{โMidโ:317,โTimerโ:{โTimeโ:โ00:00:00.9207279โ},โChildrenโ:[{โMidโ:62,โTimerโ:{โTimeโ:โ00:00:00.1053537โ}},{โMidโ:318,โTimerโ:{โTimeโ:โ00:00:00.8119325โ},โChildrenโ:[{โMidโ:313,โTimerโ:{โTimeโ:โ00:00:00.8119109โ},โChildrenโ:[{โMidโ:336,โTimerโ:{โTimeโ:โ00:00:00.8117611โ},โChildrenโ:[{โMidโ:66,โTimerโ:{โTimeโ:โ00:00:00.8117424โ},โChildrenโ:[{โMidโ:32,โParamsโ:{โParamListโ:[{โPidโ:13,โValueโ:โCarrier Inviteโ}]},โTimerโ:{โTimeโ:โ00:00:00.8116997โ},โChildrenโ:[{โMidโ:28,โTimerโ:{โTimeโ:โ00:00:00.0088710โ},โChildrenโ:},{โMidโ:33,โParamsโ:{โParamListโ:[{โPidโ:9,โValueโ:โ0โ}]},โTimerโ:{โTimeโ:โ00:00:00.8025593โ},โChildrenโ:[{โMidโ:133,โTimerโ:{โTimeโ:โ00:00:00.8024830โ},โChildrenโ:[{โMidโ:95,โTimerโ:{โTimeโ:โ00:00:00.3685893โ},โChildrenโ:[{โMidโ:94,โTimerโ:{โTimeโ:โ00:00:00.3685234โ}}]},{โMidโ:238,โTimerโ:{โTimeโ:โ00:00:00.4335440โ},โChildrenโ:[{โMidโ:240,โTimerโ:{โTimeโ:โ00:00:00.4270733โ}},{โMidโ:239,โParamsโ:{โParamListโ:[{โPidโ:9,โValueโ:โ776โ},{โPidโ:3,โValueโ:โ25โ}]},โTimerโ:{โTimeโ:โ00:00:00.0057065โ}}]}]}]}]}]}]}]}]}]},โIsEmptyโ:false}โ,
โResultโ: โFailureโ
}
I finally got it working after changing the Key column. I was really trying to avoid having to do this, and would still prefer the original Key, but it ended up solving the issue. I am not sure what was causing the Timestamp to want to read +5 hours from what the data was reading in the gSheet, but this one will remain unsolved for anyone wanting to use a [Timestamp] column as their key, and they run into this same issue.
You should in general avoid using a TimeStamp column as your key when working with API. Because technically an API could generate 2 new rows at the same time. So you would have 2 rows with the same key.
User | Count |
---|---|
18 | |
14 | |
11 | |
7 | |
4 |