Skip to content

Journal / Integrations

How to connect a platform that has no API

Most integration projects hit one system that simply has no API. That is rarely the end of the road, but the workaround you choose decides whether it runs for years or breaks quietly next month.

Published
Read
3 min
By
Taiwo

Almost every integration project has one awkward system in it. The CRM and the calendar have clean APIs, the payment provider has webhooks, and then there is the industry booking platform, the lead marketplace or the legacy portal that offers nothing at all. No API, no webhooks, no export you can schedule.

Teams usually respond in one of two ways: give up and keep copying data by hand, or reach for browser automation and hope. There is a more careful middle path, and it starts with a question most people skip.

First, look for the doors the platform already opened

Platforms without a public API still need to get data in and out, because their own customers ask for it. Before building anything clever, we check the ordinary features:

  • Public forms the platform provides for your website, such as enquiry or request forms
  • Email notifications that contain structured data you can parse
  • Scheduled exports to email, FTP or cloud storage
  • Official integrations with Zapier, Make.com or similar
  • Calendar feeds (iCal) for bookings and availability

On a recent project the booking platform had no API for creating leads, but it did offer a public request form for websites. Posting to that form, exactly as a website visitor would, created the lead with no login, no session and nothing to expire. That is far more durable than scripting a login screen.

Prefer anything without a login

Integrations that depend on a stored session cookie or a scripted login are fragile by design. Sessions expire, passwords rotate, and a new bot check on the sign-in page can stop everything overnight. If the only route is through a login, we treat it as temporary and plan for official access, not as the foundation of the system.

■ Two ways into a platform with no API

□ By hand

  • ·Store a staff login and replay the session
  • ·Breaks when a password, 2FA prompt or session changes
  • ·Failures can go unnoticed

■ Automated

  • →Submit the platform's own public request form
  • →Nothing to expire: no stored login
  • →Success and failure responses mapped explicitly
The second approach is the one used in our event-enquiry build: the booking platform's own public form, so there is no session to expire.

Map what success and failure actually look like

Undocumented endpoints often report results in surprising ways. In the project above, a successful submission returned a redirect, while a failed one returned a normal page. An automation that simply follows redirects would have treated both as success and silently lost leads.

■ The real workflow

WebhookMail hookToolsTest modeToolsTest emailToolsTest phoneToolsSettingsGoogle SheetsRead approval modeFlow controlCollectToolsModeAIAI: askRouterHTTPGet Lead DetailsAIAI: askAIAI: askToolsWaitGoogle SheetsAdd rowHTTPSubmit PlannerRequestJSONParse JSONToolsSet variablesMailchimpAdd or updatesubscriberGoogle SheetsChat historyToolsCombine textToolsFAQsAIAI: askJSONParse JSONAIAI: askApproval gateGoogle SheetsStart theirconversation logGoogle SheetsPark for ownerapprovalTwilioText the ownerRouterGmailSend emailGoogle SheetsAdd rowTwilioSend SMSGoogle SheetsAdd rowToolsWait 5 minutesGoogle SheetsDid they reply?GmailNo reply after 5min: emailGoogle SheetsLog the fallbackemailGmailHandoff: alert theownerGoogle SheetsSearch rowsAIGet the lead'sactual messageGoogle SheetsChat historyToolsCombine textToolsFAQsAIAI: askJSONParse JSONAIAI: askToolsWaitGoogle DriveSearch for filesfoldersGoogle DriveGet a fileFlow controlAggregateApproval gateGoogle SheetsPark for ownerapprovalTwilioText the ownerRouterGoogle SheetsSearch rowsGmailReply to emailGoogle SheetsUpdate rowGoogle SheetsSearch rowsGmailReply to emailGoogle SheetsUpdate rowGoogle SheetsSearch rowsGmailReply to emailGoogle SheetsUpdate rowGoogle SheetsUpdate rowGmailHandoff: alert theownerGoogle SheetsFind the lead'smessage rowGoogle DriveVenue guide: findGoogle DriveVenue guide:downloadFlow controlVenue guide:collectGmailVenue guide: sendGoogle SheetsLog messageHTTPGet Lead DetailsAIAI: askHTTPSubmit PlannerRequestAIAI: askJSONParse JSONMailchimpAdd or updatesubscriberNew marketplace lead or replyNew leadWait for approvalSend nowEmail: no mobileText firstNo reply: emailHandoffExisting leadLead found, agent onExact pricing PDFWait for approvalSend nowWedding pricingParty pricingContinue: no pricingAgent enabledHandoff or no PDFVenue guideWedding or event listReferral lead
Make.com78 steps10 AI
ANONYMIZED CLIENT PROJECT

