Get them back: 10 AI skills for the list you already own

birthday-offer

the one automation that pays for itself

How the two work together

Claude thinks it through. Paste the Claude prompt into Claude Code, or drop the folder into your skills folder. Claude does the judgement: what to look for, what is worth doing, what is right.

Codex gets it done. At the hand-off point Claude runs Codex on your machine with one command and passes it the Codex prompt. Codex does the mechanical part and hands the result back. Claude checks it before you see it.

No API key to set up: Claude calls the Codex you already have installed. If Codex is not installed, Claude does that half itself and tells you.

Prompt for Claude

---
name: birthday-offer
description: Builds the one email automation that pays for itself - a birthday message to your own customers, with the offer, the timing, the wording and the lawful basis all written down. Use when you hold birth dates in a booking system, a loyalty card or a sign-up form and have never used them.
---

# Turn the birthdays sitting in your booking system into tables you did not have

You give this whatever holds your customers' birth dates: a Collins diary, a booking-system export, the paper loyalty cards in the drawer, the sign-up form on the website. You get back a roster of who to message and on what date, the offer itself with its terms written so it cannot be argued with, the exact send wording, and a one-page note saying why you are lawfully allowed to send each one. It refuses to send to anyone whose date you cannot evidence, and it never guesses a year of birth.

## What it does

1. **Separate the dates you were given from the dates you inferred.** Go through every source and record, for each person, the date, where it came from and the date it was collected. A birth date typed by the customer into your booking form is evidence. A birth date a member of staff guessed from a "30th birthday" note on a reservation is not, and a date you worked out from a driving licence shown at the door is not yours to keep. The ICO's guidance on collecting information for direct marketing is direct about the transparency side: "You must tell people that you want to collect and use their information for direct marketing purposes. You must be clear about what you want to do and your privacy information must be easy for people to understand." If nobody ever told a customer their date would be used for marketing, the date goes in a separate list headed "collected without notice, do not send" and the skill tells you what to put on the form so next year's dates are clean.

2. **Keep the day and the month, and throw the year away.** You need 14 March to send a birthday message. You do not need 1978. Holding a full date of birth on a marketing list gives you an age, an age gives you an inference, and inferences are where this gets expensive: the ICO states that if your processing "intends to make an inference linked to one of the special categories of data", or you "intend to treat someone differently on the basis of inferred information", you are processing special category data whatever your confidence. Age alone is not a special category, but a full DOB on a marketing table invites age-banded offers nobody agreed to. Keep one exception: if the offer involves alcohol you must be able to establish the person is over 18, and you do that at the door with Challenge 25, not from a spreadsheet column.

3. **Write the lawful basis on the roster, per person, before writing a word of copy.** Two routes exist and they look identical to the customer. Route one is specific consent to marketing emails. Route two is the soft opt-in in regulation 22(3) of PECR, which applies where the details were obtained "in the course of the sale or negotiations for the sale of a product or service to that recipient", the marketing is for "similar products and services", and the person was given "a simple means of refusing" at collection and in every message since. A diner who booked a table, gave their date on the booking form and was offered an opt-out qualifies. A person who entered a prize draw at a wedding fair did not buy anything from you and does not. Put the route in a column. Any row you cannot label goes to the do-not-send list.

4. **Decide the offer in pounds before you decide the wording.** Take your actual gross profit on the item you are giving. A free dessert at £2.10 food cost, given to a table of four spending £96, is the cheapest booking you will ever buy. A free bottle of house wine at £6.40 cost, given to a table of two, is not the same thing at all. Set a minimum condition that matches the maths, state it plainly, and never dress a conditional offer as an unconditional one. CAP rule 3.23 prohibits describing a product as "free", "gratis", "without charge" or similar if the consumer has to pay anything other than the unavoidable cost of responding and collecting. A complimentary dessert that requires two main courses is not a free dessert. Call it what it is: "a dessert on us when two of you eat with us".

5. **Fix the redemption window and put the closing date in the email.** Give a window wide enough to be usable and narrow enough to plan around: the seven days either side of the birthday is the usual shape, because most people eat out on a weekend near the date rather than on it. State the exact closing date in the message. CAP rule 8.17.4.a requires "a prominent closing date, if applicable, for purchases and submissions of entries or claims", and rule 8.17.4.e says closing dates "must not be changed unless unavoidable circumstances beyond the control of the promoter make it necessary". If you are not certain you can honour it in the second week of December, do not offer it in December.

