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

consent-record

proof you were allowed to send it

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: consent-record
description: Builds the evidence file that shows, for every address you email, who agreed, when, what they were shown at the time and how they agreed, plus the withdrawals. Use when you need to prove you were allowed to send it, or before you send to a list you inherited.
---

# Prove you were allowed to send it, on the day somebody asks

You give this your sign-up forms, your booking system's guest records, the paper sheets from the bar, and whatever spreadsheet your list currently lives in. You get back a consent register with one row per address per purpose, a dated folder of the exact forms and scripts people saw, a suppression file of everyone who has said no, and a plain list of the addresses you cannot evidence at all. The last file is the one that matters, because it is the one you must stop sending to.

## What it does

1. **Write down the five things a record has to show before opening a spreadsheet.** Article 7(1) of the UK GDPR says "Where processing is based on consent, the controller shall be able to demonstrate that the data subject has consented to processing of his or her personal data." The ICO turns that into five headings you must be able to produce: **who** consented, by name or other identifier; **when** they consented, as a dated document, an online timestamp, or for spoken consent "a note of the time and date which was made at the time of the conversation"; **what they were told at the time**, meaning "a master copy of the document or data capture form containing the consent statement in use at that time, along with any separate privacy policy or other privacy information, including version numbers and dates"; **how** they consented; and **whether they have withdrawn consent: and if so, when**. Five columns, not one. A register with a "consented" tick and nothing else fails on four of them.

2. **Snapshot every form, sheet and script in use, and date the snapshot.** The third heading is the one businesses never have, because forms get edited and the old wording disappears. Save a PDF or screenshot of each live sign-up point today, name it `form_<point>_v1_2026-09-14.pdf`, and store it beside the register. Cover the booking widget's marketing tick, the wifi portal screen, the gift voucher checkout, the paper sheet on the bar, the wording your staff say when they ask at the till, and the privacy notice each one links to. From now on, every time one of those changes, save a new version and start a new version number. The ICO's failing example is exact about why: keeping "the time and date of consent linked to an IP address, with a web link to your current data-capture form and privacy policy" is not good enough, because a link to the current form is not evidence of the old one.

3. **Build the register as one row per address per purpose, never one row per person.** Consent under the UK GDPR "should be specific and granular, so your records also need to be specific and granular to demonstrate exactly what the consent covers". A guest who agreed to the monthly newsletter did not agree to text messages, and a guest who agreed to hear about the restaurant did not agree to hear about the sister hotel. Columns: email, name, purpose (for example "marketing email, this venue"), route (consent, soft opt-in, or corporate subscriber), date, form or script version, how (ticked box, clicked link, replied to email, said yes on the phone), collection point, withdrawn (yes or no), withdrawn date, source system. Two purposes means two rows.

4. **Record a soft opt-in differently from a consent, because it needs different evidence.** Consent needs proof of an affirmative act. The soft opt-in needs proof of four other things: that you took the address directly from that person, that it happened during a sale or negotiations for a sale, that the marketing is for your similar products and services, and that an opt-out was offered both at collection and in every message since. So a soft opt-in row carries a transaction reference or booking reference in place of a tick, plus the version of the checkout or booking flow that showed the opt-out. If you cannot produce the transaction reference, you have an assumption rather than a record.

5. **Mark what you cannot evidence, and never reconstruct it.** Work through the list and put every address into one of three buckets: evidenced, evidenced but thin, or not evidenced. "Not evidenced" is the correct answer for most inherited lists, business cards, a spreadsheet a previous manager built, and anything that arrived from a third party without paperwork. Do not date a row from the booking system's record-created field and call it a consent date; the record was created when the table was booked, which is not the same event. The ICO's own failing example is "You keep a spreadsheet with 'consent provided' written against a customer's name." A reconstructed record is worse than no record, because it is a false statement you would have to stand behind.

