<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Softomate solutions</title>
    <description>The latest articles on DEV Community by Softomate solutions (@softomate_solutions_b17f2).</description>
    <link>https://dev.to/softomate_solutions_b17f2</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3973736%2Fa1da7c0d-f7f2-49c8-a953-5ee4d50cd6e9.png</url>
      <title>DEV Community: Softomate solutions</title>
      <link>https://dev.to/softomate_solutions_b17f2</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/softomate_solutions_b17f2"/>
    <language>en</language>
    <item>
      <title>Building a client onboarding automation for a UK professional services firm: n8n workflow walkthrough with HubSpot, DocuSign, and Google Drive</title>
      <dc:creator>Softomate solutions</dc:creator>
      <pubDate>Mon, 08 Jun 2026 13:18:33 +0000</pubDate>
      <link>https://dev.to/softomate_solutions_b17f2/building-a-client-onboarding-automation-for-a-uk-professional-services-firm-n8n-workflow-40b7</link>
      <guid>https://dev.to/softomate_solutions_b17f2/building-a-client-onboarding-automation-for-a-uk-professional-services-firm-n8n-workflow-40b7</guid>
      <description>&lt;p&gt;This is a full technical walkthrough of the client onboarding automation we built for a London financial consultancy. The workflow saves 22 hours per week and runs completely without human input once a deal is won in HubSpot.&lt;/p&gt;

&lt;p&gt;TRIGGER: DEAL MOVED TO WON IN HUBSPOT&lt;/p&gt;

&lt;p&gt;The workflow triggers on the HubSpot Deal Stage Changed webhook. In HubSpot, go to Settings, Integrations, Private Apps, create a new private app with these scopes: crm.objects.deals.read, crm.objects.contacts.read, crm.objects.companies.read. Copy the access token.&lt;/p&gt;

&lt;p&gt;In n8n, add a HubSpot Trigger node. Set it to Deal Stage Changed. Add a Filter node after it: only continue if dealstage equals closedwon.&lt;/p&gt;

&lt;p&gt;DATA COLLECTION STEP&lt;/p&gt;

&lt;p&gt;Add a HubSpot node in Get mode. Get the Deal by ID using the deal ID from the trigger payload. Then get the associated Contact using the associations.contacts.results[0].id from the deal response. Then get the associated Company.&lt;/p&gt;

&lt;p&gt;You now have all the data needed for the rest of the workflow: client name, company name, email, deal value, service type, start date.&lt;/p&gt;

&lt;p&gt;STEP 1: GENERATE THE PROPOSAL PDF&lt;/p&gt;

&lt;p&gt;Add an HTTP Request node. POST to your PDF generation API (we use PDFMonkey but pdf.co and DocRaptor work similarly). In the body, map the fields from the HubSpot data to your template variables. The response includes a download URL for the generated PDF.&lt;/p&gt;

&lt;p&gt;STEP 2: SEND DOCUSIGN ENVELOPE&lt;/p&gt;

&lt;p&gt;Add an HTTP Request node. POST to the DocuSign eSignature API endpoint. In the envelope definition, embed the PDF URL from step 1. Set the signer email and name from the HubSpot contact data. Set the signing tab positions to match your contract signature fields. DocuSign returns an envelopeId in the response. Store this using the Set node for later reference.&lt;/p&gt;

&lt;p&gt;STEP 3: CREATE GOOGLE DRIVE FOLDER STRUCTURE&lt;/p&gt;

&lt;p&gt;Add a Google Drive node. Create a folder named after the company under your Clients parent folder. Then create seven subfolders inside it: Contracts, Proposals, Onboarding, Meeting Notes, Deliverables, Invoices, Correspondence.&lt;/p&gt;

&lt;p&gt;Map the main folder ID from the Google Drive response to a Set node field. You will use this URL in the HubSpot note later.&lt;/p&gt;

&lt;p&gt;STEP 4: SEND CALENDLY INVITATION&lt;/p&gt;

