A powerful and flexible Google Apps Script that captures form submissions from Elementor through a webhook, stores the data in Google Sheets, and optionally sends email notifications.
- Dynamically adapts to any Elementor form structure
- Automatically creates and updates Google Sheets based on form submissions
- Intelligent error handling and logging
- Optional email notifications for new submissions
- Flattens nested form data for easier processing
- Timestamps each submission for accurate tracking
- A Google account with access to Google Sheets and Google Apps Script
- An Elementor form with webhook functionality enabled
- Open Google Sheets and create a new spreadsheet.
- Go to Tools > Script editor to open the Google Apps Script editor.
- Copy the entire code from
elementor-form-to-google-sheets-webhook.js
and paste it into the script editor. - Save the project with a name of your choice.
- In the script, set the
emailNotification
variable totrue
if you want to receive email notifications for new submissions. - Update the
emailAddress
variable with your email address if you enabled notifications.
- In the Google Apps Script editor, click on "Deploy" > "New deployment".
- Choose "Web app" as the deployment type.
- Set the following options:
- Execute as: Your Google account
- Who has access: Anyone
- Click "Deploy" and authorize the necessary permissions.
- Copy the provided Web app URL. This is your webhook URL.
- In your Elementor form settings, find the webhook or form submission URL field.
- Paste the Web app URL you copied from the Google Apps Script deployment.
Once set up, the script will automatically:
- Receive form submissions from Elementor
- Create a new sheet for each unique form (if it doesn't exist)
- Update headers as new form fields are encountered
- Append new submissions to the appropriate sheet
- Send an email notification (if enabled) with submission details
- Modify the
processIncomingData
function to add custom data processing logic. - Adjust the
sendNotification
function to customize email content. - Implement additional security measures in the
doPost
function if needed.
@Takk8IS
@davcavalcante
@fjallstoppur
We welcome contributions from the community! If you'd like to contribute, please fork the repository, create a new branch, and submit a pull request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/AmazingFeature
). - Commit your changes (
git commit -m 'Add some AmazingFeature'
). - Push to the branch (
git push origin feature/AmazingFeature
). - Open a Pull Request.
This project is licensed under the Attribution 4.0 International License.
If you need help with this project, please contact via email at say@takk.ag.
If this script has been helpful for you, consider making a donation to support our work:
- $USDT (TRC-20):
TGpiWetnYK2VQpxNGPR27D9vfM6Mei5vNA
Your donations help us continue developing useful and innovative tools.
Leading the Digital Revolution as the Pioneering 100% Artificial Intelligence Team.
- Copyright (c)
- License: Attribution 4.0 International (CC BY 4.0)
- Author: David C Cavalcante
- LinkedIn: https://www.linkedin.com/in/hellodav/
- Medium: https://medium.com/@davcavalcante/
- Positive results, rapid innovation
- URL: https://takk.ag/
- X: https://twitter.com/takk8is/
- Medium: https://takk8is.medium.com/