This is how I built a SaaS lead magnet, in 3 days, for @weusekana and @atulord.
Problem: Keeping track of your SaaS competitors pricing and offering is v v time-consuming.
Solution: Free instant email alerts whenever a competitor changes their pricing page.
This could be done no-code, but considering I have some JS experience, I went for a low-code solution.
Essentially, mixing a few tools and workflow services with some custom code sprinkled on top ✨
Rough solution requirements.
1. Allow users to track a company's pricing page
2. Weekly check for pricing page changes
3. Send email alerts when a pricing page changes
4. Maintain a list of users tracking each company
5. Maintain a list of companies already being tracked
My chosen tech stack for those requirements.
@visualping for web crawler / visual comparison checks
@SendGrid for emails, email lists and email templates
@pipedream for user sign up and email alert workflows
@airtable for a simple data store
@softr_io for web app / front-end
Tracking every SaaS company would be prohibitively expensive, so we only want to track companies people sign up to.
In short, we want to setup a web crawler and email alert list for each pricing page only when the first user requests it.
And then, subsequent users can just be added to that email list and get alerts from the crawler that already exists.
At this point it's worth saying I'd already built a SaaS pricing index with 300+ companies pricing data: pricing-index.usekana.com/
This was going to be the home for the pricing alerts. But the alerts could have had their own micro-site very easily.
To start, I'll add an email sign-up field to each company on the SaaS index.
This email sign-up pings a webhook I'll create on @pipedream.
It'll send the user's email and the pricing page URL to track.
Next, we'll search our @airtable data store (using a no-code integration) to see if this company is already being tracked.
If it's not being tracked, then we need:
1. @visualping API request to create a new web crawler
2. @SendGrid API request to create a new email list for this company.
We'll do this using some custom JS code 👨💻 as a workflow step.
This company is then saved to our @airtable.
After the crawler and list are setup, or if it already existed, we just need to subscribe the user to the existing email list.
A new @airtable search will give us the list ID for a given pricing page URL.
Another API request to @SendGrid will add the user's email to this list.
And hey presto! We have the first half setup.
✅ Users can track companies.
Now we need to build the alerts for when a pricing page changes.
Goal: Send an email template to a given email list.
I'll create another webhook in @pipedream. This is what @visualping will call when it detects a change in a pricing page.
This is where I started to find @SendGrid very cumbersome to work with 😬
You can't send an email template to a list by its ID. You can only send it to a list of emails.
So two bits of custom code:
1. Fetch an email list and get all its recipients' email addresses.
2. Send an email, using a template, to an array (list) of user email addresses.
And that's it!
The result, a beautiful email alert, received whenever a competitor changes their pricing page.
A few ideas I've had for v2 of these pricing alerts:
- Welcome email on first company tracked, with email verification
- Include the actual pricing page change or screenshot comparison in the alert email