Ayoade Sodiq's Work | ContraWork by Ayoade Sodiq
Ayoade Sodiq

Ayoade Sodiq

I help businesses stop losing leads with AI automation

Profile in progress

Ayoade is building their profile!

Followed by Tolu O, Jeremia M, and LOGO D
The idea After my first build (the initial "Lead Follow-Up Automation," which was really just me learning the ropes), I wanted to prove I could build something that actually solved a real, painful problem for a real type of business not just a toy demo. Personal injury law firms are notorious for this: someone fills out a contact form after a car accident or injury, and if the firm doesn't get back to them within minutes, they just call the next firm on Google. Speed-to-lead is everything in that industry, and most small firms are still doing it manually, an intake person checking a shared inbox a few times a day. So I built Langford & Reyes as a mock client to show exactly how AI automation solves that gap. The build The pipeline was: a prospect fills out a Tally form → Make.com (http://Make.com) picks it up and routes it → Groq (running llama-3.3-70b-versatile) reads the intake details and qualifies the lead. Is this a real case, what's the injury, how urgent → Airtable logs everything as a structured record → Gmail fires off a response, formatted properly, to both the lead and the firm. The whole point was compressing what used to take hours (or a full day) down to under 5 minutes from form submission to a qualified, routed lead sitting in the firm's inbox. The challenges This is where it got real. Tally field mapping getting the form fields to actually map cleanly into Make.com (http://Make.com) without breaking when someone left a field blank or answered in an unexpected way. Airtable 422 errors, classic "your data doesn't match what the API expects" pain, which meant going back and forth debugging exactly what Airtable's schema wanted versus what Make was sending. Invalid JSON from multi-line prompts. Groq would sometimes return malformed JSON when the AI's response included line breaks or multi-paragraph reasoning, which broke the next step in the chain. That's a subtle one a lot of people don't anticipate until it happens to them. Gmail formatting, getting emails to actually look like emails (not a wall of unformatted text) by manually inserting HTML <br> tags since Gmail doesn't auto-convert line breaks in API-sent messages. The lesson None of these are exotic problems they're the unglamorous plumbing issues that separate "I watched a YouTube tutorial and made a demo" from "I built something a real business could actually run on." That's really the value of Langford & Reyes as a case study: it's proof I've hit the annoying edge cases and know how to debug an AI pipeline end-to-end, not just wire together a happy path.
2
1
30
Cover image for Quick snapshot of what's been
Quick snapshot of what's been on my desk this week, building the real estate version of my instant lead response system, in public, bugs included. š— š—®š—½š—½š—²š—± š˜š—µš—² š˜„š—µš—¼š—¹š—² š˜€š˜†š˜€š˜š—²š—ŗ š˜ƒš—¶š˜€š˜‚š—®š—¹š—¹š˜† before writing a single line of automation cheaper to catch a bad idea on a whiteboard than after it's built. š—Ŗš—¶š—æš—²š—± š˜š—µš—² š—³š˜‚š—¹š—¹ š—½š—¶š—½š—²š—¹š—¶š—»š—² form intake, AI qualification, database logging, instant agent alerts. Live and running. š—›š—¶š˜ š—® š—»š—®š˜€š˜š˜† š—Æš˜‚š—“ where any lead who typed more than one line broke the entire system. Root cause had nothing to do with the AI it was a formatting issue in how the request got built. Fixed by letting the platform handle the formatting instead of hand-typing it myself. š—„š—²š˜„š—æš—¼š˜š—² š˜š—µš—² š—”š—œ'š˜€ š—æš—²š—½š—¹š˜† š—¹š—¼š—“š—¶š—° š˜š˜„š—¶š—°š—². First pass sounded like a form letter. Fixed that then discovered the fix overcorrected and started ignoring real details leads had actually given me. Had to teach it the difference between "don't make things up" and "don't use what you were actually told." š—–š—®š˜‚š—“š—µš˜ š—¶š˜ š—µš—®š—¹š—¹š˜‚š—°š—¶š—»š—®š˜š—¶š—»š—“ during testing it told a test lead they were "pre-approved" for a property that was never confirmed. That's not a style bug, that's a trust and liability problem. Now it's hard-locked to only reference facts a lead actually stated. š—–š—¼š—»š—»š—²š—°š˜š—²š—± š—æš—²š—®š—¹ š—²š—ŗš—®š—¶š—¹ š—±š—²š—¹š—¶š˜ƒš—²š—æš˜† so the AI's reply doesn't just get logged it actually reaches the lead, sounding like a person hit send, not a system. Nothing about this week was glamorous. Most of it was staring at error messages and figuring out why a lead typing a normal sentence could break a whole pipeline. But that's the actual job and it's exactly why I'm documenting it instead of just posting the finished result. More on each of these in the coming posts.
0
16