&lt;p&gt;Use Calendly API to create a one-off event type for the onboarding call. POST to the Calendly single-use scheduling link endpoint with the client email pre-filled. Send the scheduling URL to the client via HubSpot Engagement API as a task with a note.&lt;/p&gt;

&lt;p&gt;STEP 5: CREATE XERO INVOICE&lt;/p&gt;

&lt;p&gt;Add an HTTP Request node. POST to the Xero Invoices API. Map deal value to InvoiceAmount. Set DueDate to 30 days from today using n8n date expression. Set ContactID to the Xero contact matching the company (requires a pre-lookup step using the Xero Contacts GET endpoint filtered by company name).&lt;/p&gt;

&lt;p&gt;STEP 6: UPDATE HUBSPOT WITH ALL REFERENCES&lt;/p&gt;

&lt;p&gt;Create a HubSpot note on the deal with: Google Drive folder link, DocuSign envelope ID, Calendly scheduling link, Xero invoice number. Set deal property Onboarding Status to In Progress.&lt;/p&gt;

&lt;p&gt;ERROR HANDLING&lt;/p&gt;

&lt;p&gt;Add an Error Trigger workflow. If any step in the main workflow fails, post a Slack message to a dedicated channel with: company name, step that failed, error message, deal URL. This gives a human a five-minute window to intervene before the client notices anything went wrong.&lt;/p&gt;

&lt;p&gt;Full business process automation service: &lt;a href="https://www.softomatesolutions.com/business-process-automation-london/" rel="noopener noreferrer"&gt;softomatesolutions.com/business-process-automation-london/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>n8n</category>
      <category>automation</category>
      <category>hubspot</category>
      <category>workflow</category>
    </item>
    <item>
      <title>Setting up GoHighLevel for UK agencies: the complete technical guide including GDPR, DNS, and snapshot architecture</title>
      <dc:creator>Softomate solutions</dc:creator>
      <pubDate>Mon, 08 Jun 2026 13:11:22 +0000</pubDate>
      <link>https://dev.to/softomate_solutions_b17f2/setting-up-gohighlevel-for-uk-agencies-the-complete-technical-guide-including-gdpr-dns-and-4d4i</link>
      <guid>https://dev.to/softomate_solutions_b17f2/setting-up-gohighlevel-for-uk-agencies-the-complete-technical-guide-including-gdpr-dns-and-4d4i</guid>
      <description>&lt;p&gt;GoHighLevel is built for the US market. The documentation assumes US email laws, US timezones, and US data processing. UK agencies setting it up for the first time hit the same five blockers every single time. This guide covers all of them plus the snapshot architecture that makes GHL scalable for an agency serving multiple clients.&lt;/p&gt;

&lt;p&gt;BLOCKER 1: EMAIL AUTHENTICATION&lt;/p&gt;

&lt;p&gt;GHL uses Mailgun for email delivery. Without proper DNS authentication, all marketing emails go to spam.&lt;/p&gt;

&lt;p&gt;Go to Settings, then Email Services, then click Add Sending Domain. Enter your domain. GHL shows you three DNS records to add: one SPF TXT record, one DKIM TXT record, one DKIM CNAME record. Add all three to your domain DNS provider. Verify in GHL. This takes 15 minutes and DNS propagation can take up to 24 hours.&lt;/p&gt;

&lt;p&gt;Also set a dedicated sending subdomain like mail.yourdomain.com rather than sending from your root domain. This protects your root domain sender reputation if any campaign generates spam complaints.&lt;/p&gt;

&lt;p&gt;BLOCKER 2: GDPR CONSENT ON FORMS&lt;/p&gt;

&lt;p&gt;Default GHL forms have no consent checkboxes. UK ICO regulations require explicit opt-in consent before sending marketing emails. The implementation:&lt;/p&gt;

&lt;p&gt;Add a checkbox field to every form with this label: I agree to receive marketing communications from [Company Name]. I can unsubscribe at any time.&lt;/p&gt;

