Send a 7-email onboarding drip with Clerk webhooks and Brevo
Quick overview This workflow receives signup, activation, and upgrade events via a webhook, then uses Brevo (Sendinblue) to manage contact attributes/lists and send a 7-email onboarding sequence for free users, stopping the sequence and moving contacts to a Pro list when they upgrade.
How it works Receives a POST webhook event (Clerk user.created or a backend { event, email, firstname, contactId } payload) on the your-product-onboarding path. Normalizes the incoming payload into a consistent event, email, and firstname structure and routes processing based on signup, activated, or upgrade_pro. On signup, upserts the contact in Brevo with onboarding attributes (for example PLAN=FREE and IS_ACTIVATED=false), adds the contact to Brevo list 6, and sends the Welcome email. After each wait period, re-fetches the contact from Brevo and exits the sequence if PLAN=PRO by removing them from list 6 and adding them to list 3. If the contact remains on the free plan, continues sending the remaining onboarding emails with delays between them, choosing different branches depending on the Brevo IS_ACTIVATED flag. On activated, updates the Brevo contact attribute IS_ACTIVATED=true so subsequent checks can fast-forward to the later part of the sequence. On upgrade_pro, updates the Brevo contact attribute PLAN=PRO and immediately moves the contact from list 6 to list 3 so any waiting executions stop at the next plan check. After the final email, removes the contact from list 6 and adds them to Brevo list 5 (Inactive) to mark the free onboarding sequence complete.
Setup Add a Brevo (Sendinblue) API credential and select it in all Brevo and HTTP Request nodes that call the Brevo v3 API. In Brevo, create or confirm the list IDs used by the workflow (6 = New Signup, 3 = Pro Users, 5 = Inactive) or update the list IDs in the Brevo API URLs. In Brevo, ensure your contact attributes exist (at least PLAN, IS_ACTIVATED, FIRSTNAME, PRODUCT_NAME, and CLERK_ID). Update the transactional email sender address/name and any links or branding in the HTML templates to match your product. Copy the production webhook URL for your-product-onboarding and configure it in Clerk (for user.created) and/or your backend event sender to POST the supported payload shape.
Related Templates
Transform Gmail Newsletters into Insightful LinkedIn Posts Using OpenAI
Who Is This For? This workflow is perfect for content creators, marketers, and business professionals who receive regu...
Subscribe to new releases of a Github repository via Gmail
This is a very simple workflow that lets you subscribe to any github repository for the latest release (using n8n as ex...
AI Email Classifier & Auto-Delete for Gmail (SPAM/OFFER Cleaner)
This workflow is designed for freelancers, solopreneurs, and business owners who receive a high volume of irrelevant mes...
🔒 Please log in to import templates to n8n and favorite templates
Workflow Visualization
Loading...
Preparing workflow renderer
Comments (0)
Login to post comments