6. **Treat every withdrawal as its own dated event, and keep it after the address is gone.** People "have the right to withdraw his or her consent at any time" and "It shall be as easy to withdraw as to give consent". When someone unsubscribes, write the date into the register, move the address to the suppression file, and keep it there. The ICO is direct about this being lawful: "keeping a suppression list isn't for direct marketing purposes. You are keeping this list so that you can comply with your statutory obligations". Keep only what is needed to recognise them again, usually the address and the date. Its worked example shows why deleting is the mistake: a company deleted an objector's number, later bought a screened list that contained it, called them again, and "has breached PECR".

7. **Record what you tell people, because the record has to contain it.** A consent request must as a minimum include "the name of your organisation and the names of any other controllers who will rely on the consent", why you want the data, what you will do with it, and "that people can withdraw their consent at any time". CAP Code rule 10.2 adds the list that must be provided when you collect personal data, including the retention period and the right to object. Store the privacy notice version alongside the form version so the pair can be produced together, and write the retention period into the register header rather than leaving it undefined.

8. **Set a review date and a refresh rule, and put both in the file.** The ICO says consent "does not last forever" and that how long depends on the relationship, and separately, "If in doubt, we recommend you consider refreshing consent every two years". For third-party consent it is firmer: "we generally recommend that you should not use consent for direct marketing that was given via a third party more than six months ago". Write a review date into every row, defaulting to two years from the consent date and six months for anything that arrived via a third party. A register with no review date silently ages into a register of stale permissions.

9. **Produce the four artefacts and one page for the owner.** `consent-register.csv` with the columns above. A `forms/` folder holding the dated version of every form, script and privacy notice. `suppression.csv` holding address, date, channel, and nothing else. `not-evidenced.csv` holding every address you cannot stand behind, with the single reason. The page says how many addresses are evidenced, how many are not, what the three fastest fixes are, and the one sentence the owner would say if a recipient asked where they got their address. If that sentence cannot be written for a given address, that address belongs in `not-evidenced.csv`.

## Then it checks

1. Every evidenced row carries all five ICO headings: who, when, what they were told (as a named file version), how, and the withdrawal status, with no heading left blank.
2. Every form, script and privacy notice referenced in the register exists as a dated file in the `forms/` folder, and no row points at a "current" version of anything.
3. No consent date was inferred from a record-created date, an order date, a first-seen date or any other system field that records a different event, and no row was filled in from memory.
4. Every address appears in exactly one of the register, the suppression file or the not-evidenced file, and the three counts add up to the total address count.
5. Every soft opt-in row names a transaction or booking reference and the version of the flow that showed the opt-out at collection, rather than a tick.
6. Every row carries a review date, set at two years by default and six months for anything obtained through a third party.

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 write a consent date, a wording or a method you did not read off a system or a document. The register's whole value is that every line in it is a statement you could repeat to a regulator, and one guessed date makes the other nine hundred unreliable.
- Never delete an unsubscribe. Suppression is what stops the same person being re-added next time a list is imported, and the ICO's own example shows a deletion causing the breach it was meant to prevent.
- Never merge two purposes into one row to make the file tidier. Granular records exist so that you can show what the consent actually covered, and a merged row proves consent to neither.
- Never treat a signed privacy policy, a ticked terms and conditions box or an unticked opt-out as evidence of consent. The ICO rules out "pre-ticked boxes, opt-out boxes, default settings or a blanket acceptance of your terms and conditions", so a row resting on any of those belongs in the not-evidenced file.
- This output is a working document prepared for the owner's solicitor or data protection adviser to check before it is relied on. It assembles and labels evidence against published guidance; it is not legal advice and it is not a finding that your consent is valid.

