What is your goal?
To get Google Sheets “Add a Row” working reliably before subscribing
What is the problem & what have you tried?
Hello Make Community,
I am a free-plan user building and testing an event automation before deciding whether to subscribe.
Yesterday, two events were added successfully to my Google Sheet with exactly the same scenario and Google Sheets module settings.
Today, two new events were processed. The first event was inserted above Row 1, even though Row 1 contained my column headers. This pushed the headers down to Row 2.
When the second event ran, the scenario failed with this error:
prepareBodyForInsert: Unable to use column headers as IDs of the columns. Please review your headers. Each column must have a unique, non-empty header before enabling Use column headers as IDs.
My settings are:
Google Sheet: WDW Instagram Queue
Worksheet: Instagram Queue
Table contains headers: Yes
Use column headers as IDs: Yes
Insert data option: Insert rows
Cell A1 contains Calendar Event ID; the headers are unique and non-empty.
The first event clearly processed, but it was inserted above the header row instead of below it. The second event then failed because the headers had been moved.
I have restored the headers to Row 1 and refreshed the module, but I do not want to run another test until I understand why this happened.
As a free-plan user, I cannot open a direct support ticket. Could someone please advise why Add a Row would insert data above the headers and how I can make sure all future records are added below Row 1?
Error messages or input/output bundles
Code: IMLError```
Hey Svetlana,
can you confirm that cell A1 is not empty when row one has the headers?
Can you also send a screenshot that shows how the Add a Row module is configured?
No A1 is not empty all headers were erred and mapped correctly. The same scenario worked perfectly the day before without errors. Thank you for the reply
You can take screenshots with Win Key + Shift + S and then select rectangle. Then you can directly paste them here with Ctrl+V. Or Command + Shift +4 on mac.
Anyways, this looks OK. Can you check the history run and see the module output from when that row as inserted at the top above the headers?
Also, any chance something was changed on the sheet it self between the two runs? Maybe some rows got deleted or something?
Thank you for the suggestion on the screenshots. The problem is I am working on 3 devices at the same time actually 4.
Honeslty the only changes I made was I hid some columns because they were annoying and useless for the purpose I needed the entire scenario. So I will bring them back to the previous state and see if tomorrow morning it is ok. That will be weird because the columns are actually there and nothing has been renamed or deleted.
It’s kinda annoying that Make does provide services only for the paid subscribers. How can they get me as a paid subscriber if they refuse to solve a problems I encounter before become paid subscriber?? It’s weird. I am having a second thought. Claude is improving all the time.
thank you for the suggestions.
They do provide support for the first 30 days after you create your account, though. Besides, issues like the one you are having is what this community is about.
It could be something to do with the hidden headers messing up the module structure, causing it to fail to recognize the first row. So yeah, try showing them and see if it will work.
Hi Stoyan,
I have attached four dated screenshots showing the Module Inspector and operation output for both runs. They are from the successful day and the one that had error.
On 23 August, Make recognised A1:Z1 as the header range and correctly wrote Operation 1 to A2:Z2—Row 2.
On 24 August, with the same Google Sheets insertion settings, Operation 1 targeted A1:Z1—Row 1—instead of the next available data row. Operation 2 then failed because the valid headers were no longer available.
And apologies there was one change. The only mapping change was applying stripHTML() to the Event Description value. That only cleans the content written into column D, because the html was very annoying and should not affect header detection or row placement.
Could you please explain why the 24 August run targeted row 1 when the same module correctly recognised row 1 as the header range on 23 August?
Thank you in advance
Yeah it looks like it failed to get the headers properly, so it didn’t know where to add the new row and defaulted to 1.
If you aren’t going to be changing the sheet and the columns will be the same, you can change “Use column headers as IDs of the columns” to “No” and it will never fail like that again, cause it will stop trying to lookup the headers first.
Thank you so much. Will try that on the next run tomorrow morning.
Appreciate your assistance. 

One practical safeguard would be to write into a dedicated staging tab that nobody edits manually. Keep row 1 fixed with unique, non-empty headers, avoid merged cells, and keep all records below it.
If you set “Use column headers as IDs” to No, remember that the mapping becomes positional: inserting or reordering a column later can silently send values to the wrong fields. After any sheet-structure change, I would reselect the worksheet, refresh the module fields, and test against a copy of the sheet first.
The stripHTML() change should only affect the mapped value, not which row Make chooses.
last night I decided to give it another chance
I copied the headers of the sheet which passed successfully. I didn’t change anyhing else. This morning everything was fine. The scenario run was successful. I won’t touch anything and will see how this will go in the morning. I need to hide some headers as they are very annoying. But I’ll do it once I have a few successful runs to eliminate possible issues.
thank you for the suggestions and the support.
Hi @Svetlana_Prodanova,
This issue typically occurs when the Google Sheets module in Make gets confused by the sheet structure or pre-formatted empty rows. Here is how to fix it step-by-step:
-
Clear Formatted Empty Rows: Highlight all empty rows below your header in Google Sheets, right-click, and choose Delete Rows. Google Sheets often considers empty rows with custom formatting or borders as “populated,” forcing Make to append data above Row 1.
-
Re-select the Sheet & Table Range: In your Make scenario, open the Google Sheets (Add a Row) module. Re-select your Spreadsheet and Sheet name. Ensure the Table Contains Headers setting is toggled to Yes, and leave the Table Range field completely blank so Make automatically detects A1 as the header row.
-
Check Frozen Rows: Ensure Row 1 is explicitly set as a frozen row in Google Sheets (View > Freeze > 1 row).
Thank you for the advice. Still the next day I copied and pasted the header and it worked. But yes I will freeze it. The rest I won’t touch as long as it works for now. Thank you again