&lt;p&gt;In the field settings, mark it as required. Create a custom field called Marketing Consent with type Yes or No. Map the checkbox to this field. Create a workflow trigger: When Marketing Consent equals Yes, add tag Marketing Approved. Use the Marketing Approved tag as a required filter on every email campaign broadcast.&lt;/p&gt;

&lt;p&gt;This gives you a defensible audit trail if the ICO ever asks.&lt;/p&gt;

&lt;p&gt;BLOCKER 3: TIMEZONE CONFIGURATION&lt;/p&gt;

&lt;p&gt;Fix timezone in two places. First: Settings, Business Info, set timezone to Europe/London. Second: open each calendar in Calendars, Settings. Check the timezone field on each calendar separately. GHL sometimes retains a separate timezone on individual calendars that overrides the account setting.&lt;/p&gt;

&lt;p&gt;BLOCKER 4: DEMO DATA CLEANUP&lt;/p&gt;

&lt;p&gt;Before building any workflows, go to Contacts and delete all sample contacts. Then go to Conversations and clear sample conversations. Run a test workflow with a real test contact to verify the sample data is fully removed before any live campaign runs.&lt;/p&gt;

&lt;p&gt;BLOCKER 5: SNAPSHOT ARCHITECTURE&lt;/p&gt;

&lt;p&gt;If you are an agency managing multiple client sub-accounts, build everything in a dedicated master template sub-account first. Never build workflows, pipelines, funnels, or email sequences directly in client sub-accounts before the template is finalised.&lt;/p&gt;

&lt;p&gt;To create a snapshot: Settings, Snapshots, Create Snapshot, select everything you want to copy. To apply to a new client: when creating the sub-account, select the snapshot. The entire setup copies automatically.&lt;/p&gt;

&lt;p&gt;Snapshots do not copy contacts, campaigns already sent, or sub-account-specific integrations like Stripe or payment connections. These need to be configured per client.&lt;/p&gt;

&lt;p&gt;Full UK agency guide: &lt;a href="https://www.softomatesolutions.com/blog/best-gohighlevel-agencies-london-2026/" rel="noopener noreferrer"&gt;softomatesolutions.com/blog/best-gohighlevel-agencies-london-2026/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>gohighlevel</category>
      <category>crm</category>
      <category>automation</category>
      <category>webdev</category>
    </item>
    <item>
      <title>n8n vs Make.com vs Zapier in 2026: what we learned migrating eight UK businesses, with real cost data</title>
      <dc:creator>Softomate solutions</dc:creator>
      <pubDate>Mon, 08 Jun 2026 13:00:14 +0000</pubDate>
      <link>https://dev.to/softomate_solutions_b17f2/n8n-vs-makecom-vs-zapier-in-2026-what-we-learned-migrating-eight-uk-businesses-with-real-cost-1g1h</link>
      <guid>https://dev.to/softomate_solutions_b17f2/n8n-vs-makecom-vs-zapier-in-2026-what-we-learned-migrating-eight-uk-businesses-with-real-cost-1g1h</guid>
      <description>&lt;p&gt;This is not a generic comparison. Every number here comes from actual migrations we completed between January and May 2026. Eight businesses. Three platforms. Real outcomes.&lt;/p&gt;

&lt;p&gt;WHY BUSINESSES LEFT ZAPIER&lt;/p&gt;

&lt;p&gt;Multi-step automations at real volume cost 149 to 382 pounds per month on Zapier. A typical UK SME running CRM sync, email triggers, Slack notifications, and form processing consumes 10,000 to 20,000 tasks per month. At that volume the Zapier bill is hard to justify when alternatives exist.&lt;/p&gt;

&lt;p&gt;MIGRATIONS 1 TO 3: N8N SELF-HOSTED&lt;/p&gt;

&lt;p&gt;All three had technical people on the team. Previous Zapier cost: average 298 pounds per month. New n8n cost: 8 pounds per month for Hetzner CX22 VPS. Licence is free when self-hosted.&lt;/p&gt;

&lt;p&gt;Migration took three to four weeks per business. Longer than expected. Main issues:&lt;/p&gt;