## Built from
- Information Commissioner's Office, "How should we obtain, record and manage consent?", UK GDPR guidance, https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/lawful-basis/consent/how-should-we-obtain-record-and-manage-consent/, no publication date shown on the page, read 14 September 2026: Article 7(1), the five record headings in step 1, the failing and passing examples in steps 2 and 5, the granularity requirement in step 3, and the two-year refresh in step 8.
- Information Commissioner's Office, "Respect people's preferences", 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: the suppression rule and the deleted-number example that shapes step 6 and the second rule.
- Information Commissioner's Office, "Plan direct marketing", https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/direct-marketing-guidance/plan-direct-marketing/, latest update shown 20 August 2025 on the sibling pages, read 14 September 2026: the five soft opt-in requirements behind step 4, and the six-month limit on third-party consent in step 8.
- The Privacy and Electronic Communications (EC Directive) Regulations 2003, regulation 22, https://www.legislation.gov.uk/uksi/2003/2426/regulation/22, in-force text carrying amendments commenced 5 February 2026, read 14 September 2026: the statutory wording of the soft opt-in limbs that step 4 requires evidence for.
- Committee of Advertising Practice, CAP Code (Edition 12), Section 10 "Use of data for marketing", https://www.asa.org.uk/type/non_broadcast/code_section/10.html, no publication date shown on the page, read 14 September 2026: rule 10.2's list of what must be told at collection, and rule 10.12 on withdrawal being as easy as consent, which together shape step 7.

Prompt for Codex

# consent-record

## You are given

A folder containing whatever the owner has: exported CSVs from a booking system, an EPOS or a mailing tool; screenshots or PDFs of sign-up forms, wifi portals and checkout pages; photographs of paper sign-up sheets; a privacy notice; and a plain-text note naming each collection point and the date its wording last changed. Column names will be inconsistent and dates will be in mixed formats.

## Produce

Write these into an `output/` folder beside the inputs.

1. `consent-register.csv`, UTF-8 with a header row, one row per email address per purpose. Columns in this order: `email`, `name`, `purpose`, `route`, `consent_date`, `form_version`, `method`, `collection_point`, `source_file`, `source_row`, `withdrawn`, `withdrawn_date`, `review_date`. `route` is one of `consent`, `soft_opt_in`, `corporate`. `method` is one of `ticked_box`, `clicked_link`, `replied_email`, `verbal`, `paper_form`, `transaction`. Dates are `YYYY-MM-DD`. `review_date` is `consent_date` plus two years, or plus six months where `collection_point` names a third party.
2. `not-evidenced.csv`, same first four columns plus `reason`, listing every address that cannot fill all of `consent_date`, `form_version` and `method` from a source file.
3. `suppression.csv`, columns `email`, `date`, `channel`, and nothing else.
4. `forms/`, holding every supplied form, screenshot or script copied and renamed `form_<collection_point>_v1_<YYYY-MM-DD>.<ext>`, using the date from the owner's note.
5. `summary.txt`, under 300 words: total addresses, counts in each of the three files, the five most common reasons in `not-evidenced.csv`, and the three collection points producing the most unusable rows.

## Rules

- Never write a value into `consent_date`, `method` or `form_version` that is not read from a supplied file. Leave it empty and send the row to `not-evidenced.csv`.
- Never use a record-created, order, first-seen or last-updated field as a consent date.
- Never merge two purposes into one row.
- Every output row must carry `source_file` and `source_row` so any value can be traced back.
- The three files must partition the input: every distinct address appears in exactly one of them, and the counts must sum to the distinct address count. State both numbers in `summary.txt`.
- Do not contact anyone, do not send anything, and do not modify the input files.

## Return

The five paths written, the row count of each CSV, the partition check as `distinct_addresses = register + not_evidenced + suppression` with both sides shown, and any input file you could not parse, named with the reason.

Built from the best public work on this

Sources for consent-record

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

1. Information Commissioner's Office, "How should we obtain, record and manage consent?"

https://ico.org.uk/for-organisations/uk-gdpr-guidance-and-resources/lawful-basis/consent/how-should-we-obtain-record-and-manage-consent/, no publication date shown on the page; it carries a banner saying the guidance "is under review and may be subject to change" following the Data (Use and Access) Act, read 14 September 2026.

