TL;DR
You can automate swing trading alerts by connecting TradingView webhooks to Zapier, then routing those alerts to Slack, SMS, Gmail, or a Google Sheet - no coding required, and the setup takes under an hour.
Key Takeaways
- 1.TradingView's webhook alert feature fires a JSON payload to any URL, including Zapier's webhook trigger - you need TradingView Pro or higher for this
- 2.Zapier's free plan supports 100 tasks per month, enough for testing; active traders watching 20+ tickers should budget for the Starter plan at $19.99/month
- 3.You can filter alerts by ticker, timeframe, or volume before they hit your phone, which cuts notification fatigue dramatically
- 4.Running Slack plus Google Sheets in parallel gives you both real-time notification and a permanent log you can review every weekend
- 5.TradeZella handles your actual trade journal; this Zapier setup captures every signal including the ones you chose not to act on
Missing a swing entry because you were away from your desk is one of the more frustrating things in trading. You did the analysis, identified the level, and the stock moved without you. Basic price alerts help, but they only tell you that a price was touched - they don't filter by volume, time of day, or whether two or three other conditions aligned at the same moment.
That's where Zapier comes in. Most traders think of it as a marketing tool, but it works well as a lightweight alert router. Combined with TradingView's webhook system, you can build a no-code pipeline that fires the moment a multi-condition setup triggers, then delivers that alert exactly where you want it - a Slack DM, an SMS text, a Google Sheet row, or all three at once. I've been running a version of this setup for about eight months, and it's cut my missed entries close to zero.
Why Swing Traders Need This More Than Day Traders
Day traders tend to sit in front of charts all session, so basic alerts are tolerable. Swing traders are different. You're holding positions for two to ten days and scanning for entries that might only appear once or twice a week on any given ticker. Manually checking 30 watchlist names every hour is exhausting and error-prone - and it pulls your attention away from the positions you're already in.
Automated alerts solve three specific problems for swing setups. First, they remove the attention burden entirely. You can focus on other work and only engage when a setup actually triggers. Second, they create a log. Every alert Zapier receives gets timestamped and can be written to a Google Sheet, giving you a record of how often your setups fire and what percentage actually follow through. That feedback loop is genuinely valuable for refining your edge over time. Third, they handle multi-condition filtering better than any basic price alert system. Instead of 'price crossed $52,' you can send alerts only when price crosses a level, RSI is below 35, and it's not within 30 minutes of market open.
What you need before starting
This guide assumes you have TradingView Pro or higher (the free plan doesn't support webhook alerts) and a Zapier account. The free Zapier tier gives you 100 tasks per month, which is enough to verify the setup works. Once you're running alerts on multiple tickers across multiple timeframes, upgrade to the Starter plan at $19.99/month.
What You Need Before You Start
Getting this pipeline working requires three ingredients. Confirming you have all of them before you start saves you from mid-setup headaches.
- TradingView Pro, Pro+, or Premium subscription (webhooks are not on the free plan)
- A Zapier account - free tier works for testing, Starter plan for production use
- A destination app already connected to Zapier: Slack, Gmail, Google Sheets, or Twilio for SMS
- At least one TradingView alert already configured on a chart with the conditions you want to monitor
- About 45-60 minutes for initial setup and testing
If you're using Pine Script strategies, your alerts are usually attached to the strategy's entry and exit conditions. If you're using built-in indicators like MACD or RSI crossovers, you create alerts manually on the chart. Both approaches work fine here. The key point is that TradingView is the thing that decides when to fire - Zapier just handles where the alert goes and what happens to it.
Step 1: Create a Zapier Webhook Trigger
The Zapier webhook trigger is what makes this whole thing work. It gives you a unique URL that listens for incoming data. When TradingView sends an alert to that URL, Zapier wakes up and runs whatever automation you've built. The URL is your bridge between the two platforms.
Setting up the Zapier webhook trigger
- 1
Create a new Zap
Log into Zapier and click 'Create Zap' in the top left. The workflow builder opens. Give your Zap a descriptive name like 'TradingView Swing Alerts' so it's easy to find later when you have a dozen Zaps running.
- 2
Choose Webhooks by Zapier as your trigger
In the trigger search field, type 'Webhooks' and select 'Webhooks by Zapier'. This is a built-in Zapier app, so no separate account connection is needed. Select 'Catch Hook' as the trigger event - this tells Zapier to listen for incoming data.
- 3
Copy your webhook URL
Zapier generates a unique URL that looks like 'https://hooks.zapier.com/hooks/catch/XXXXXXX/XXXXXX/'. Copy this URL - you'll paste it into TradingView in the next step. Treat it like a password: anyone who has it can trigger your Zap.
- 4
Skip the test for now
Zapier will prompt you to test the trigger immediately. Click 'Skip Test' - the test only works once TradingView has sent at least one payload to the URL. You'll come back to run the test after configuring TradingView.
Step 2: Configure TradingView Webhook Alerts
TradingView's alert dialog has a 'Webhook URL' field buried in the notifications section that most traders scroll past. This single field is what transforms TradingView from a charting platform into the signal source for your entire alert pipeline.
Setting up the TradingView alert
- 1
Open the alert creation dialog
On any TradingView chart, click the alarm clock icon in the top toolbar or press Alt+A. Set your alert condition - for example, an EMA crossover, a strategy entry signal, or an RSI level. Set the condition to fire 'Once Per Bar Close' for swing setups to avoid multiple triggers on the same candle.
- 2
Write your alert message as JSON
In the 'Message' field, paste a JSON object with the context you want downstream: {"ticker": "{{ticker}}", "close": {{close}}, "volume": {{volume}}, "time": "{{time}}", "interval": "{{interval}}", "alert": "EMA crossover"}. TradingView fills in the double-brace placeholders with live values when the alert fires.
- 3
Paste your Zapier webhook URL
Expand the 'Notifications' section at the bottom of the alert dialog. Check the 'Webhook URL' checkbox and paste the Zapier URL you copied. Uncheck email and push notifications unless you want duplicates on top of your Zapier automation.
- 4
Set expiration to open-ended and save
Set the alert to 'Open-ended' so it doesn't expire after a set time. Name it clearly - something like 'AAPL EMA Cross 1H' so you can identify it in TradingView's alert manager when you have 20 alerts running. Click 'Create' to save.
- 5
Fire a test alert
To test, temporarily set your condition to something that will trigger in the next few minutes. Once TradingView fires the alert, go back to Zapier, run the trigger test, and you should see the JSON data from TradingView populate the available fields. Restore your real condition after testing.
TradingView placeholder variables
The most useful TradingView placeholders are {{ticker}}, {{close}}, {{high}}, {{low}}, {{volume}}, {{time}}, and {{interval}}. Drop these into your JSON message to pass rich context downstream, so your Slack notification tells you not just that an alert fired, but which ticker, at what price, at what volume, and on which timeframe.
Step 3: Build Zapier Actions - Where Alerts Go
Once Zapier receives TradingView's webhook, you decide what to do with it. You can send it to one destination or several simultaneously. For swing traders, the most practical setup combines something immediate with something persistent.
| Destination | Best For | Setup Difficulty | Cost |
|---|---|---|---|
| Slack DM | Instant notification while at a computer | Easy | Free |
| Gmail | Searchable history in your inbox | Easy | Free |
| Google Sheets | Logging every alert with timestamps for weekend review | Easy | Free |
| Twilio SMS | Mobile alerts when away from the screen | Medium | $0.0075 per text |
| Notion database | Building a setup journal with context | Medium | Free tier available |
| Make.com webhook | Chaining to more complex automations | Hard | Free tier available |
I run Slack and Google Sheets in parallel. Slack tells me an alert fired in real time. The Sheet logs every alert - including those I missed - with a full timestamp, so I can review at the weekend whether my setups are actually performing. Adding a second action in Zapier takes 30 seconds: click the '+' after your first action and add another.
Adding a Slack notification
- 1
Add action: Slack
Click '+' to add an action, search for 'Slack', and choose 'Send Direct Message' or 'Send Channel Message'. Connect your Slack workspace when Zapier prompts you.
- 2
Build the message with dynamic fields
In the message body field, use Zapier's field mapping to pull in TradingView data. Example: 'Alert: [ticker] | Close: [close] | Vol: [volume] | Time: [time] | TF: [interval]'. This gives you full context in 30 words or less.
- 3
Test and publish
Click 'Test Step' to send a sample notification using the data Zapier captured during the trigger test. Confirm the Slack message looks right, then click 'Publish' at the top right to make the Zap live.
Step 4: Add Filtering to Cut Alert Noise
The biggest problem with alert systems isn't missing signals - it's getting too many of them. If your phone buzzes every few minutes, you'll start ignoring the alerts entirely and the whole system becomes noise. Zapier's built-in Filter step is the tool for managing this.
Add a Filter action between your webhook trigger and your first notification action. Zapier filters let you check any field in the incoming data against a condition you set. For swing trading, useful filters include: only pass alerts where volume is above a specific threshold, only pass alerts that arrive between 9:45 AM and 3:30 PM Eastern (to skip pre and post-market noise), or only pass alerts for specific tickers by checking whether the ticker field matches a list of names you care about.
Pros
- Filters cut notification fatigue without touching the TradingView alert itself
- You can maintain separate Zaps for different watchlists, like high-conviction vs. speculative setups
- Filter conditions are easy to adjust in Zapier without reconfiguring TradingView
- Zapier's Paths feature lets you route different tickers to different Slack channels automatically
Cons
- Over-filtering can cause you to miss valid setups that fall just outside your filter thresholds
- Zapier's filter logic doesn't easily support complex AND/OR combinations without workarounds
- Each filter action adds one task to your monthly Zapier count
- Time-based filters need to account for DST changes and your broker's exact market hours for the asset class
Watch your monthly task count
Zapier's free plan gives you 100 tasks per month. If you're running alerts on 20+ tickers across multiple timeframes during a volatile week, you can burn through that in two or three days. Check your task usage in Zapier's dashboard and upgrade your plan before you hit the ceiling mid-month.
Step 5: Log Every Alert to Google Sheets
Adding a Google Sheets action turns your alert system into a passive trading log with zero extra effort. Every time TradingView fires an alert, Zapier appends a new row to a sheet with the ticker, price, volume, timeframe, and timestamp. That dataset is the real long-term value of this system.
After four weeks of running this setup on my swing watchlist, I could see that my EMA crossover alerts on the daily chart preceded the expected price move about 65% of the time - while my 1-hour alerts on the same tickers were closer to 40%. That difference told me something concrete about which timeframe my edge actually exists on. You can only get that information if you've been logging systematically. Manual journaling in TradeZella is great for reviewing trades you actually took. This sheet captures every signal, including the ones you chose not to act on.
Setting up the Google Sheets log
- 1
Create a sheet with your column structure
In Google Sheets, create a new file with columns: Date, Ticker, Close Price, Volume, Alert Type, Timeframe, Acted On. Leave 'Acted On' blank - fill it manually during your weekend review to record which alerts you actually traded.
- 2
Add Google Sheets as a Zapier action
After your Slack action, click '+' and choose 'Google Sheets - Create Spreadsheet Row'. Connect your Google account and select the spreadsheet and sheet tab you just created.
- 3
Map TradingView fields to your columns
Map each Zapier field from the webhook data TradingView sent to the corresponding column in your sheet. Use the 'Formatted Date' option in Zapier for the timestamp so you get a readable date string instead of a Unix timestamp.
- 4
Test the full pipeline
Run the full Zap test again. Check your Google Sheet for the new row. Once data looks right across both Slack and the Sheets row, publish the Zap and let it run for a week before drawing conclusions about your alert rate.
What to Do Next
Once your basic TradingView-to-Zapier pipeline is live, start simple. One or two alerts on your highest-conviction watchlist tickers, a single Slack notification, and a Sheets log. Resist the urge to automate everything on day one - a simple Zap you actually trust is worth more than a complex one you're always second-guessing.
After a few weeks, open your Sheets log and check which alerts preceded real moves. That feedback loop is the whole point of the system. You're not just automating notifications - you're building a dataset that tells you whether your setups have a statistical edge. If daily timeframe alerts consistently lead to follow-through but hourly alerts are mostly noise, you can tighten the filter without rebuilding anything from scratch.
For traders who want more logic than Zapier supports, Make.com is the natural next step. It offers more complex branching, data transformation between steps, and lower per-task pricing on paid plans. But Zapier gets you 90% of what you need with less friction - and when you're trying to trade, not build software, that friction difference matters.
Keep reading
Get smarter trades, weekly
One short email every Sunday. AI workflows, tool reviews, and trader productivity tips.
