Look up before writing
The member is fetched first and the router decides what happens next. The update and the log sit behind the member-found filter, so a mistyped email cannot create or alter a record.
AI and automation / 2026
A membership renewal is several linked updates: find the member, set the plan, mark them active, work out the new expiry date and keep a record that it happened. Done by hand, one of them gets missed.
The assignment was to update a member's Airtable record once a subscription is renewed. The scenario takes an email, a plan and an amount by webhook, looks the member up through the Airtable API, and branches. A found member is updated and a row is added to a separate renewals table. An unknown email gets a 404 response that says why, and nothing is changed. The new expiry date is computed inside the update from the plan.

Walkthrough
Built from the assignment recording: the scenario, the expiry rule, a renewal request and its response, the run log, and an unknown member that is rejected without changing anything.
My part
Decisions
The member is fetched first and the router decides what happens next. The update and the log sit behind the member-found filter, so a mistyped email cannot create or alter a record.
The caller sends a plan, not a date. The update computes the expiry as today plus 365 days for annual, 90 for quarterly and 30 otherwise, so two callers cannot disagree about what a plan means.
The member row holds only the current state. Each renewal also adds a row to a separate table, so earlier renewals are not lost when the member is updated again.
The not-found path returns a 404 status, an error code and a plain message. A caller can branch on the code without parsing the text.
Screens
SYSTEM ARCHITECTURE
A webhook accepts a JSON body with the member's email, the plan and the amount.
An Airtable API call searches the Members table by email, ignoring letter case, and returns at most one record.
A router sends the request down a member-found or member-not-found route.
Found: a PATCH sets status to Active and writes the plan, start date, expiry date and last-renewed date.
A POST then adds a row to the Renewals table with the plan, amount and date.
Built with
Work with me
I build workflows like this one as a fixed-price service: one defined, tested n8n or Make.com workflow, with packages from $149.
More work
Gazelle's KitchenA WhatsApp business gatekeeper that qualifies genuine orders, enforces business and safety rules, contains off-topic or abusive conversations, and only surfaces the small set of cases that genuinely need the owner.PilotSellavie AIAn independent project: multi-tenant conversational-commerce software that connects social messaging with business knowledge, guarded AI, human handoff, orders, billing, analytics and operations.MaintainedAI Automation Control PlaneA runnable multi-tenant control plane for AI-assisted business workflows, combining FastAPI, Next.js, PostgreSQL, Redis, n8n, provider routing, human approval, idempotency, replay, cancellation, audit traces, and deterministic local demonstrations.Maintained