This single page is the spine of the skill. It quotes Article 7(1) directly, "Where processing is based on consent, the controller shall be able to demonstrate that the data subject has consented to processing of his or her personal data", and then does the thing no other source does, which is to say what "demonstrate" means in files. It requires records showing "Who consented", "When they consented", "What they were told at the time", "How they consented" and "Whether they have withdrawn consent: and if so, when". Those five became the five headings in step 1 and the mandatory columns in the register.

The third heading is where the skill's unusual insistence on a `forms/` folder comes from. The ICO spells out that the record must contain "a master copy of the document or data capture form containing the consent statement in use at that time, along with any separate privacy policy or other privacy information, including version numbers and dates matching the date consent was given". Then it gives three paired failing and passing examples. The failing ones are the ones worth quoting to an owner, because each describes something a real business currently does: "You keep a spreadsheet with 'consent provided' written against a customer's name"; "You keep the time and date of consent linked to an IP address, with a web link to your current data-capture form and privacy policy"; "You put a tick next to a customer's name to indicate that they told you verbally that they consent." The second is the subtle one and it is the reason step 2 exists at all. A link to the current form looks like evidence and is not, because the form has been edited since.

The page also supplies the granularity rule in step 3 ("Consent should be specific and granular, so your records also need to be specific and granular"), the refresh interval in step 8 ("If in doubt, we recommend you consider refreshing consent every two years"), the withdrawal quotation of Article 7(3), and the list of what cannot count as consent: "You cannot rely on silence, inactivity, pre-ticked boxes, opt-out boxes, default settings or a blanket acceptance of your terms and conditions."

Where the skill departs from the source: the ICO mentions that "For online consent, you may be able to use an appropriate cryptographic hash function to support data integrity." That is good advice for a software company and useless to a pub, so the skill leaves it out entirely rather than dressing a spreadsheet in language the owner cannot act on. The skill also goes further than the source in one place. The ICO does not say you must refuse to record a consent you cannot evidence; it says you must be able to demonstrate one. The skill turns that into a hard partition, with a `not-evidenced.csv` that the owner has to look at, because in practice an un-evidenced row left inside the main register is indistinguishable from an evidenced one within a week.

2. Information Commissioner's Office, "Respect people's preferences"

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.

The chapter that settles the question every owner asks when they first meet the rules, which is whether keeping a list of people who said no is itself a breach. The ICO answers it in plain terms: "Sometimes organisations are concerned that the law stops them from putting someone on a suppression list when they object. This is not correct... keeping a suppression list isn't for direct marketing purposes. You are keeping this list so that you can comply with your statutory obligations (ie to comply with their objection) and not for direct marketing purposes."

It also supplies the example that makes the rule stick. A company received a request not to call again and "simply deletes their phone number". Months later it bought a list screened against the TPS, which included that number because the person had never registered with the TPS, and called them again. The ICO's conclusion is flat: "The company has breached PECR by calling their number as the person had previously told it not to call. If the company had placed the number on a suppression list rather than deleting it, the breach would have been prevented." That is step 6 and the second standing rule, and it is the single most counter-intuitive thing in the whole pack: the tidy-minded response, deleting the person, is the one that causes the offence.

The same page constrains what a suppression file may contain: "Suppression involves keeping just enough information about someone to ensure you respect their preferences in the future, so you must not keep more than you need." That is why `suppression.csv` has exactly three columns and why the CODEX brief says "and nothing else".

Where the skill departs: the ICO notes that a suppression entry is not automatically deletable under the right to erasure. The skill does not lean on that, because an owner arguing with a customer about why their address is still held is a worse outcome than a quiet, minimal record, and the skill's advice is to say plainly what is kept and why if asked.

3. Information Commissioner's Office, "Plan direct marketing"