6. **Write the significant conditions once, in the email, not on a page nobody opens.** The conditions that decide whether a customer bothers coming belong in the message itself. Minimum spend. Whether it is one per person or one per table. Days excluded. Whether it can be combined with a set menu. Whether booking is required. CAP rule 8.17 requires that all marketing communications referring to promotions "communicate all applicable significant conditions or information where the omission of such conditions or information is likely to mislead", and regulation 7 of the Electronic Commerce (EC Directive) Regulations 2002 requires a commercial communication to "clearly identify as such any promotional offer (including any discount, premium or gift) and ensure that any conditions which must be met to qualify for it are easily accessible, and presented clearly and unambiguously".

7. **Guard the alcohol and the under-18s at the point the offer is designed, not at the till.** CAP rule 8.4 states that "Alcoholic drinks must not feature in promotions directed at people under 18" and that "Alcohol must not be available on promotion to anyone under 18", and rule 8.5 says promotions "must not be socially undesirable to the audience addressed by encouraging excessive consumption or irresponsible use". A birthday list built from a family restaurant's booking system will contain children. If you do not hold a reliable year of birth, and step 2 says you should not, then the drink cannot be the birthday gift. Make the default gift food or a non-alcoholic item, and let the manager upgrade it at the table for someone who is visibly and verifiably an adult.

8. **Send fourteen days before the date, and once.** Fourteen days is enough for a table to be booked and a party to be organised without the message being forgotten. One message per birthday, per year. Not a teaser, a reminder and a last chance: three messages to celebrate somebody's birthday is three chances for them to unsubscribe, and PECR requires "a simple means of refusing" in every single one of them. Every message carries the unsubscribe, the business's full trading name and a reply-to address a human reads, because regulation 23 of PECR forbids sending marketing email "where the identity of the person on whose behalf the communication has been sent has been disguised or concealed" or "where a valid address to which the recipient of the communication may send a request that such communications cease has not been provided".

9. **Record the redemption against the row, so next year you know what it earned.** Print or display a code per person, one line in the till notes, or simply a manager's tally. Record: sent, opened if you have it, redeemed, and the total spend of the table that redeemed. At the end of twelve months you will have the only number that matters, which is covers gained against gross profit given away. Keep the suppression list for anyone who unsubscribed and screen next year's roster against it before a single send. The ICO is explicit that this is allowed and expected: keeping a suppression list "isn't for direct marketing purposes", it is kept so that you can comply with an objection.

## Then it checks

1. Every row on the send roster carries a lawful basis of either "consent" or "soft opt-in, PECR 22(3)", plus the source document and the date the detail was collected, and no row reads "assumed" or "from the diary".
2. No row on the send roster holds a year of birth, and no segment, offer or wording in the output varies by the customer's age.
3. The offer text states the minimum spend, whether it is one per person or one per table, the exact closing date in DD Month YYYY form, and any excluded days, and the same conditions appear in the email body rather than only behind a link.
4. Nothing described as "free" in the output has any condition attached to it, and every conditional gift is worded as conditional.
5. No alcoholic item appears as the default gift on any roster where a reliable adult age is not evidenced for that person, and every alcohol line carries the over-18 check at the point of service.
6. Every roster row has been screened against the suppression list, and the count of rows dropped by that screen is shown in the output rather than silently removed.

Any check fails: name it, redo that step once. Failed twice: say what is wrong and stop.

## Rules
- Public information only.
- Never invent a fact, a number or a quote.
- Anything sent in someone's name says whose name it is.
- Never guess, infer or buy a birth date. A date you cannot point to a source for is not a date, it is a reason for a complaint to the ICO with your name on it.
- Never let the offer vary by inferred age, gender, dietary preference or postcode. The moment a birthday offer differs by group, you are profiling, and the ICO's position is that profiling which infers anything within a special category requires an Article 9 condition on top of your lawful basis.
- Never send a second or third birthday message to the same person in the same year. Frequency is the single complaint that turns a warm customer into a spam report, and a spam report costs you delivery to everyone else.
- This output is a working document prepared for the owner's solicitor or data protection adviser to check before it is used. It sets out what published guidance says and applies it to your list; it is not legal advice on your obligations under PECR or the UK GDPR.

