Retire Craigslist listings when an Airtable row closes
When a row in your Airtable inventory flips to sold, leased, or filled, take the Craigslist post down and recap the run in Slack.
Build me an agent workflow that retires Craigslist postings when the matching row in my Airtable inventory table moves into a closed status, and posts a recap to Slack.
Trigger: Airtable poll on new_or_updated_record against my inventory base and table. Let me pick the base, table, and the status field at setup. Also let me list which status values count as closed (for example sold, rented, leased, filled, hired, closed). The workflow should run on every fire but only do real work when the row's status field actually moved into one of those closed values. If the status did not change into a closed value, exit quietly.
On a real close, do this:
1. Read the Airtable row. Grab the Craigslist posting ID from a column I configure at setup (default name: Craigslist Posting ID). Also capture a human label for the row, like the listing title or the row's primary field, to use in the Slack message.
2. If the row has no Craigslist posting ID, skip the Craigslist calls entirely and send a one-line Slack note to the configured channel saying which Airtable row closed and that no Craigslist post was linked. Then stop.
3. Otherwise, call Craigslist Get Posting Status to confirm the post is still live. If it is active, call Craigslist Delete Posting to take it down. If it is already deleted, expired, pending, or removed, skip the delete but keep going so we still send a recap.
4. Call Craigslist Get Single Posting Stats for that posting to pull lifetime impressions, views, contacts, shares, and favorites. Use a date range wide enough to cover the post's full life (post creation date through today). Also compute how many days the posting ran.
5. Send a Slack message via Send a Message to the channel I pick at setup. The message should include: which Airtable row closed (label + link if available), which Craigslist posting was retired (ID and whether it was actively deleted or was already inactive), the lifetime engagement totals (impressions, views, contacts, shares, favorites), and how many days the posting ran.
Setup inputs I want to provide: the Airtable base and table, the status field, the list of status values that count as closed, the Craigslist posting ID column name, and the Slack channel for recaps. Use sensible defaults where you can.
Failure handling: if any Craigslist call errors out, do not silently swallow it. Still post a Slack message to the same channel naming the Airtable row that closed and what failed, so the team can clean up manually.
Integrations and operations to use: Airtable List Records (to read the closed row's full fields), Craigslist Get Posting Status, Craigslist Delete Posting, Craigslist Get Single Posting Stats, Slack Send a Message.
Additional information
What does this prompt do?
- Watches your Airtable inventory table for rows that move into a closed status like sold, leased, rented, or filled.
- Takes the matching Craigslist posting down the moment the row closes so buyers stop calling about something that is gone.
- Sends a Slack recap to your channel of choice with lifetime views, contacts, shares, favorites, and how many days the post ran.
- If the listing is already inactive or the row has no Craigslist post ID, it still drops a one-line note in the same channel so nothing goes silent.
What do I need to use this?
- An Airtable base with an inventory table that has a status column and a column holding the Craigslist posting ID.
- A connected Craigslist account that owns the postings you want to retire.
- A Slack workspace and the channel where you want the recap posted.
How can I customize it?
- Decide which status values count as closed. Car dealers usually pick sold, landlords pick leased or rented, recruiters pick filled or hired.
- Choose which Slack channel gets the recap. A private ops channel works well when listings are sensitive.
- Tweak what the recap message includes, like which engagement totals to show or whether to tag a teammate who owned the listing.
Frequently asked questions
Will this work if my team uses a different word for closed, like rented or filled?
What happens if the Craigslist listing already expired or was taken down manually?
What if the Airtable row has no Craigslist posting ID?
Where do the engagement totals in the Slack recap come from?
Can I point this at more than one Airtable table?
Stop chasing dead Craigslist listings.
Connect Airtable, Craigslist, and Slack once, and Geni takes each post down the moment your inventory closes.