&lt;p&gt;Zapier delay nodes do not map directly to n8n Wait nodes. Timing on follow-up email sequences needed manual recalibration.&lt;/p&gt;

&lt;p&gt;Zapier Formatter tool has no n8n equivalent. Replicate it with the Code node and simple JavaScript.&lt;/p&gt;

&lt;p&gt;n8n does not alert on workflow failure by default. Build an Error Trigger workflow that posts to a Slack channel. Without this you discover failures days after they happen.&lt;/p&gt;

&lt;p&gt;Budget two to three times your initial migration estimate. All three businesses are still on n8n six months later.&lt;/p&gt;

&lt;p&gt;MIGRATIONS 4 TO 7: MAKE.COM&lt;/p&gt;

&lt;p&gt;Four businesses. All non-technical teams. Decided by: visual interface similar to Zapier, pricing, EU data hosting.&lt;/p&gt;

&lt;p&gt;Make operations model is more efficient than Zapier tasks. A branching workflow that needed three Zaps becomes one scenario. Pricing at 10,000 operations: 16 pounds versus Zapier 149 pounds.&lt;/p&gt;

&lt;p&gt;Migration was one to two weeks per business. The issue is operation counting. A scenario with many modules can consume eight or more operations per run. New users underestimate monthly usage by a factor of three. Start with a higher plan and scale down after you see actual usage.&lt;/p&gt;

&lt;p&gt;Make EU data hosting means personal data processing stays in Europe. For UK SMEs running customer data through automation workflows this resolves the GDPR question. Zapier processes on US servers and does not offer EU hosting.&lt;/p&gt;

&lt;p&gt;MIGRATION 8: STAYED ON ZAPIER&lt;/p&gt;

&lt;p&gt;Four two-step zaps. Non-technical team. Genuine resistance to change. Staying on Zapier was the right call.&lt;/p&gt;

&lt;p&gt;COST COMPARISON AT UK SME VOLUMES&lt;/p&gt;

&lt;p&gt;10,000 tasks per month: Zapier Professional 149 pounds. Make.com Core 16 pounds. n8n Cloud 50 pounds. n8n self-hosted 8 pounds.&lt;/p&gt;

&lt;p&gt;50,000 tasks per month: Zapier 382 pounds. Make.com Teams 29 pounds. n8n Cloud still 50 pounds (no task limit on cloud). n8n self-hosted still 8 pounds.&lt;/p&gt;

&lt;p&gt;Full UK comparison: &lt;a href="https://www.softomatesolutions.com/blog/zapier-alternatives-2026/" rel="noopener noreferrer"&gt;softomatesolutions.com/blog/zapier-alternatives-2026/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>n8n</category>
      <category>automation</category>
      <category>zapier</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How we built a WhatsApp AI chatbot for a London estate agency using n8n and OpenAI in 48 hours</title>
      <dc:creator>Softomate solutions</dc:creator>
      <pubDate>Mon, 08 Jun 2026 10:21:29 +0000</pubDate>
      <link>https://dev.to/softomate_solutions_b17f2/how-we-built-a-whatsapp-ai-chatbot-for-a-london-estate-agency-using-n8n-and-openai-in-48-hours-3h68</link>
      <guid>https://dev.to/softomate_solutions_b17f2/how-we-built-a-whatsapp-ai-chatbot-for-a-london-estate-agency-using-n8n-and-openai-in-48-hours-3h68</guid>
      <description>&lt;p&gt;A London estate agency with three branches was receiving more than 80 WhatsApp messages every day. Two staff members were handling all of them manually. Average response time was four to six hours. Enquiries were going cold.&lt;/p&gt;

&lt;p&gt;They needed a system that responded immediately, handled common questions without human involvement, booked viewings into the calendar, and passed anything complex to a human agent. We built it in 48 hours of actual build time spread across one week.&lt;/p&gt;

&lt;p&gt;THE STACK&lt;/p&gt;

&lt;p&gt;WhatsApp Business API via 360dialog. We chose 360dialog over direct Meta API because it offers EU-hosted data processing (UK GDPR compliance) and has more reliable webhook delivery.&lt;/p&gt;