## Built from
- Information Commissioner's Office, "Electronic mail marketing", https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guide-to-pecr/electronic-and-telephone-marketing/electronic-mail-marketing/, no publication date shown on the page, read 14 September 2026: the two lawful routes in step 3 and the requirement in step 8 that identity is not concealed and a valid contact address is given.
- The Privacy and Electronic Communications (EC Directive) Regulations 2003, regulations 22 and 23, https://www.legislation.gov.uk/uksi/2003/2426/regulation/22 and https://www.legislation.gov.uk/uksi/2003/2426/regulation/23, made 18 September 2003, read 14 September 2026: the verbatim soft opt-in conditions that the roster's lawful-basis column is built from, and the two prohibitions quoted in step 8.
- Committee of Advertising Practice, "03 Misleading advertising" and "08 Promotional marketing", https://www.asa.org.uk/type/non_broadcast/code_section/03.html and https://www.asa.org.uk/type/non_broadcast/code_section/08.html, no publication date shown on the page, read 14 September 2026: rule 3.23 on the word "free" in step 4, rule 8.17 on significant conditions and 8.17.4 on closing dates in steps 5 and 6, and rules 8.4 and 8.5 on alcohol in step 7.
- Information Commissioner's Office, "What is special category data?", https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/lawful-basis/special-category-data/what-is-special-category-data/, latest update shown as 9 April 2024, read 14 September 2026: the inference test quoted in step 2, which is why the year of birth is discarded and why the offer is not allowed to vary by group.
- Information Commissioner's Office, "Collect information and generate leads" and "Respect people's preferences", https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/direct-marketing-guidance/collect-information-and-generate-leads/ and .../respect-peoples-preferences/, no publication date shown on the page, read 14 September 2026: the transparency line quoted in step 1, and the suppression-list position quoted in step 9.
- The Electronic Commerce (EC Directive) Regulations 2002, regulation 7, https://www.legislation.gov.uk/uksi/2002/2013/regulation/7, made 30 July 2002, read 14 September 2026: the requirement in step 6 that a promotional offer is identified as such and its conditions presented clearly and unambiguously.

Prompt for Codex

# Birthday roster builder

## You are given
One or more files holding customer records for a UK hospitality business: a booking-system export, a loyalty-card CSV, a spreadsheet, or a folder of photographed paper forms. Fields vary. Somewhere in them are names, email addresses, birth dates in mixed formats, and a note of where each record came from. You may also be given an unsubscribe or suppression list, and a plain-text description of the offer, its minimum spend and its redemption window.

## Produce
Write these files into `./birthday-offer-output/`:

1. `birthday-roster.csv` with exactly these columns: `customer_ref`, `first_name`, `email`, `birth_day`, `birth_month`, `source_file`, `source_row`, `date_collected`, `lawful_basis`, `send_date`, `window_opens`, `window_closes`, `status`. `birth_day` is 1 to 31 and `birth_month` is 1 to 12. There is no year-of-birth column and you must not add one. `lawful_basis` is exactly one of `consent`, `soft-opt-in-PECR-22(3)` or `unlabelled`. `send_date` is the birthday minus 14 days, in DD/MM. `status` is `send` or `hold`.
2. `do-not-send.csv`, same columns, holding every row whose `lawful_basis` is `unlabelled`, whose email is missing or malformed, whose birth date could not be parsed unambiguously, or which matched the suppression list. Add a final column `reason`.
3. `offer-terms.txt`, a plain-text block of the offer conditions: what is given, the minimum spend, one per person or one per table, excluded days, whether booking is required, and the closing date written as DD Month YYYY.
4. `counts.txt`: rows read per source file, rows on the roster, rows held, and a count per hold reason.

## Rules
- Never infer, estimate or complete a birth date. An ambiguous date such as `03/04` with no stated format goes to `do-not-send.csv` with reason `ambiguous date format`.
- Never write a year of birth, an age, or any age band to any output file.
- Deduplicate on lowercase email address. Where duplicates disagree on the date, hold both with reason `conflicting dates`.
- Match the suppression list on lowercase email, trimmed.
- Do not send any email, call any API, or contact any person. You produce files only.
- Use British date order and the pound sign in `offer-terms.txt`.

## Return
Print the absolute path of each file written, the four counts from `counts.txt`, and the list of hold reasons with how many rows each accounted for. If any source file could not be parsed, name it and say why rather than skipping it silently.

Built from the best public work on this

Sources for birthday-offer

Everything below was opened and read on 14 September 2026. Nothing is cited that could not be loaded.

1. The Privacy and Electronic Communications (EC Directive) Regulations 2003, regulations 22 and 23

