SmartSheet API triggered when adding row - node.js

I've created a node.js script that collects all rows in my SmartSheet and then updates the rows that meet a certain criteria. It works fine.
However, rather than having a script that continuously collects all rows and checks for the desired criteria, I would prefer to have the script only check for new rows that are added and then update certain cell values for only those new rows at the time they are added. Is there a way to update only new rows immediately after they're added via the SmartSheet API?

Yes look at their webHook section in the documentation use it to trigger functions when something happen.

Related

Power Automate "Vlookup" using Sharepoint Lists - Vlookup resetting

I have the below "Vlookup" , When a record gets submitted in list "Template" I want that to reflect in the list "Aug2021"(Created from an excel sheet) in the "Submitted" column as a "Yes" or "No".
Lookup with between "Project ID" in Template, and "Title" in Aug2021.
IT works fine for the first record submission into "Template", The submitted column shows a "Yes" nicely within list "Aug2021" .
However when I submit a 2nd record, the vlookup resets and that first record will no go to a No. Why is this?
This is what I mean - the flow re runs based on the new record.
When Power Automate does not execute the branch I "think" it "should" execute, that always is because the condition is not met.
The only way to troubleshoot that is to look into what is actually being fed into the Condition. At least while you're still developing.
Initialise two variables at the top, one for the Title and one for the Project ID. Write the Project ID into the variable as soon as you have it. Write the Title into the variable before the Condition step.
Now you can see in the flow run what the values are and you can see the reason for the condition branch being executed.
Also note that the For Each loop will run on all records that are returned bye the Get Items step. This looks like it may write a lot of records that don't match the title.
Edit after comment: You say that the list Aug2021 has 2000 items. Are you attempting to loop through all of them in the flow? That won't work, because the Get Items command only returns a maximum of 100 items.
The flow run screenshot shows that it processed exactly 100 items in the Apply to Each loop. Your screenshot only shows the first one.
Unfortunately, you did not follow my recommendation for troubleshooting, so you still don't know which values are being fed into the condition for each instance of the Apply to Each loop.
If you don't follow advice, I have no idea what else to write.

Is there a way to use Sharepoint version history to make a calculated column value?

I cannot see a way to do this natively, but essentially I would like to tap into the version history for a specific field value to calculate the difference between the current value and the last entered value.
Scenario:
Business user will update a numeric value in a column for each list item once a week to a cumulative amount. (i.e. Sales made to date)
I am currently able to see in the version history what the last entered value was, who entered it, and when it was entered. I want to know if there is a way to access this information in the form of a calculated column to find this difference (i.e. sales made this week). The solution I am thinking is adding another column for "Total Sales Last Week" and have the user manually update that when they update "Total Sales This Week" then have a calculated column to just subtract these values. However, this seems tedious since the information is already in Sharepoint. If there is a way to do this either with a calculated column, PowerAutomate flow or another method please let me know.
It is not possible to capture the Version History using calculated column. REST API is the only option that will be helpful to fetch these details. Considering this, there are two solutions that I can suggest here:
Using REST API
Create an additional column in your list and update it with the data that you will capture from version history using SharePoint REST API. Here, Rest API will be used to fetch the version history and also to update the list item.
As a trigger event to execute this code, Either you can setup a button on the page (if using any custom screen) or set this to execute periodically.
Using REST API in Power Automate (Recommended)
Power Automate/MS Flow doesn't provide any direct connector to fetch the version history but you can use the HTTP request connector which will help you to execute the SP rest call to fetch the version history.
Once you have version history data from your HTTP request call, you can use that to update the column in your list using the same power automate in next action.
This solution will be more useful as you don't need to setup any trigger event as mentioned in the first solution but instead of that you can simply configure this Power Automate to run as and when list item is updated and you will be having immediate result in your list.
You can refer to this link to check how to get data from HTTP request using Power automate and you can also refer to this link which will help you to understand how to get version history using SharePoint rest API.
I hope this will be useful information for you to achieve your goal.

Is it possible to compare 2 different sheets on Excel, update data then insert into a new table all the changes that were made?

Right now, I have a running list of all my data for the all my products. The list will show an ID that identifies the product and then show the status of that product and the date of that status. Every week I get more data on the same product_ID but I am wondering if there is a way to use VBA to update another table to show only one product ID and the most recent status for that? If possible I would then want to insert information into a third table (sheet) that keeps track of the changes made
I am new to using this program and would like to see if this is viable before trying to mess around with it. I hope I explained everything correctly.
Thanks!

Getting the latest value of the item in a column and displaying that value into other list, without using code

I want to get the highlighted value, that is the latest value of the "Availed" from the list shown above, and display it on the second list's "Availed" column, circled below:
Basically, what I am trying to do is, whenever a new item is created in the second list, it fetches the latest value of the "Availed" from the first list and displays in its "Availed" column.
I have tried couple of lookups with IDs and dates using SharePoint designer 2013, but every time I am getting the first entry.
The only way, I could achieve this was, by mentioning the exact item ID in the lookup, but I do not want that. I want that it should automatically pick the latest value when a new item is created in the second list.
Also, there are couple of solutions online using the code, but I am not that great at coding and want to achieve this feature without coding.
Is there a way we can do this without a code?
You could create a workflow for second list, in your workflow, call REST api by 'Call HTTP Web Service' action, Sample here.
Use rest api to get the latest value by $orderby, demo here.

Filling rows of a repeating table on opening the form

In my Infopath form I use a repeating table. On opening this form on sharepoint I would like to have some rows of the repeating table filled out using information from an other list. I use content types.
What i am working on is a Timesheet system where the user can register how many hours a week he worked on different projects.
I would like that by creation of a timesheet some predefined projects will be already inserted, meaning that the repeating table will have for example 5 rows already with 5 favourite or most used projects selected based on a separate PetProject list.
When I looked at the workflow in the list where the timesheet is being created I couldn’t find the column projectname in the dropdown so I cant give it a value. When I went to look in the Form settings of TimeSheets I saw that projectname cant be selected/edited, its in plain black whereas the other columns are blue and clickable. I thought its probably because the value of projectname is merged from the different rows in the repeating table.
Is there any way I can work around this problem and assign a value to projectname by creation of the timesheet?
Thank you so much!
I think that you will need to write some code to query the data that you are after and add the data to new rows in the repeating table.
There is a loading event that you can hook into to then query a secondary data source and then
add the row to the repeating table.
Will this run with in infopath as a thick client or will it run as a browser based form using infopath form service?

Resources