Answers new, returning and referral enquiries with AI-drafted replies. An approval mode in a sheet decides whether a reply goes straight out by text or email, or is parked while the owner approves it by SMS.

Rendered from the production workflow export. Labels anonymized; no data, credentials or settings included.

Read all 78 steps
  1. Webhook · Mail hook
  2. Tools · Test mode
  3. Tools · Test email
  4. Tools · Test phone
  5. Tools · Settings
  6. Google Sheets · Read approval mode
  7. Flow control · Collect
  8. Tools · Mode
  9. AI · AI: ask
  10. Flow control · Router
  11. HTTP · Get Lead Details
  12. Google Sheets · Search rows
  13. HTTP · Get Lead Details
  14. AI · AI: ask
  15. AI · Get the lead's actual message
  16. AI · AI: ask
  17. AI · AI: ask
  18. Google Sheets · Chat history
  19. HTTP · Submit Planner Request
  20. Tools · Wait
  21. Tools · Combine text
  22. AI · AI: ask
  23. Google Sheets · Add row
  24. Tools · FAQs
  25. JSON · Parse JSON
  26. HTTP · Submit Planner Request
  27. AI · AI: ask
  28. Mailchimp · Add or update subscriber
  29. JSON · Parse JSON
  30. JSON · Parse JSON
  31. Tools · Set variables
  32. AI · AI: ask
  33. Mailchimp · Add or update subscriber
  34. Tools · Wait
  35. Google Sheets · Chat history
  36. Google Drive · Search for files folders
  37. Tools · Combine text
  38. Google Drive · Get a file
  39. Tools · FAQs
  40. Flow control · Aggregate
  41. AI · AI: ask
  42. Flow control · Approval gate
  43. JSON · Parse JSON
  44. Google Sheets · Park for owner approval
  45. Flow control · Router
  46. AI · AI: ask
  47. Twilio · Text the owner
  48. Google Sheets · Search rows
  49. Google Sheets · Search rows
  50. Google Sheets · Search rows
  51. Google Sheets · Update row
  52. Gmail · Handoff: alert the owner
  53. Google Sheets · Find the lead's message row
  54. Flow control · Approval gate
  55. Gmail · Reply to email
  56. Gmail · Reply to email
  57. Gmail · Reply to email
  58. Google Drive · Venue guide: find
  59. Google Sheets · Start their conversation log
  60. Flow control · Router
  61. Google Sheets · Update row
  62. Google Sheets · Update row
  63. Google Sheets · Update row
  64. Google Drive · Venue guide: download
  65. Google Sheets · Park for owner approval
  66. Gmail · Send email
  67. Twilio · Send SMS
  68. Gmail · Handoff: alert the owner
  69. Flow control · Venue guide: collect
  70. Twilio · Text the owner
  71. Google Sheets · Add row
  72. Google Sheets · Add row
  73. Gmail · Venue guide: send
  74. Tools · Wait 5 minutes
  75. Google Sheets · Log message
  76. Google Sheets · Did they reply?
  77. Gmail · No reply after 5 min: email
  78. Google Sheets · Log the fallback email
  • Webhook
  • Google Sheets
  • AI
  • HTTP
  • Mailchimp
  • Twilio
  • Gmail
  • Google Drive

So we record real responses for both outcomes and make the automation check for the specific success signal. Anything else is treated as a failure and raises an alert.

Write down the settings that can break it

Workarounds often depend on configuration inside the other platform: an IP allowlist, a spam check that must stay off, a form that must not be edited. Those settings belong in the handover document, in plain language, with the symptom you would see if someone changed them.

A useful test: if the integration stopped tomorrow, would anyone notice before a customer did? If the answer is no, the monitoring is not finished.

Know when to escalate

Some routes are not worth defending. If the only path involves defeating a bot check, sharing personal credentials or breaking a platform's terms, the right move is to ask the vendor for API access, or to change the process around the tool. A reliable manual step is better than an automated one that fails without warning.

If you have a system like this in your stack, we can review your integrations and tell you which connections are durable and which are waiting to break.

■ What we build

Your existing tools, physically connected through one data layer.

→ / Next step

Have a system like this to build?