https://www.legislation.gov.uk/uksi/2003/2426/regulation/22 and https://www.legislation.gov.uk/uksi/2003/2426/regulation/23, made 18 September 2003, read 14 September 2026.

The statutory instrument itself, on the Government's own legislation service, which is the primary source for every marketing email sent to a person in the UK. Regulation 22(2) prohibits transmitting unsolicited direct marketing by electronic mail "unless the recipient of the electronic mail has previously notified the sender that he consents for the time being to such communications being sent". Regulation 22(3) then sets the soft opt-in, requiring that the contact details were obtained "in the course of the sale or negotiations for the sale of a product or service to that recipient", that the marketing is of "similar products and services only", and that "the recipient has been given a simple means of refusing (free of charge except for the costs of the transmission of the refusal) the use of his contact details for the purposes of such direct marketing, at the time that the details were initially collected, and, where he did not initially refuse the use of the details, at the time of each subsequent communication". Regulation 23 adds two prohibitions that no birthday automation can afford to trip: sending "where the identity of the person on whose behalf the communication has been sent has been disguised or concealed", and "where a valid address to which the recipient of the communication may send a request that such communications cease has not been provided". These three lines are the whole of step 3's lawful-basis column and the whole of step 8's message furniture. Where the skill departs from the source: the regulation is silent on whether a birth date collected on a booking form counts as obtained in the course of negotiations for a sale, and the skill does not pretend otherwise. It sorts each row into consent, soft opt-in or unlabelled, and it sends nothing from the unlabelled pile, which is a stricter position than the regulation strictly compels.

2. Information Commissioner's Office, "Electronic mail marketing"

https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/guide-to-pecr/electronic-and-telephone-marketing/electronic-mail-marketing/, no publication date shown on the page, read 14 September 2026. The page carries a standing notice that the guidance "is under review and may be subject to change" because of the Data (Use and Access) Act.

The regulator's own plain-English restatement of regulation 22, and the source for the wording an owner will actually recognise. It states the rule as: you must not send electronic mail marketing to individuals unless "they have specifically consented to electronic mail from you" or "they are an existing customer who bought (or negotiated to buy) a similar product or service from you in the past, and you gave them a simple way to opt out both when you first collected their details and in every message you have sent", followed by "You must not disguise or conceal your identity, and you must provide a valid contact address so they can opt out or unsubscribe." Its explanation of the soft opt-in adds the sentence that decided which sources feed the roster: the rule "does not apply to prospective customers or new contacts (eg from bought-in lists)". That is why a birth date captured on a competition entry at a wedding fair is excluded in step 3 while one captured on a booking form is not. Its checklist, particularly "We keep a 'do not contact' list of anyone who opts out or unsubscribes from our electronic mail", is what step 9 implements. Where the skill departs from the source: the ICO permits marketing email to corporate bodies without consent, and a hospitality list will contain some company addresses. The skill does not use that latitude for birthdays, because a birthday is a personal fact about a named individual and nothing about it becomes less personal for arriving at a work address.

3. Information Commissioner's Office, "What is special category data?"

https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/lawful-basis/special-category-data/what-is-special-category-data/, latest update shown on the page as 9 April 2024, read 14 September 2026.

The ICO's detailed guidance on Article 9 data. It matters here because a birthday list is the point at which a restaurant starts holding a fact about a person that it never needed before, and the temptation to build on it is immediate. The section on inferences is the part that shaped step 2 and the fifth rule. It states that whether inferred data counts as special category data depends on whether "your processing intends to make an inference linked to one of the special categories of data" or "you intend to treat someone differently on the basis of inferred information linked to one of the special categories of data", and adds that where that is so, "you are processing special category data regardless of how confident you are that the inference is correct". It also states plainly that "If you carry out any form of profiling which infers things like ethnicity, beliefs, politics, health status (condition or risks), sexual orientation or sex life, you will be processing special category data and must identify an Article 9 condition for processing." Age is not itself a special category and the skill says so. What the guidance changes is the design: a full date of birth on a marketing table is an invitation to vary the offer by group, and that is where the inference starts. Discarding the year removes the temptation rather than policing it. Where the skill departs from the source: the ICO explicitly says you do not need an Article 9 condition just to hold names or images on a customer database, so nothing here says holding a birth date is unlawful. The skill's position is narrower and practical, which is that a year of birth is not needed to send a birthday message and so should not be carried.

