Zoho CRM · Google Sheets
Log new Zoho CRM contacts in Google Sheets
Append a row for every new contact ID reported by Zoho CRM EU. Connect Zoho CRM and Google Sheets, then select a spreadsheet and worksheet. Columns A-D contain module, record ID, operation and provider event time in Unix milliseconds. The visible Loop step processes every ID in a batched notification; Google Sheets inside the Loop appends one row per ID. Only Contacts insert notifications received after activation are processed; existing contacts are not backfilled. Contact names, email addresses and other personal fields are not copied. RAW preserves text without formula evaluation. Provider retries or manual reruns may append duplicate rows. Wait for the trigger to show Connected before creating a test contact. Pausing removes the owned notification channel when no active consumer still needs it.
- 1. Zoho CRM · New Contact
- 2. Loop · For each new contact ID
- 3. Google Sheets · Append contact event rows to the worksheet
View template →Use templateTally · Google Sheets
Log new Tally submissions in Google Sheets
Append one row for each new completed submission to selected Tally forms. Connect Tally through OAuth, select the forms, then select a Google Sheets spreadsheet and worksheet. Columns A-D contain Form name, Submission ID, Form ID and Submission time UTC. An empty worksheet works; headers are optional. This starter records submission metadata; add answer mappings for your form if needed. Answers, uploaded files and signed preview/PDF links are not copied. Existing submissions are not backfilled. RAW preserves formula-looking form names as text. Manual reruns can append duplicate rows. Pausing the workflow removes its webhook subscription when no active consumer still needs it.
- 1. Tally · New Submission
- 2. Google Sheets · Append submission metadata to the worksheet
View template →Use templateTodoist · Google Sheets
Log new Todoist tasks in Google Sheets
Add one row to Google Sheets when a new Todoist task is created. Connect Todoist and Google Sheets, then use Browse to choose the destination spreadsheet and worksheet. Columns A-D contain Task name, Task ID, Project ID and Event time UTC, in that order. An empty worksheet works; headers are optional. The Todoist trigger receives item:added events across the connected account's accessible projects. Existing tasks are not backfilled, and updates or completions do not add rows. Descriptions and collaborator identities are not copied. Task names become visible to everyone with access to the spreadsheet. RAW input preserves formula-looking task names as text. Manual reruns can append duplicate rows. Pausing the Workflow disables this consumer while the shared Todoist app webhook remains installed.
- 1. Todoist · Task added
- 2. Google Sheets · Append the new task to the worksheet
View template →Use templateGoogle Calendar · Google Sheets
Log Google Calendar event changes in Google Sheets
Keep a searchable change log in Google Sheets when an existing Google Calendar event is updated. Each change appends one row with Event ID, Event title, Start, End, Status, Updated and Event URL in columns A-G. Headers are optional: an empty worksheet works immediately, or add these exact labels in row 1 for a readable log. Connect Google Calendar and Google Sheets, browse to the calendar you want to watch, then browse to the destination spreadsheet and worksheet. The primary calendar is preselected and can be changed. Includes its own fictional English and German example. Start and End retain the original ISO timestamps and offsets; all-day events use dates with an exclusive end date. Values are written as plain text. The first poll establishes a baseline without adding history. Edit existing events after that baseline; recently created events within the roughly two-minute overlap window are treated as new and excluded, so allow new events to settle before editing them. New events and cancellations do not trigger this template. Rows contain the latest event snapshot, not a before-and-after comparison, and multiple changes between polls may be combined. Other Calendar changes can also produce a row even when the displayed title and times are unchanged. Earlier rows are not updated or removed, and manual reruns can append duplicates. This is an append-only change log, not a live calendar mirror; follow the event link for current details. Use a private worksheet when event details should remain restricted.
- 1. Google Calendar · Updated Event
- 2. Google Sheets · Append calendar change to the log
View template →Use templateGoogle Sheets · Google Drive
Create Google Drive text files from new Google Sheets rows
Create one UTF-8 plain-text file in Google Drive for each new row appended to a selected Google Sheets worksheet. Prepare FileName and Content headers in row 1, connect Google Sheets and Google Drive, browse to the source spreadsheet and worksheet, and optionally choose a destination folder; leaving Parent folder empty saves to My Drive. Both FileName and Content are required. Activate and let the first poll establish a baseline before adding rows. Existing rows and later edits are not imported or synchronized. Append complete rows at the bottom and keep the headers stable while active. Only FileName and Content are copied; other columns remain in the sheet. Includes a fictional English project note with German characters and line breaks. Files inherit destination folder access, no public sharing is added, and manual reruns can create duplicate files.
- 1. Google Sheets · New Row Added
- 2. Filter · Only create files with a name
- 3. Google Drive · Create the row as a text file
View template →Use templateGoogle Sheets · Discord
Send new Google Sheets rows to a Discord channel
Post a Discord notification when a new row is appended to a selected Google Sheets worksheet. Connect Google Sheets and Discord, browse to the spreadsheet and worksheet, then choose a Discord text channel. Use Title, Owner, Status and Details headers in row 1 and append one complete item per row. The prepared message includes those four columns, the worksheet name, row number and spreadsheet link. Edit the mappings if your headers differ. Activate the workflow and let its first poll establish a baseline before adding a test row; existing rows and later edits are not sent. Avoid deleting or reordering rows while the workflow is active. User, role and everyone mentions are disabled, and spreadsheet links are not expanded automatically. Row values become visible to members of the selected Discord channel, while spreadsheet sharing permissions stay unchanged. Includes a fictional German project update example with no customer data.
- 1. Google Sheets · New Row Added
- 2. Discord · Notify the updates channel
View template →Use templateCalendly · Google Sheets
Log new Calendly bookings in Google Sheets
Keep a booking register in Google Sheets when a Calendly invitee schedules a meeting. FastHook checks the connected Calendly user's bookings every 5 minutes, so this template works with Calendly Free without webhook access. Connect Calendly and Google Sheets, then use Browse to choose the destination spreadsheet and worksheet. Append Values writes Invitee name, Email, Booking created UTC, Invitee timezone, Rescheduled, Event URI and Invitee URI into columns A-G in that order. Headers are optional: an empty worksheet works immediately, or add your own first row. Existing bookings are not backfilled, and cancellation or no-show events are excluded. Booking created time is not the meeting start time. Rescheduled bookings can create another row with Rescheduled true, and group bookings can create one row per invitee. Includes its own fictional German-name example. Custom answers, meeting locations and cancel or reschedule links are not copied. Invitee names and email addresses become visible to everyone who can access the worksheet, so use a private spreadsheet. RAW input keeps formula-looking values as text. Manual reruns can append duplicate rows.
- 1. Calendly · New Booking
- 2. Google Sheets · Append booking to the register
View template →Use templatePayPal · Google Sheets
Log completed PayPal payments in Google Sheets
Append one Google Sheets row when PayPal sends PAYMENT.CAPTURE.COMPLETED for the connected REST app. Record Capture ID, Status, Gross amount, Currency, Capture created UTC and Webhook event ID in columns A-F. Connect PayPal and Google Sheets, then use Browse to select the spreadsheet and worksheet. Append Values supports an empty worksheet without column headers. The trigger records completed captures, not merely approved orders, pending payments, authorizations or legacy sale events. Each capture becomes its own row; an order with multiple captures can produce multiple rows. The amount is the gross capture amount in the original currency, preserved as a decimal string without division by 100 or currency conversion. Capture creation time is not settlement time or the time the webhook arrived. Use a PayPal sandbox app and a fictional completed sandbox payment for testing, and wait for Connected before sending it. Existing payments are not imported. Payer names, email addresses, addresses, payment instruments, item details and notes are not copied. RAW input prevents formula-looking strings from being interpreted as formulas. Refunds, reversals, disputes and later changes do not update previous rows. Manual reruns can duplicate rows. This is a capture-event register, not a balance, tax or accounting ledger.
- 1. PayPal · Payment · Capture · Completed
- 2. Google Sheets · Append completed capture to the register
View template →Use templateMailchimp · Google Sheets
Log new Mailchimp subscribers in Google Sheets
Append a Google Sheets row when Mailchimp sends a subscribe event for a selected audience. Keep a subscription-event register with Email, Audience ID, Event fired time and Event type in columns A-D. Connect Mailchimp and Google Sheets, choose the audience using the standard Audiences browser and browse to the destination spreadsheet and worksheet. Append Values works with an empty worksheet; headers are optional. Source fired_at text is preserved exactly without assigning a timezone that is absent from the webhook. Includes its own fictional Hamburg subscriber example with German characters in unused merge fields. Only email and subscription-event metadata are copied; names, interests, signup IPs and other merge fields are excluded. Use a sheet whose access is appropriate for subscriber email addresses. RAW input prevents formula-looking source strings from being interpreted as formulas. Wait for Connected before creating a test subscription. New subscribe events can include resubscriptions, so separate legitimate events for one address can create multiple rows. Existing contacts are not backfilled. Unsubscribe, cleaned, email-change and profile events do not update or remove past rows: this is not a current eligible-recipient list or marketing-consent record. No campaigns or messages are sent and no new audience membership is created by this template. Manual reruns can duplicate rows.
- 1. Mailchimp · Subscribe
- 2. Google Sheets · Append subscription event to the register
View template →Use templateStripe · Google Sheets
Log canceled Stripe subscriptions in Google Sheets
Maintain a cancellation register when Stripe subscriptions actually end. Append Values saves Subscription ID, Final status, Currency, Event created (Unix seconds), Live mode and Event ID in columns A-F. Choose a spreadsheet and worksheet through Browse; a blank worksheet works without headers. Listens only for customer.subscription.deleted and includes an independent fictional English München canceled-trial example. Setting cancel_at_period_end merely schedules cancellation and sends an update; the row arrives when the subscription ends. Covers ended trials and paid subscriptions without assuming customer intent or calculating lost revenue from the first price. The event timestamp records the end notification, not the earlier cancellation request. RAW preserves numbers and boolean sandbox flags. This is a future-event register, not an update to existing subscription rows or a historical import. Review Stripe for the cancellation cause and outstanding invoices. No customer contacts, cancellation comments, payment details or metadata are copied. Choose worksheet access carefully. Test in Stripe sandbox first; Live mode false identifies test events. The workflow does not cancel subscriptions, issue refunds, revoke access or send messages. Manual reruns can duplicate rows.
- 1. Stripe · Customer Subscription Deleted
- 2. Google Sheets · Append the ended subscription to the cancellation register
View template →Use templateStripe · Google Sheets
Log new Stripe subscriptions in Google Sheets
Keep a creation register of Stripe subscriptions in Google Sheets, including trials. Append Values writes Subscription ID, Status at creation, Currency, Event created (Unix seconds), Live mode and Event ID into columns A-F. Connect Stripe and Google Sheets, then browse to a spreadsheet and worksheet. An empty worksheet works immediately; column headers are optional. Listens only for customer.subscription.created and includes its own fictional English Düsseldorf trial example. Status is a snapshot at creation: a trialing or incomplete subscription is not proof of payment. Subscriptions can contain several prices, so this register does not treat the first price as a total or calculate MRR. RAW input preserves numbers and boolean sandbox flags. Existing subscriptions, renewals, status changes and cancellations are not imported or synchronized. No customer contacts, payment details or metadata are copied. Choose a worksheet with appropriate access. Test with Stripe sandbox first; Live mode false identifies test events. This workflow does not create subscriptions, charge customers, grant access or send messages. Manual reruns can duplicate rows.
- 1. Stripe · Customer Subscription Created
- 2. Google Sheets · Append the new subscription to the register
View template →Use templateGoogle Sheets · Asana
Create Asana tasks from new Google Sheets rows
Turn each newly appended spreadsheet row into an Asana task. Prepare TaskName and Description headers in row 1, connect Google Sheets and Asana, browse to the source spreadsheet and worksheet, and select an Asana workspace and optionally a project. The prepared mappings copy the task title and plain-text description, including line breaks and German characters. A Filter skips rows without a task name; the description may be empty. Use this for a project intake list, workshop preparation or an internal task backlog. Activate and let the first poll establish a baseline before appending complete rows. Existing rows and later edits are not imported or synchronized. Skipped rows are not queued; append a new complete row instead. Keep headers stable and do not delete or reorder rows while active. Tasks have no assignee, due date or custom fields unless you configure these optional inputs. Without a project selection, the task is created in the selected workspace. Includes a fictional English example. Test with a dedicated worksheet and project first. Manual reruns and ambiguous provider failures can create another task; this is a one-way task creation workflow, not a two-way synchronization.
- 1. Google Sheets · New Row Added
- 2. Filter · Only create tasks with a name
- 3. Asana · Create the row as an Asana task
View template →Use templateGoogle Sheets · Gmail
Send personalized Gmail emails from new Google Sheets rows
Send one plain-text Gmail email for each new spreadsheet row. Prepare To, Subject and Body headers in row 1, then append one complete message per row. Use a single valid recipient address in To and non-empty Subject and Body cells. Connect Google Sheets and Gmail with permission to send email, browse to the source spreadsheet and worksheet, and keep the prepared mappings. Each row supplies its own recipient, subject and message, so workshop confirmations, internal updates and individual follow-ups can use different text. Includes a fictional English workshop example with German characters and line breaks. Activate and let the first poll establish a baseline before adding rows. Existing rows and later edits are not sent; a prepared Filter stops rows with missing To, Subject or Body cells. Skipped rows are not drafts or a pending queue, so prepare the full row before appending it. Do not delete or reorder rows while active. Emails are sent from the connected Gmail mailbox and recorded in Sent. HTML, attachments, Cc, Bcc and automatic signatures are not included. Only share the source worksheet with people allowed to send email from this account. Use a test worksheet and your own address for the first run. Gmail sending limits apply. This is individual message delivery, not a bulk campaign, scheduled digest or unsubscribe manager. Message IDs do not guarantee exactly-once delivery: manual reruns or ambiguous provider failures can send another email.
- 1. Google Sheets · New Row Added
- 2. Filter · Only send complete message rows
- 3. Gmail · Send the row as a plain-text email
View template →Use templateStripe · Google Sheets
Log new Stripe refunds in Google Sheets
Record newly created Stripe refunds in Google Sheets, including partial refunds. Append Values writes Refund ID, This refund amount (Stripe minor units), Currency, Event created (Unix seconds), Live mode, Event ID and Status at creation into columns A-G. Connect Stripe and Google Sheets, then browse to a spreadsheet and worksheet. Headers are optional: an empty worksheet works immediately. Listens only for refund.created. Includes its own fictional English Köln sandbox example with German characters. Two partial refunds produce separate rows containing their own amounts, not the accumulated refunded total. For EUR and USD, 1000 minor units means 10.00; for JPY, 1000 means 1000. Values use RAW input and preserve numbers and sandbox flags. Refund creation does not confirm funds have reached the customer. Status is a snapshot at creation, not the current status; review Stripe for subsequent pending, failed, canceled or completed outcomes. Existing refunds and later updates are not imported or synchronized. Customer contacts, card details, instructions email, metadata and destination details are not copied. This template does not issue refunds or contact customers. Test with Stripe sandbox first; Live mode false identifies test data. Manual reruns can duplicate rows. This is a refund creation register, not a settlement report.
- 1. Stripe · Refund Created
- 2. Google Sheets · Append new refund to the register
View template →Use templateStripe · Google Sheets
Log successful Stripe payments in Google Sheets
Record successful Stripe PaymentIntents in Google Sheets, including payments without an invoice. Append Values writes PaymentIntent ID, Amount received (Stripe minor units), Currency, Event created (Unix seconds), Live mode and Event ID into columns A-F. Connect Stripe and Google Sheets, then browse to a spreadsheet and worksheet. Headers are optional: an empty worksheet works immediately. Listens only for payment_intent.succeeded. Includes its own fictional English Leipzig sandbox example with German characters. Uses amount_received, not the requested amount: 4900 EUR minor units means 49.00 EUR, while 4900 JPY means 4900 JPY. Values use RAW input and preserve numbers and sandbox flags. Failed, pending and canceled payments do not trigger this workflow. Existing payments, later refunds, disputes and bank payouts are not imported or synchronized. Payment success does not mean funds have reached your bank. Customer contacts, card details, client secrets and metadata are not copied. This template does not charge customers or manage invoice collection. Test with Stripe sandbox first; Live mode false identifies test data. Manual reruns can duplicate rows. This is a payment event register, not a net revenue or settlement report.
- 1. Stripe · Payment Intent Succeeded
- 2. Google Sheets · Append successful payment to the register
View template →Use templateStripe · Google Sheets
Log failed Stripe payments in Google Sheets
Record each failed Stripe PaymentIntent payment attempt in Google Sheets. Append Values writes PaymentIntent ID, Attempted amount (Stripe minor units), Currency, Event created (Unix seconds), Live mode and Event ID into columns A-F. Connect Stripe and Google Sheets, then browse to a spreadsheet and worksheet. Headers are optional: an empty worksheet works immediately. Listens only for payment_intent.payment_failed. Includes its own fictional English Hannover sandbox example with German characters. Amounts use the attempted amount, not amount received: 2900 EUR minor units means 29.00 EUR, while 2900 JPY means 2900 JPY. Values use RAW input and preserve numbers and sandbox flags. A failed attempt is not necessarily a permanent failure; a later attempt can succeed. Separate failed attempts on the same payment can produce separate rows. Successful, pending and canceled payments do not trigger this workflow. Existing payments and later outcomes are not imported or synchronized. Customer contact information, card details, client secrets, metadata and raw error objects are not copied. This template does not retry charges, contact customers, issue refunds or manage invoice collection. Test with Stripe sandbox first; Live mode false identifies test data. Manual reruns can duplicate rows. This is an attempt register, not a current payment-status report.
- 1. Stripe · Payment Intent Payment Failed
- 2. Google Sheets · Append failed payment attempt to the register
View template →Use templateStripe · Google Sheets
Log paid Stripe invoices in Google Sheets
Record paid Stripe invoices in Google Sheets with one row per invoice.paid event. Append Values writes Invoice ID, Amount paid (Stripe minor units), Currency, Event created (Unix seconds), Live mode and Event ID into columns A-F. Connect Stripe and Google Sheets, then browse to a spreadsheet and worksheet. Headers are optional: an empty worksheet works immediately. Includes its own fictional English Frankfurt invoice example. Values use RAW input and preserve numeric amounts, zero values and sandbox flags. Amounts are not converted or divided by 100: 1900 EUR minor units means 19.00 EUR, while 1900 JPY means 1900 JPY. Paid invoices can include zero-value invoices, customer balance and payments recorded outside Stripe; a row is not proof of a new card charge or bank payout. Only new invoice.paid events after activation are recorded. Existing invoices, later edits, refunds, drafts and open invoices are not synchronized. Customer names, emails, card details, metadata, invoice PDFs and hosted invoice links are not copied. Test with Stripe sandbox first; Live mode false identifies test data. Manual reruns can duplicate rows. This is an event register, not a complete accounting ledger.
- 1. Stripe · Invoice Paid
- 2. Google Sheets · Append paid invoice to the register
View template →Use templateSlack · Google Sheets
Log Slack feedback in Google Sheets
Collect Slack messages containing [Feedback] in a Google Sheets feedback log. Connect Slack and Google Sheets, choose source channels, then browse to a destination spreadsheet and worksheet. The [Feedback] keyword is prefilled, matched anywhere without case sensitivity, and bot messages are ignored. Append Values writes Message, Author ID, Channel ID, Message timestamp, Workspace ID and Source channel URL into columns A-F in that order. Headers are optional; an empty worksheet works immediately. RAW input preserves message text, quotes and newlines without evaluating formulas or converting Slack timestamps to numbers. Includes its own fictional English Hamburg feedback example. Add FastHook to the source channel before activation. Leaving Channels empty watches all channels accessible to the connection. Matching human thread replies are included. Existing messages, edits and deletions are not synchronized. Files and thread history are not copied. Slack mentions and formatting are stored as source text. Choose a worksheet with appropriate access to the source messages. Manual reruns can add duplicate rows.
- 1. Slack · New Keyword Mention
- 2. Google Sheets · Append feedback to the log
View template →Use templateGitHub · Google Sheets
Log published GitHub releases in Google Sheets
Keep a release register in Google Sheets when a GitHub release is published. Append Values writes Release tag, Title, Repository, Author, Release URL, Published at (UTC) and Pre-release into columns A-G in that order. Connect the FastHook GitHub App and Google Sheets, browse to the repository, then select a destination spreadsheet and worksheet. The Actions filter is prefilled with published. Both stable releases and published pre-releases are included. Draft releases, edits and deleted releases do not add rows. Headers are optional; an empty worksheet works immediately. Includes an independent fictional English release example. RAW input keeps titles starting with an equals sign as text. Only new publication events after activation are processed; existing releases are not imported and later changes are not synchronized. This is a release register, not deployment verification. Release notes, assets and source code are not copied. Select a worksheet with appropriate access for repository details. Manual reruns or unpublishing and republishing a release can create duplicate rows.
- 1. GitHub · Release
- 2. Google Sheets · Append published release to the register
View template →Use templateGitHub · Google Sheets
Log new GitHub pull requests in Google Sheets
Keep a pull request register in Google Sheets whenever a GitHub PR is opened. Append Values writes PR number, Title, Repository, Author, PR URL, Created at (UTC), Source branch, Target branch and Draft into columns A-I in that order. Connect the FastHook GitHub App and Google Sheets, browse to the repository, then choose a destination spreadsheet and worksheet. The Actions filter is prefilled with opened. Draft PRs are included with their draft flag. Edits, commits, reviews, closed and reopened PRs do not add another row. Headers are optional: an empty worksheet works immediately, or add your own header row. Includes an independent fictional English example with German characters. Only new events after activation are processed; existing PRs are not imported and later status changes are not synchronized. RAW input keeps titles beginning with an equals sign as text. PR bodies, code, comments and attachments are not copied. Select a worksheet with appropriate access for repository details. Manual reruns can create duplicate rows.
- 1. GitHub · Pull Request
- 2. Google Sheets · Append pull request to the register
View template →Use templateHubSpot · Google Sheets
Log new HubSpot contacts in Google Sheets
Log each new HubSpot contact in a Google Sheets worksheet. Connect HubSpot and Google Sheets, then browse to your spreadsheet and worksheet. Append Values writes five columns in this order: A Contact ID, B HubSpot record URL, C Event time (Unix milliseconds), D Event ID, E Portal ID. An empty worksheet works; optional headers can be added in row 1 before activation. Values are written as RAW data and new rows are inserted after the existing table. Only contact.creation events received after activation are processed. Existing contacts and later edits, merges or deletions are not synchronized. HubSpot creation webhooks contain record IDs, not names or email addresses, so contact profile fields are not included. The CRM link requires existing HubSpot access. Includes its own fictional event sample. Test with one fictional contact first.
- 1. HubSpot · Contact Creation
- 2. Google Sheets · Log the new HubSpot contact
View template →Use templateGoogle Sheets · Notion
Create Notion project pages from new Google Sheets rows
Turn a spreadsheet project intake list into Notion project pages. Put Project in row 1 and append one complete project name per row. Each child page uses that name and includes a clickable source spreadsheet link plus Overview, Tasks and Notes sections. Connect Google Sheets and Notion, browse to the spreadsheet and worksheet, then choose an accessible parent Notion page. Activate and allow the first poll to establish a baseline before adding rows. Only newly appended rows are processed; existing rows and later edits are not imported or synchronized. Keep the Project header unchanged and do not delete or reorder rows while active. A non-empty Project value is required. Separate rows create separate pages even when project names match. Includes its own fictional English project example with German characters. Only the project name and source link are copied, not other columns or attachments. This creates child pages rather than database rows and does not write page links back to the sheet. Page access follows the selected Notion parent.
- 1. Google Sheets · New Row Added
- 2. Notion · Create project brief
View template →Use templateGitHub · Google Sheets
Log new GitHub issues in Google Sheets
Keep an issue register in Google Sheets whenever a new GitHub issue is opened. Append Values writes Issue number, Title, Repository, Author, Issue URL and Created at (UTC) into columns A-F in that order. Connect the FastHook GitHub App and Google Sheets, browse to the repository, then choose a destination spreadsheet and worksheet. The Actions filter is prefilled with opened: edits, comments, closed and reopened issues do not add rows. Headers are optional; an empty worksheet works immediately, or add your own header row. Includes a fictional English example with German characters. Only new events received after activation are processed; existing issues are not imported and later status changes are not synchronized. Values use RAW input, so issue titles starting with an equals sign remain text. Issue bodies, comments and attachments are not copied. Select a worksheet with appropriate access for the repository details.
- 1. GitHub · Issues
- 2. Google Sheets · Append issue to the register
View template →Use templateStripe · Google Sheets
Log new Stripe customers in Google Sheets
Keep a customer register in Google Sheets when a new customer is created in Stripe. Append Values writes Customer ID, Name, Email, Created (Unix seconds), Live mode and Event ID into columns A-F in that order. Connect Stripe and Google Sheets, then browse to the destination spreadsheet and worksheet. Headers are optional: an empty worksheet works immediately, or add your own header row. Includes a fictional English sandbox customer with German characters. The instant trigger listens only for customer.created events after activation; existing customers and later edits are not imported or synchronized. A customer record does not mean a payment or subscription was created. Name and email may be blank. Values use RAW input, so names starting with an equals sign remain text. No payment details, addresses, tax IDs or metadata are copied. Use a private worksheet: customer names and emails are visible to everyone who can access it. Test with a fictional customer in Stripe sandbox first; Live mode distinguishes sandbox from live events.
- 1. Stripe · Customer Created
- 2. Google Sheets · Append customer to the register
View template →Use templateGoogle Sheets · Telegram Bot
Send Telegram notifications for new Google Sheets rows
Send a Telegram notification when a new request is appended to Google Sheets. Put Title, Company, Priority and Details headers in row 1, then add one complete request per row. Connect Google Sheets and Telegram, browse to your spreadsheet and worksheet, and choose a chat where the FastHook bot can post. The prepared plain-text message includes those four columns, the worksheet name, row number and spreadsheet link. Change the mappings if your headers differ. Activate and allow the first poll to establish a baseline before adding rows. Existing rows and later edits are not sent; avoid deleting or reordering rows while active. Includes a fictional English request with German characters. Keep the combined message within Telegram’s 4096-character limit. Mapped data is visible to members of the selected chat; spreadsheet access permissions remain unchanged.
- 1. Google Sheets · New Row Added
- 2. Telegram Bot · Notify the Telegram requests chat
View template →Use templateGoogle Sheets · Slack
Send Slack notifications for new Google Sheets rows
Notify your team when a new request is added to Google Sheets. Use Title, Company, Priority and Details headers in row 1, then append one complete request per row. Connect Google Sheets and Slack, browse to your spreadsheet and worksheet, and choose a channel where the FastHook bot can post. The prepared message includes those four columns, the worksheet name, row number and spreadsheet link. Edit the mappings if your column names differ. Activate and let the first poll establish a baseline before appending rows. Existing rows and later edits are not sent; avoid deleting or reordering rows while active. Includes a fictional English request example with German characters. Messages use plain text with link previews disabled. Mapped row data becomes visible to members of the selected Slack channel; spreadsheet access permissions remain unchanged.
- 1. Google Sheets · New Row Added
- 2. Slack · Notify the requests channel
View template →Use templateGoogle Sheets · HubSpot
Create HubSpot contacts from new Google Sheets rows
Turn new spreadsheet leads into HubSpot contacts. Use Email, FirstName, LastName and Company headers in row 1, then append one complete contact per row. Connect Google Sheets and HubSpot, select the spreadsheet and worksheet, and keep the prepared property mappings. Use a valid, unique email for each new contact. This template creates contacts; it does not update existing contacts or merge duplicate emails. HubSpot may reject a contact whose email already exists. Activate and let the first poll establish a baseline before appending rows. Existing rows and later edits are not imported; avoid deleting or reordering rows while active. Includes a fictional English example with German characters. No marketing subscription or email campaign is configured by this template. Contact data is copied to the connected HubSpot account.
- 1. Google Sheets · New Row Added
- 2. HubSpot · Create CRM contact
View template →Use templateGoogle Sheets · Google Calendar
Create Google Calendar events from new Google Sheets rows
Turn a spreadsheet schedule into Google Calendar events. Add Title, Start and End headers in row 1, then append one complete event per row. Start and End must be RFC 3339 timestamps with a time-zone offset, for example 2026-09-22T10:00:00+02:00 and 2026-09-22T11:00:00+02:00. End must be later than Start. Connect Google Sheets and Google Calendar with permission to create events, select the spreadsheet and worksheet, and choose a writable destination calendar. Includes its own fictional English planning example. Activate and let the first poll establish a baseline before adding rows. Existing rows and later edits are not imported; do not delete or reorder rows while active. Each new row creates a separate event. This is one-way event creation, not calendar synchronization or a conflict checker. It does not add attendees, send invitations or write event IDs back to the sheet. Calendar visibility and default reminders follow the destination calendar.
- 1. Google Sheets · New Row Added
- 2. Google Calendar · Create scheduled event
View template →Use templateGoogle Sheets · Google Drive
Create Google Drive project folders from new Google Sheets rows
Prepare a project workspace automatically from your Google Sheets intake list. Add the header Project in row 1 and enter a project name in each new row. FastHook creates one empty Google Drive folder with that name inside the parent folder you select. Connect Google Sheets and Google Drive, choose the source spreadsheet and worksheet, and optionally choose a writable parent folder; without a parent, folders are created in My Drive. Includes its own fictional English project example. Activate and allow the first poll to establish a baseline before adding rows. Append complete rows at the bottom: existing rows and later edits are not imported. Keep the header unchanged and avoid deleting or reordering rows while active. A Project value is required. Separate rows create separate folders even when their names match. This template does not copy files, change permissions or write a folder link back to the sheet. Access follows the destination folder.
- 1. Google Sheets · New Row Added
- 2. Google Drive · Create project folder
View template →Use templateGoogle Drive · Google Sheets
Log new Google Drive files in Google Sheets
Keep a searchable file register in Google Sheets when new files are created in Google Drive. Each file adds one row with File ID, File name, MIME type, Created and Drive URL. Uses Append Values to write these five values in columns A-E in that order. Column headers are optional: an empty worksheet works immediately, or you can add your own header row. Connect Google Drive and Google Sheets, choose a folder to watch, and select the destination spreadsheet and worksheet. Leaving the folder empty watches the connected Drive. Includes its own fictional English file example. Values are written as plain text; file contents and permissions are never copied or changed. A Drive link still requires existing access. Folder monitoring covers direct children only and uses creation time: moving an older file into the folder may not trigger a row. Polling can include files from roughly the minute before setup; older files, later edits and deletions are not synchronized. Use a private worksheet for the file metadata. This is an append-only register, not a live inventory mirror.
- 1. Google Drive · New Files
- 2. Google Sheets · Append Values
View template →Use templateGmail · Google Sheets
Log matching Gmail emails in Google Sheets
Build a searchable correspondence register from new inbox emails matching your Gmail search. Each matching email adds one row with Message ID, Sender, Subject, Received and Gmail URL. Prepare these exact headers in columns A-E, connect Gmail and Google Sheets, select the spreadsheet and worksheet, and review the prefilled search subject:"[Log]" before activating. Includes its own fictional English enquiry example. Values are written as plain text, preserving punctuation and preventing spreadsheet formula interpretation. Only newly received matching inbox messages are processed; historical messages and later label changes are not imported. Email bodies and attachments are not copied. This is an append-only register, not a two-way sync. Use a private worksheet because sender and subject information is copied there.
- 1. Gmail · New Email Matching Search
- 2. Google Sheets · Log matching email
View template →Use templateGoogle Calendar · Google Sheets
Log new Google Calendar events in Google Sheets
Keep a searchable register of newly created Google Calendar events in Google Sheets. Each event adds one row with Event ID, Event title, Start, End, Status and Event URL. Prepare these exact headers in columns A-F, connect both accounts, select a calendar and worksheet, then publish. The primary calendar is preselected. Includes its own fictional English appointment example. Start and End retain the original ISO timestamps and offsets; all-day events use dates, with an exclusive end date. Values are written as plain text. The first poll establishes a baseline; create events afterwards. Existing events and later edits or cancellations are not synchronized. This is an append-only creation log, not a live calendar mirror. Follow the event link for current details.
- 1. Google Calendar · New Event
- 2. Google Sheets · Log calendar event
View template →Use templateTrello · Google Sheets
Log new Trello cards in Google Sheets
Keep a searchable spreadsheet log of new Trello cards. Each new card adds one row with Card ID, Card name, Board, List, Created at and Card URL. Connect Trello and Google Sheets, choose a board, and select a worksheet with these six headers in columns A-F. Mappings are already prepared; adjust them if your headers differ. Values are written as plain text. Includes its own English example card. Tracks new card creation after activation, not existing cards, copied cards or later updates. Initial webhook registration can take up to 15 minutes. Confirm the trigger is connected before creating your first card.
- 1. Trello · Create Card
- 2. Google Sheets · Log new card
View template →Use templateGoogle Sheets · Trello · Telegram Bot
Turn Google Sheets leads into Trello cards and Telegram alerts
Turn each new Google Sheets row into a Trello card with the lead name, email, company and request, then send the card link to Telegram. Use the column headers Name, Email, Company and Request, or adjust the mappings. Connect your accounts, choose a spreadsheet and worksheet, select a Trello board and list, and enter your Telegram chat ID. Includes an English example lead. New rows added after activation are processed; existing rows are not imported.
- 1. Google Sheets · New Row Added
- 2. Trello · Create lead card
- 3. Telegram Bot · Send lead notification
View template →Use templateGmail · Google Sheets
Import Gmail CSV attachments into Google Sheets
Import every row from a Gmail CSV attachment into Google Sheets. Formatter parses the file and maps id, name, email, amount and note to columns A–E. Choose your spreadsheet and worksheet with these headers, or adjust the mappings for your CSV. Includes a three-row CSV example. Only activate after checking the Gmail filter and destination.
- 1. Gmail · New Attachment Received
- 2. Formatter · Import CSV attachment
- 3. Google Sheets · Create Multiple Spreadsheet Rows
View template →Use template