&lt;p&gt;n8n self-hosted on a Hetzner CX22 VPS at 8 pounds per month. All orchestration lives here: receiving webhooks, retrieving conversation history, routing, and sending replies.&lt;/p&gt;

&lt;p&gt;GPT-4o-mini for standard queries. GPT-4o for qualification and pricing conversations. We route based on message complexity detected by a classification step.&lt;/p&gt;

&lt;p&gt;Airtable for property listings database, synced every four hours via Airtable API.&lt;/p&gt;

&lt;p&gt;Google Calendar API for real-time viewing slot availability.&lt;/p&gt;

&lt;p&gt;HubSpot API to log every conversation as a contact note.&lt;/p&gt;

&lt;p&gt;THE N8N WORKFLOW&lt;/p&gt;

&lt;p&gt;Incoming message arrives at the 360dialog webhook and triggers the workflow. Message text is at body.entry[0].changes[0].value.messages[0].text.body.&lt;/p&gt;

&lt;p&gt;Conversation history stores in Redis using phone number as the key. Each trigger retrieves the last six exchanges and formats them as a messages array for OpenAI. Six turns is enough context for a property enquiry conversation.&lt;/p&gt;

&lt;p&gt;Classification step runs first using GPT-4o-mini with this prompt: Classify this WhatsApp message as one of: PROPERTY ENQUIRY, BOOKING REQUEST, PRICING QUESTION, COMPLAINT, GENERAL. Output only the category label. That label routes the workflow to one of five branches.&lt;/p&gt;

&lt;p&gt;BOOKING REQUEST branch: extract date and time preference from message, check Google Calendar, book if available, send confirmation via 360dialog. Full sequence under 90 seconds.&lt;/p&gt;

&lt;p&gt;PROPERTY ENQUIRY branch: query Airtable for matching properties based on area or reference number mentioned, format results as readable message, send reply.&lt;/p&gt;

&lt;p&gt;GENERAL branch: send full message with conversation history and system prompt to GPT-4o, return response.&lt;/p&gt;

&lt;p&gt;THE SYSTEM PROMPT&lt;/p&gt;

&lt;p&gt;You are a professional letting agent assistant for [Agency Name]. Help prospective tenants with property enquiries, viewing requests, and tenancy questions. Help landlords with management queries. Respond in professional UK English only. Never invent property details. If you do not have specific information, say you will check with the team and someone will be in touch within two hours. If the caller mentions a complaint, a legal matter, or asks to speak to a person, respond with this message exactly and trigger the escalation workflow: I am transferring you to a member of our team right now. They will be with you shortly.&lt;/p&gt;

&lt;p&gt;The escalation instruction is the most important line in the prompt. Without it the AI attempts to handle complaints and legal queries, which creates liability.&lt;/p&gt;

&lt;p&gt;RESULTS AFTER MONTH ONE&lt;/p&gt;

&lt;p&gt;Response time: four to six hours down to under 90 seconds, 24 hours a day. Sixty-eight percent of enquiries resolved without human involvement. Twenty percent converted to booked viewings directly through WhatsApp. Running cost: 51 pounds per month (VPS hosting plus 360dialog plus OpenAI tokens combined).&lt;/p&gt;

&lt;p&gt;WHAT WE WOULD CHANGE&lt;/p&gt;

&lt;p&gt;Use GPT-4o for all qualification branches, not GPT-4o-mini. The mini model occasionally misreads ambiguous phrasing around rent negotiation. The cost difference per month is small. The risk of losing a tenancy from a misread message is not.&lt;/p&gt;

&lt;p&gt;Full service details: &lt;a href="https://www.softomatesolutions.com/ai-chatbot-development-service-london/" rel="noopener noreferrer"&gt;softomatesolutions.com/ai-chatbot-development-service-london/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>n8n</category>
      <category>chatbot</category>
      <category>ai</category>
      <category>automation</category>
    </item>
  </channel>
</rss>