https://ico.org.uk/for-organisations/direct-marketing-and-privacy-and-electronic-communications/direct-marketing-guidance/plan-direct-marketing/, part of the direct marketing guidance whose sibling pages show a latest update of 20 August 2025, read 14 September 2026.

Used for two things. First, the five requirements of the products and services soft opt-in, which is what step 4 turns into a different evidence set. The ICO's fourth requirement is "You provided an opportunity to refuse or opt out when you collected the details" and its fifth is "You give an opportunity to refuse or opt out in every subsequent communication". Neither of those is evidenced by a tick, which is why a soft opt-in row in the register carries a transaction reference and a flow version instead.

Second, the ageing rules in step 8. The page states that "Consent for direct marketing does not last forever" and that "consent for a one-off message, or consent that is clearly only intended to cover a short time or a particular context, doesn't count as ongoing consent for all your future direct marketing". On third parties it is more specific: "We generally recommend that you should not use consent for direct marketing that was given via a third party more than six months ago (unless people would expect your marketing at a later date, eg seasonal offers)." The six-month default review date in the register comes from that sentence and nowhere else.

Where the skill departs: the ICO's six-month recommendation carries a seasonal exception. The skill ignores the exception and defaults everything third-party to six months, because a hospitality owner will find it easier to re-permission a warm seasonal list than to argue the exception, and because the exception is the kind of thing that gets applied to everything once it is offered.

4. Committee of Advertising Practice, CAP Code (Edition 12), Section 10 "Use of data for marketing"

https://www.asa.org.uk/type/non_broadcast/code_section/10.html, no publication date shown on the page; it carries a note that these rules are "presently under review" in light of the Data (Use and Access) Act 2025, read 14 September 2026.

The advertising code's own version of the same duties, and worth citing because it is enforced by a different body on a different timetable. Rule 10.2 lists twelve things that must be provided at the time of collection, including "the purposes for which the collection of the personal data are intended and the legal basis for collection" and "the period for which the personal data will be stored, or if that is not possible, the criteria used to determine that period". That retention line is why step 7 tells the owner to write a retention period into the register header rather than leaving it blank. Rule 10.12 restates the withdrawal duty: "Marketers must ensure that it is as easy for consumers to withdraw consent as it was to give consent." Rule 10.10 requires that "before use, databases have been run against relevant suppression files within a suitable period", which is the register's screening job stated as an advertising obligation.

Where the skill departs: the CAP Code is enforced by the ASA against advertisements, not by the ICO against data practice, and the skill never tells an owner that satisfying one satisfies the other. They overlap heavily and are not the same test.

Best public prompt we found for this job

The nearest public artefact is a package rather than a prompt: `lchris44/laravel-email-preference-center`, https://github.com/lchris44/laravel-email-preference-center. The repository has 26 stars, read from api.github.com on 14 September 2026. Its README, fetched raw at https://raw.githubusercontent.com/lchris44/laravel-email-preference-center/main/README.md, describes a per-category preference centre with RFC 8058 one-click unsubscribe and, in one bullet, exactly the feature this skill is about:

**GDPR consent log** - every preference change recorded with IP, user agent, and timestamp

The half worth copying is the per-category model. Storing preferences by category rather than as a single subscribed flag is the software equivalent of the skill's one row per address per purpose, and it means a customer who wants fewer emails is not forced to choose between everything and nothing.

What we deliberately did not copy is the consent log itself, and the reason is the strongest argument in this whole skill. IP address, user agent and timestamp answer "who" and "when" and nothing else. They do not answer "what they were told at the time", because they do not capture the version of the form that was on screen, and the ICO's failing example is almost word for word this design: keeping "the time and date of consent linked to an IP address, with a web link to your current data-capture form and privacy policy" is listed as the wrong answer. A log like that looks rigorous, is trusted because it is automatic, and would fail on the one heading a regulator asks about. The skill therefore puts the dated `forms/` folder at the centre and treats the timestamp as the easy part.

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.