Skip to content
Back to homeHakim

— Case study

A WhatsApp bot that talks to Airtable

A real Upwork engagement — a Laravel backend wired to WhatsApp for intake, syncing every conversation straight into Airtable in real time.

Client
Upwork client (private)
Role
Full-stack, solo
Stack
Laravel · WhatsApp API · Airtable
Timeline
Jan – Feb 2025

How a message becomes a row

  1. WhatsApp messageCustomer texts in
  2. Laravel webhookParses & validates
  3. Airtable syncRow created instantly
  4. Marked syncedConversation logged

The webhook, roughly

  • WhatsApp webhook handled by a Laravel backend
  • Every message synced to Airtable in real time
  • Shipped and closed inside 6 weeks
app/Http/Controllers/WhatsAppWebhookController.php
Route::post('webhooks/whatsapp', [WhatsAppController::class, 'handle']);

$message = WhatsAppMessage::fromPayload($request->all());

Airtable::table('Conversations')->create([
    'phone' => $message->from,
]);

// every inbound message lands in Airtable within seconds
Conversation::find($message->id)->markSynced();

Got something similar to automate?

Hire me on Upwork