Wally Signup Users Info Workflow
1. Purpose
This workflow automates the processing of new user signups for Wally accessibility products. It receives user registration data via webhook, extracts user information, scrapes the user's website to understand their business, generates AI-powered summaries, and sends notifications to Slack. Currently, the workflow only sends Slack notifications and does not send welcome emails.
2. Trigger
Type: Webhook
Details:
The workflow is triggered automatically when a new user signs up for any Wally product. An external system sends user registration data to the webhook endpoint.
Webhook Endpoint: /6d836895-26b5-4465-bf86-624af135122e
Webhook ID: 6d836895-26b5-4465-bf86-624af135122e
Method: POST
Expected Payload: JSON object containing user data (userId, email, firstName, lastName, refApp, source)
3. Step-by-Step Process
Step 1: Webhook
What happens here: Receives HTTP POST request with new user signup data from the registration system.
What input it uses: JSON payload containing:
- userId
- firstName
- lastName
- refApp (reference application)
- source (signup source identifier)
What output it produces: Raw webhook data with user information in body.data structure.
Why this step is needed: Provides the entry point for the workflow, allowing external systems to trigger user onboarding processing automatically when new users register.
Step 2: GET: Required content
What happens here: Extracts and structures user data from the webhook payload. Parses nested data structure and extracts domain information from email address.
What input it uses: Webhook payload with nested user data structure.
What output it produces: Structured user data including:
- id (userId)
- firstName
- lastName
- refApp
- domain Name (extracted from email)
- Root Domain (first part of domain)
- Source
Why this step is needed: Transforms the incoming webhook data into a consistent format that can be processed by subsequent workflow steps.
Step 3: Edit Fields3
What happens here: Further formats and standardizes the user data fields, ensuring all required fields are present and properly named.
What input it uses: Structured user data from previous step.
What output it produces: Cleaned and standardized user data with consistent field names.
Why this step is needed: Ensures data consistency and prepares it for URL construction and domain validation steps.
Step 4: Adding URL
What happens here: Constructs the website URL from the user's email domain by prepending "https://" to the domain name.
What input it uses: Domain name extracted from user's email address.
What output it produces: Complete URL (e.g., https://example.com) along with all user data fields.
Why this step is needed: Creates the website URL that will be scraped to understand the user's business and provide context for personalized communications.
Step 5: Blocking few Domains
What happens here: Checks if the user's email domain is in a blocked list of common email providers and internal domains. Flags domains that should not receive full processing.
What input it uses: Domain name from user's email.
What output it produces: User data with is_blocked flag set to "Yes" or "No" based on domain validation.
Why this step is needed: Filters out signups from personal email providers (Gmail, Yahoo, etc.) and internal domains (fleetstudio.com, wallyax.com) that don't represent actual business customers.
Blocked Domains List:
- gmail.com, yahoo.com, hotmail.com, outlook.com, live.com, icloud.com, aol.com, protonmail.com, mail.com, msn.com
- goodsong.com.au, fleetstudio.com, wallyax.com
Step 6: Check Domain Not Blocked
What happens here: Conditional branching based on whether the domain is blocked. Validates if the domain should receive full processing.
What input it uses: is_blocked flag from previous step.
What output it produces:
- True path: Continues to website scraping if domain is not blocked
- False path: Routes to basic Slack notification for blocked domains
Why this step is needed: Ensures only legitimate business domains receive full processing (website scraping, AI summarization), while blocked domains receive minimal processing.
Step 7: Truncating the Items
What happens here: Limits processing to the first item (user) to prevent duplicate processing and ensure efficient execution.
What input it uses: User data items from the workflow.
What output it produces: Single user item (first item only).
Why this step is needed: Prevents processing multiple items simultaneously and ensures one user is processed per webhook trigger.
Step 8: ScrapingBee for scraping the Domain
What happens here: Uses ScrapingBee API to scrape the user's website homepage to extract content for business analysis.
What input it uses:
- Website URL constructed from user's domain
- ScrapingBee API key
What output it produces: Raw HTML content from the user's website.
Why this step is needed: Retrieves website content that will be analyzed by AI to understand the user's business, enabling personalized communications and better customer understanding.
API Endpoint: https://app.scrapingbee.com/api/v1
Method: GET
Authentication: API Key in URL parameter
Step 9: Scraping the content from HTML
What happens here: Extracts relevant text content from the scraped HTML using CSS selectors. Targets headings and paragraphs to get meaningful content.
What input it uses: HTML content from ScrapingBee.
What output it produces: Array of extracted text content including headings (h1-h6) and paragraphs.
Why this step is needed: Isolates readable text content from HTML markup, making it suitable for AI analysis and summarization.
CSS Selectors Used:
- Headings:
h1, h2, h3, h4, h5, h6 - Paragraphs:
p
Step 10: Merge2
What happens here: Merges the scraped website content with the user contact information, combining both data streams into a single item.
What input it uses:
- User contact data (from Truncating the Items)
- Scraped HTML content (from Scraping the content from HTML)
What output it produces: Combined data object with both user information and website content.
Why this step is needed: Consolidates user data and website content so they can be processed together in subsequent steps.
Step 11: Merge Body and Contact Data
What happens here: Further merges and structures the combined data, ensuring website body content and contact information are properly associated.
What input it uses: Merged data from previous step.
What output it produces: Structured data with both contact information and website body content ready for processing.
Why this step is needed: Prepares data for parallel processing paths - one for AI summarization and one for direct notification.
Step 12: Combine Website Body Text
What happens here: Joins all extracted website text lines into a single continuous text string for AI processing.
What input it uses: Array of text lines from website scraping.
What output it produces: Single combined text string containing all website content.
Why this step is needed: Formats website content in a way that AI models can easily process for summarization.
Step 13: Message a model
What happens here: Uses OpenAI GPT-4o-mini to analyze and summarize the website content. Generates a concise summary describing what the company does, what they offer, and why they might have signed up.
What input it uses: Combined website text content.
What output it produces: AI-generated summary of the website/company in plain English.
Why this step is needed: Provides context about the user's business that can be used for personalized communications and helps the team understand new signups better.
AI Model: GPT-4o-mini (OpenAI)
Purpose: Generate internal summary of user's business for team reference
Credentials: OpenAI API (stored in n8n credentials)
Step 14: Merge3
What happens here: Merges the AI-generated summary with the user contact data, combining all information into a single comprehensive object.
What input it uses:
- User contact data (from Merge Body and Contact Data)
- AI summary (from Message a model)
What output it produces: Complete user profile with contact info, website URL, and business summary.
Why this step is needed: Consolidates all collected information (user data, website content, AI summary) for final notification.
Step 15: Merge Website + Summary Data
What happens here: Final merge operation that combines website information with the AI summary, ensuring all data fields are properly structured.
What input it uses: Data from multiple merge operations.
What output it produces: Final consolidated data object with all user and business information.
Why this step is needed: Ensures data integrity and proper structure before sending notifications.
Step 16: Send a message1
What happens here: Sends a detailed Slack notification to the #user-info channel with complete user signup information including name, email, source, URL, and AI-generated business summary.
What input it uses: Complete user profile with summary.
What output it produces: Slack message delivery confirmation.
Why this step is needed: Notifies the team immediately when new users sign up, providing context about the user's business to help with follow-up and support.
Slack Channel: #user-info
Message Includes:
- User name
- Email address
- Signup source
- Source URL
- AI-generated business summary
Credentials: Wally Slack API (stored in n8n credentials)
Alternative Path: Filter Blocked Domains for Notification (Blocked Domains)
What happens here: Filters out blocked domains and prepares minimal notification data for Slack.
What input it uses: User data with blocked domain flag.
What output it produces: Filtered user data (only non-blocked domains proceed).
Why this step is needed: Prevents processing of personal email domains and internal test accounts.
Alternative Path: Send a message2 (Blocked Domains)
What happens here: Sends a basic Slack notification for blocked domain signups (personal email providers, internal domains) without full processing.
What input it uses: User data from blocked domain path.
What output it produces: Slack notification with basic user information.
Why this step is needed: Still notifies the team of signups from blocked domains, but without the overhead of website scraping and AI analysis.
Slack Channel: #user-info
Message Includes:
- User name
- Email address
- Source
4. Workflow Logic Summary
The workflow executes the following sequence from start to finish:
- Receives webhook with new user signup data
- Extracts user information from webhook payload (email, name, source, etc.)
- Constructs website URL from user's email domain
- Validates domain against blocked list (personal email providers, internal domains)
- Conditional processing:
- If domain not blocked:
- Limits to first user item
- Scrapes user's website using ScrapingBee
- Extracts HTML content (headings, paragraphs)
- Merges website content with user data
- Combines website text for AI processing
- Generates AI summary of user's business using OpenAI
- Merges summary with user data
- Sends detailed Slack notification with business summary
- If domain blocked:
- Filters blocked domains
- Sends basic Slack notification without website analysis
- If domain not blocked:
This automated process ensures new user signups are immediately processed, analyzed, and notified via Slack while filtering out non-business signups.
5. Diagram / Screenshot

The workflow diagram shows the complete automation flow from webhook trigger through user data extraction, domain validation, website scraping, AI summarization, and Slack notifications.
6. Dependencies
This workflow depends on several external APIs, AI services, and third-party platforms to function properly.
External APIs
ScrapingBee API
- Endpoint:
https://app.scrapingbee.com/api/v1 - Method: GET
- Purpose: Web scraping service that extracts website content from user domains
- Requires Auth: Yes (API Key in URL parameter)
- API Key: Stored in n8n credentials
- Usage: Scrapes user's website homepage to extract content for business analysis
- Configuration: Standard HTML scraping
OpenAI API
- Endpoint: OpenAI API (via n8n LangChain node)
- Model: GPT-4o-mini
- Purpose: AI-powered summarization of website content to understand user's business
- Requires Auth: Yes (API Key)
- API Key: Stored in n8n credentials
- Usage: Analyzes scraped website content and generates concise business summaries
- Configuration: Custom prompt for internal team reference summaries
Third-Party Services
Slack API
- Purpose: Team notifications for new user signups
- Usage: Sends notifications to #user-info channel with user details and business summaries
- Configuration: Slack webhook integration
- Channel: #user-info
- Credentials: Wally Slack API (stored in n8n credentials)
- Notifications:
- Detailed notifications with AI summary (for non-blocked domains)
- Basic notifications (for blocked domains)
7. Source Links
n8n Instance
Workflow URL: https://agent.fsgarage.in/workflow/ymfWAsTqPVFYqiap
Workflow Name: Wally signup users Info
Workflow ID: ymfWAsTqPVFYqiap
Email: technology@fleetstudio.com
Password:
n8n Instance URL: https://agent.fsgarage.in
Related Workflows
- Workflows Index - View all workflows
- Workflows Directory - Workflow documentation guidelines