
A message bank is a set of source records and writing notes. A voice-of-customer message bank keeps people’s own words beside the context that gives those words meaning. When you use Reddit, leave customer status unknown unless you have separate evidence for it.
Your finished bank should let another reader trace each proposed message to its source. It should also show where your own thinking begins.
1. Choose one task and a clear boundary
Write down the work you want to understand before you collect phrases. Choose a task and situation rather than a broad feeling about a product.
For the supplied teaching topic, the task is exporting reports. The useful boundary is the work around report columns, including repeated setup. This boundary keeps a phrase about export speed separate from a phrase about rebuilding a layout.
Record three things:
- The task you want to understand.
- The situation that makes the wording relevant.
- The kinds of wording you will leave outside this bank.
For example, you can include passages about preparing report columns. You can leave unrelated discussion about billing outside this collection. These are proposed research choices, not findings about what Reddit users discuss.
The supplied public question asks, “How are you actually using Reddit for customer research”. That wording calls for a practical method. However, the evidence is a captured search title and snippet. The full page was not checked for this brief. The record shows that a related question was asked. It does not show how common this guide’s exact question is. Public customer-research question — retrieved 2026-08-11; publication date unknown; title and snippet only.
Keep the purpose narrow: collect useful language for later message checks. Do not turn this bank into an overall sentiment score, a feature ranking, or proof that a business idea will sell.
2. Create a record that keeps the source and your notes apart
Use a spreadsheet or another table you can review. Give each selected passage a context card: one record that holds the quote, its source, and your notes.
A post can contain more than one useful passage. If you make several cards from one post, keep the same source identity on each card. More cards do not mean more source posts or more people.
Save the following fields. The collection output can supply some fields. You add the research notes yourself.
| Field | What to save |
|---|---|
| Card key | Your own stable label for the selected passage |
| Source identity | `postId` and `canonicalPostUrl` |
| Search record | `inputQuery`, requested `sort`, requested `time`, and `maxResults` |
| Community context | `requestedSubreddit` and `matchedSubreddit`, when available |
| Source text | Relevant text from `title` or `body` |
| Exact phrase | The short passage you selected, unchanged |
| Surrounding context | Enough nearby text to explain the phrase |
| Source dates | `createdAt` and `observedAt`, kept as separate values |
| Availability | `status` and `unavailableFields`, with unresolved gaps visible |
| Speaker situation | Stated role or conditions; mark unstated details unknown |
| Speaker task | The work the speaker describes |
| Trigger | The event that brings the task or difficulty about |
| Desired outcome | A stated outcome, or an interpretation clearly marked as yours |
| Interpretation | What you think the passage means and why |
| Message hypothesis | An original message you propose to check later |
| Review note | What you checked, what remains unclear, and when you checked it |
A message hypothesis is proposed wording that you want to test. It is not a source quote or a verified product claim.
Keep the source text unchanged. If you shorten a passage, save the complete supporting passage beside it. This lets a reviewer check whether the shorter quote still has the same meaning.
Treat a missing value as unknown. A missing frequency is not “never.” A missing time cost is not zero minutes. A missing role does not establish that the writer lacks buying authority. A missing publication date does not become the observation date.
3. Read the source before you select a phrase
Open each relevant public source and read enough context to understand the passage. A search snippet can help you find a candidate. It may not contain enough text for an accepted card.
Use this sequence:
- Confirm that the URL and source identity match the post you are reading.
- Read the title and the relevant body passage.
- Identify whose words appear in the passage.
- Identify the task, condition, and time period the words describe.
- Select the shortest passage that keeps that meaning.
- Save the surrounding context and any unresolved questions.
Do not assign quoted words from another person to the post’s author. A question also needs careful treatment. Someone who asks whether an export works has not necessarily reported a failed export.
Keep words that limit the claim. “For our team” limits the speaker’s account. “Each week” describes a repeated situation. “I can export” states that export is possible in that account. Removing these words can change the meaning.
Do not combine parts of different posts into one quotation. If several passages inform your writing, retain separate cards. Explain the connection in your interpretation field.
If the context does not establish the task or speaker, keep the card pending. Do not complete it from your preferred customer profile.
4. Use the Actor for public post collection when needed
An Actor is a hosted data collection program. The Reddit Search Scraper Actor has documented inputs and output fields that fit the public collection step. You still select phrases, read context, and write the message bank.
The supplied small input is:
{"maxResults":3,"query":"export report columns","sort":"relevance","time":"all"}This is a proposed input. It is not a copied saved preset or a completed search. It passed a static schema check. A schema defines accepted field names, types, and values. A static check compares input with those rules without running the collection program.
Before use:
- Replace `query` with words for the task you chose.
- Keep `maxResults` at 3 for the first small inspection.
- Review `sort`. The sample requests `relevance`.
- Review `time`. The sample requests `all`.
- Save the exact input beside your source records.
The checked schema accepts an integer from 1 to 10000 for `maxResults`. The accepted `sort` values are `relevance`, `hot`, `top`, `new`, and `comments`. The accepted `time` values are `all`, `hour`, `day`, `week`, `month`, and `year`.
A requested limit of 3 does not establish that three usable posts will be returned. A requested time setting does not establish complete coverage. No Actor run occurred for this brief. The check does not prove live data availability or collection health. Public default build 2.0.6 — checked 2026-10-25; schema evidence only; no live run.
The documented output fields include the source and date fields listed in the table above. Some values can be missing. Read `status` and `unavailableFields` with the text. Do not replace missing context with a guess.
The Reddit Post Customer Language Research Task provides another starting point. A Task is a saved Actor input configuration. Its public page and exact Task identity were checked on 2026-10-25. Its current saved input and runtime behavior remain unverified. Inspect its settings before use. Do not assume that it contains the sample input shown here.
This collection concerns public posts. Keep owner-only support records, account data, and private messages in a separate authorized process. Do not label those records as Reddit output. Public wording also does not establish permission to use a person as a testimonial.
5. Separate situation, interpretation, and proposed wording
After you save the source, add your notes in separate fields.
The situation explains when the words apply. The trigger explains what starts the work. The desired outcome describes what the speaker wants to achieve. These fields can be unknown independently.
A weekly task does not tell you what caused the current difficulty. A complaint about repeated setup does not establish a request for a specific feature. Do not fill every field merely to make the table look complete.
Write your interpretation in plain language. Point to the words that support it. When you infer an outcome, mark it as an interpretation rather than a direct statement.
Then draft a message hypothesis in your own words. Keep these three layers visible:
- Source: What the person wrote.
- Interpretation: What you think the passage means.
- Message hypothesis: What you propose to say later.
Do not edit the quote to resemble your message. Do not place quotation marks around your own summary.
Before using a message in public copy, check that the product can support its promise. A source passage about a difficulty does not verify a solution. A proposed message can remain in the bank while its product support remains unknown.
6. Remove personal details that the work does not need
Keep the task and situation. Remove personal details that do not help explain the wording.
The working bank does not need a public user name to preserve a phrase about report columns. Use your card key, source ID, and URL for traceability. Do not add contact details or infer an employer from unrelated information.
If a personal detail appears inside a selected passage, choose a shorter exact passage when possible. If that removes essential meaning, mark the card for restricted handling or leave it out of a shared copy. Do not silently alter text and continue to call it an exact quote.
Keep source access separate from presentation. A traceable internal card is not automatically suitable for an advertisement or a public customer story. Your source note should show that distinction.
7. Worked example: two context cards and one proposed message
Original fiction. Every post and card in this example is invented. This is not an Actor run, a customer result, or an observed company finding. The two-card example is separate from the proposed input limit of 3.
The first fictional post says:
Save the whole sentence. “I can export” matters. “Each week” also matters. Reducing the passage to “cannot export” would reverse part of its meaning.
| Card field | Fictional card A |
|---|---|
| Exact phrase | I can export the report, but rebuilding the columns each week takes time. |
| Source | Fictional post A; no real source URL |
| Speaker task | Exporting a report |
| Situation | Rebuilding columns each week |
| Trigger | Unknown; the passage does not explain what causes the rebuild |
| Reported time cost | Some time is reported; the amount is unknown |
| Interpretation | The account describes repeated column setup despite being able to export |
| Message hypothesis | Save a reusable column layout. |
| Product support | Unverified; the hypothesis is not a capability claim |
The message hypothesis is the writer’s idea. The fictional speaker did not use that wording or establish that such a feature exists.
Now add a second fictional post that praises export speed. Save it as card B with its own source and situation. Do not use it to cancel card A. Export speed and repeated column setup concern different parts of the work.
| Review unit | Fictional amount | Meaning |
|---|---|---|
| Context cards | 1 + 1 = 2 cards | Two recorded accounts in this invented example |
| Source posts | 1 + 1 = 2 posts | One invented source for each card |
| Proposed messages | 1 message hypothesis | One writer-created idea from card A |
| Verified customers | Unknown | The example establishes no customer identities |
| Willingness to pay | Unknown | Neither card provides payment evidence |
Two cards are not two verified buyers. They do not establish a majority or a market rate. The unknown time amount in card A is not zero. Card B’s praise does not make that amount known.
For larger banks, check the unit before reporting counts. Count cards as cards and posts as posts. Several selected passages can come from one source.
8. Check each card and handle missing evidence
Review the complete card before you use its phrase in a brief.
- Trace the quote to its source passage and URL.
- Compare the quote with the source word for word.
- Check negation, conditions, time periods, and units.
- Confirm who said the words and what task they concern.
- Mark inferred details as interpretation.
- Keep the message hypothesis outside the quote field.
- Check product support for any proposed promise.
- Keep missing values and unresolved context visible.
Use the following actions when a card fails a check.
| Problem | Next action |
|---|---|
| Only a search snippet is available | Keep it as a candidate until you can inspect enough source context |
| The body is missing | Record the gap; do not invent a passage |
| The speaker or task is unclear | Keep the card pending and name the uncertainty |
| A shorter quote changes the meaning | Restore enough original wording or reject the shortened quote |
| Two records disagree | Keep both versions and review the difference before use |
| A source is no longer available | Keep any text you already retained with its observation record; otherwise leave it unresolved |
| The proposed message promises an unchecked feature | Keep it as an unverified hypothesis |
Do not claim to recover an old source unless you already retained it. A broken source link can reduce what you can check now. Record that limit.
A card that lacks enough context is not evidence that the task has no difficulty. It is a record you cannot yet interpret. Likewise, a small collection with no usable phrases does not establish that customers have nothing useful to say. First determine whether the problem lies in the query, source availability, or your selection boundary.
Sources & further reading
- Reddit public customer-research question — retrieved 2026-08-11; publication date unknown; captured title and snippet only; full page not checked
- Reddit Search Scraper public default build 2.0.6 — checked 2026-10-25; input schema and declared output fields; no live run, yield, or coverage proof
- Reddit Post Customer Language Research Task — checked 2026-10-25; public page and exact Task identity confirmed; current saved input and runtime behavior unverified
By Chronometrica · Updated
Back to top ↑