4. Committee of Advertising Practice, "03 Misleading advertising" and "08 Promotional marketing"

https://www.asa.org.uk/type/non_broadcast/code_section/03.html and https://www.asa.org.uk/type/non_broadcast/code_section/08.html, no publication date shown on the page, read 14 September 2026.

The non-broadcast CAP Code, enforced by the ASA, which applies to a marketing email exactly as it applies to a poster. Four rules do real work. Rule 3.23 prohibits describing a product as "free", "gratis", "without charge" or similar "if the consumer has to pay anything other than the unavoidable cost of responding and collecting or paying for delivery of the item", which is why step 4 refuses to call a conditional dessert free. Rule 8.17 requires that promotions "communicate all applicable significant conditions or information where the omission of such conditions or information is likely to mislead", and 8.17.4.a names "a prominent closing date, if applicable", while 8.17.4.e says closing dates "must not be changed unless unavoidable circumstances beyond the control of the promoter make it necessary". Rules 8.4 and 8.5 are the alcohol guard in step 7: "Alcoholic drinks must not feature in promotions directed at people under 18. Alcohol must not be available on promotion to anyone under 18", and promotions "must not be socially undesirable to the audience addressed by encouraging excessive consumption or irresponsible use". The Code's own background section also warns that promoters "should take legal advice before embarking on promotions with prizes" because of the Gambling Act 2005, which is why this skill builds a gift and not a prize draw. Where the skill departs from the source: the Code allows significant conditions to sit behind a clearly signposted link where the medium is limited by time or space (rule 8.18). Email is not so limited, so the skill puts them in the body.

5. Information Commissioner's Office, "Collect information and generate leads" and "Respect people's preferences"

https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/direct-marketing-guidance/collect-information-and-generate-leads/ and https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/direct-marketing-guidance/respect-peoples-preferences/, no publication date shown on the page, read 14 September 2026.

Two chapters of the ICO's detailed direct marketing guidance. The first supplies the transparency line quoted in step 1 and the test a form has to pass: "If you find it difficult to explain what you want to do, or you don't want to tell people because you think they might object, this is a sign that you should rethink your intended marketing activity." That sentence is the plainest available standard for whether a birthday field on a booking form is honest. The second settles the suppression question that stops most owners from keeping one. It states that organisations are sometimes "concerned that the law stops them from putting someone on a suppression list when they object", that "This is not correct", and that keeping such a list "isn't for direct marketing purposes. You are keeping this list so that you can comply with your statutory obligations". It also draws the distinction step 9 relies on, that a screening list is not a suppression list and "Use of a screening list is processing for direct marketing purposes". Where the skill departs: the ICO sets no retention period for a birthday roster, saying only that you must be able to justify why keeping it is necessary. The skill imposes an annual review anyway, because a roster nobody has touched for two years is a list of people who have stopped coming.

Best public prompt we found for this job

The closest public artefact is the `email-sequence` skill in Anthropic's `knowledge-work-plugins` repository, raw file at https://raw.githubusercontent.com/anthropics/knowledge-work-plugins/main/marketing/skills/email-sequence/SKILL.md. The repository has 24,015 stars, read from api.github.com. It is a general lifecycle-email builder rather than a birthday automation, but its structure around exits and suppressions is the right instinct, and the line worth copying is this one:

do not send if the recipient is already in another active sequence, has unsubscribed from marketing, or has contacted support in the last 48 hours

That is exactly the screen step 9 runs before a roster is released, and the "already in another active sequence" half is the one hospitality operators miss: a birthday message landing three days after a Christmas menu blast is two messages in a week to somebody who agreed to hear from you occasionally.

What we did not copy, deliberately: the skill's "Performance Benchmarks" table, which gives expected figures such as an open rate of "15-25%" for re-engagement and "50-70%" for onboarding with no publisher, no dataset and no date attached. Numbers like those get repeated to an owner as though they described their own restaurant, and they then become the target a real campaign is judged against. This skill states no open rate, no click rate and no benchmark anywhere, and the only percentage it will ever show an owner is one calculated from that owner's own sends. We also did not copy the multi-email drip shape. A three-email birthday sequence is three opportunities to unsubscribe in the week somebody is trying to organise a meal, and one message fourteen days out does the job.

Want this running in your business?

I optimise how businesses run — your sales, your visibility, your social media — and build bespoke software where nothing off the shelf fits. The first conversation is free. Work starts from £150 a day.