---
title: "How an AI intake reply function works end to end"
description: "Follow an inquiry from capture to an approved intake reply, using current business rules, duplicate checks, source references, and a clear run receipt."
canonical: "https://scalewithsearch.com/articles/ai-intake-reply-function-workflow"
---
## Site navigation

- [Scale With Search](https://scalewithsearch.com/)
- Services
  - Services
    - [AI systems](https://scalewithsearch.com/ai-systems)
    - [Site build](https://scalewithsearch.com/work#site-build)
    - [Whole website fix](https://scalewithsearch.com/work#whole-website-fix)
    - [Content library with SEO](https://scalewithsearch.com/work#content-library)
    - [Working session](https://scalewithsearch.com/audit)
  - Start here
    - [Send your brief](https://scalewithsearch.com/work#send-your-brief)
    - [Example scope](https://scalewithsearch.com/work#review-the-example-scope)
  - [Prices and terms](https://scalewithsearch.com/work#prices-and-terms)
- Industries
  - Real estate
    - [Real estate agents and teams](https://scalewithsearch.com/for/real-estate)
    - [Platforms, ownership, and IDX](https://scalewithsearch.com/for/real-estate/real-estate-website-platforms-ownership-idx)
    - [Search, content, and AI](https://scalewithsearch.com/for/real-estate/real-estate-search-content-ai)
    - [Inquiries, campaigns, and handoffs](https://scalewithsearch.com/for/real-estate/real-estate-website-inquiries-campaigns-handoffs)
    - [Buyer, seller, and local pages](https://scalewithsearch.com/for/real-estate/real-estate-buyer-seller-local-resources)
    - [Rules, privacy, and trust](https://scalewithsearch.com/for/real-estate/real-estate-website-rules-privacy-trust)
  - Browse by business
    - [Trades and home services](https://scalewithsearch.com/for/#group-trades)
    - [Health, wellness, and animal care](https://scalewithsearch.com/for/#group-practices)
    - [Law, finance, and IT](https://scalewithsearch.com/for/#group-professional)
    - [Marketing and SEO agencies](https://scalewithsearch.com/for/#group-agencies)
    - [Shops and manufacturers](https://scalewithsearch.com/for/#group-manufacturing)
    - [Restaurants, shops, studios, and nonprofits](https://scalewithsearch.com/for/#group-local-services)
  - Chiropractic practices
    - [Chiropractic and wellness practices](https://scalewithsearch.com/for/chiropractic-and-wellness-practices)
    - [Chiropractic and physical therapy clinics](https://scalewithsearch.com/for/chiropractic-and-physical-therapy-clinics)
  - [All industries](https://scalewithsearch.com/for/)
- Resources
  - Free tools
    - [AI readiness check](https://scalewithsearch.com/check)
    - [Free tools](https://scalewithsearch.com/tools/)
    - [Free Starter Kit](https://scalewithsearch.com/kit/business-memory-starter-kit.zip)
  - Guides
    - [AI-native library](https://scalewithsearch.com/ai-native)
    - [Industry intelligence](https://scalewithsearch.com/intelligence)
    - [Office job guides](https://scalewithsearch.com/guides/)
    - [Business memory](https://scalewithsearch.com/articles/business-memory-for-ai-agents-guide)
    - [Agent governance](https://scalewithsearch.com/articles/ai-agent-governance-guide-small-business)
    - [Migration and ownership](https://scalewithsearch.com/articles/leaving-vendor-ai-memory-guide)
  - Articles
    - [All articles](https://scalewithsearch.com/articles/)
    - [What changed](https://scalewithsearch.com/changes/)
- About
  - Evidence
    - [Proof](https://scalewithsearch.com/proof)
  - Scale With Search
    - [About](https://scalewithsearch.com/about)
    - [How it works](https://scalewithsearch.com/how-it-works)

# How does an AI intake reply function work?

An AI intake reply function takes an incoming inquiry, checks it against current business records, and prepares a reply for review. In the design below, a person approves the exact message before sending. The function leaves a receipt showing what it read and where it stopped.

Consider a hypothetical equipment service business. Someone asks whether the team can inspect a machine next week. A useful reply needs the service area, intake requirements, and rules about availability. It must distinguish acknowledging the request from confirming a booking.

Build the function around that distinction. Give it a defined source record and a narrow output. Add other actions only through a separate written scope.

## Define where an inquiry enters

Choose one starting channel for the first version. It might be a website form or an approved mailbox. Name the account and the location the function may read.

Assign each inquiry a stable identifier. Preserve its received time, source channel, and original record reference. Keep the original message available to the reviewer under appropriate access controls.

Define eligible input before invoking AI. A fixed rule can check whether the item belongs to the chosen channel, has already been processed, or lacks required fields. Hold unreadable or unsupported attachments for a person.

For the equipment example, a form submission might include a contact method, location, equipment category, and request text. Use only the fields the business has chosen to collect. Do not invent a location from a company name.

## Check whether work already exists

Have the function look for an existing result under the inquiry identifier. If the same submission appears twice, preserve one preparation record and mark the repeat as a duplicate.

A later message from the same person is a different case. It may add the missing equipment details. Define whether the function appends to the existing request or creates a new revision for review.

Do not merge people because their names look similar. Use the source system's stable record identifiers and the business's confirmed matching rules. Put unresolved matches into an exception queue.

The receipt should show whether the function prepared a new reply, found a duplicate, or stopped on an identity issue. A quiet run should still state what it inspected.

## Read the approved service record

Create a short record containing the service area, accepted request types, required intake details, escalation rules, and approved acknowledgment wording. Give each rule an owner and effective date.

Keep capacity and booking authority separate from general service information. A statement that the business serves an area does not authorize a date promise. Require a confirmed availability source before drafting a specific offer.

If the record lacks the answer, mark the gap. For the hypothetical inquiry, the draft could request the equipment identifier and location while leaving the requested date unresolved.

Use the [guide to what context an agent should read](/articles/what-context-should-an-agent-read) to define the allowed sources. Exclude unrelated customer folders from this function's access.

## Treat the incoming message as a request

Customer text belongs to the inquiry record. It should not gain authority to change the function's operating rules.

OWASP describes prompt injection as input that alters model behavior in unintended ways. It recommends separating untrusted content, restricting privileges, and validating expected output formats. [OWASP: Prompt Injection, checked 2026.10.26](https://genai.owasp.org/llmrisk/llm01-prompt-injection/)

Apply that guidance by keeping business instructions separate from the inquiry text. Do not give the drafting function permission to rewrite the service record. Validate the proposed reply against the allowed output structure.

Include a test inquiry that asks the function to ignore its rules and reveal another customer's information. The expected result is a bounded reply or escalation, with no cross-customer retrieval or disclosure.

## Prepare a reviewable reply package

The output should contain a draft, source references, missing information, and a recommended next action. Separate customer-facing text from internal review notes.

For the hypothetical equipment inquiry, use this structure:

| Output section | What belongs there |
|---|---|
| Reply draft | Acknowledge the request and ask approved intake questions |
| Source notes | Identify the service rule and intake checklist used |
| Open issue | State that next week's availability is unconfirmed |
| Next action | Ask the service coordinator to review the reply |

Do not insert internal warnings into the outgoing message. The reviewer should see them beside it. Make the final customer text easy to inspect without hiding the supporting evidence.

Keep the draft specific to the inquiry. If the customer already supplied the equipment identifier, do not ask for it again merely because the template contains that question.

## Run fixed checks before review

Have ordinary code check required sections, source identifiers, and the selected account. Compare the proposed recipient with the confirmed inquiry record.

Check for unresolved placeholders. Reject a send-ready state when the draft still contains an unfilled date, missing attachment, or unapproved price. Require a person to resolve service exceptions.

Write acceptance examples before choosing the model. Include a complete inquiry, missing location, unsupported request, duplicate submission, conflicting contact details, and unavailable source record.

For a missing required source, expect a blocked result. For a duplicate already handled, expect a no-work result pointing to the earlier preparation. Keep the expected behavior visible in the runbook.

## Let the person decide what leaves

The service coordinator should see the original inquiry, final draft, destination, sending account, and open issues. They should accept, edit, reject, or escalate the item.

If they edit the reply, attach the decision to the revised version. A changed destination or new commitment requires review of the changed action. Approval should identify the message that will be sent.

Use the [guide to who approves what an agent sends](/articles/who-approves-what-an-ai-agent-sends) for the action preview. Keep sending unavailable until the required decision exists.

If the business wants a draft-only function, stop here. Hand the accepted text to the existing sending process. Do not add mailbox write access to a function whose scope ends with preparation.

## Verify the send when sending is included

For a function scoped to send approved replies, record the returned message identifier and destination evidence. Keep the approval record linked to that action.

If the response is missing, mark the outcome uncertain. Check the destination system before attempting another send. The original inquiry and prepared reply should remain available while someone resolves the uncertainty.

Do not label a message delivered or read merely because the send request was accepted. Use the status the connected service can verify. Keep any remaining uncertainty visible to the owner.

The receipt should distinguish prepared, awaiting approval, sent, failed, and uncertain stages. Define the terms so the team knows which items still need attention.

## Record cost and accepted corrections

Give this function a monthly AI spend limit and a person who receives alerts. Bound retries for unreadable inputs and unavailable services. Preserve an explicit failure when the retry boundary is reached.

Record the selected model and a cost line for each run. Label estimates and pending charges. Keep credentials and unnecessary customer details out of the receipt.

Use [the receipt as part of the output](/articles/receipt-is-part-of-the-output) to connect the inquiry, draft, decision, and action evidence. Store the records in accounts and files the business controls.

When a reviewer corrects a recurring mistake, send the proposed correction to the rule owner. Update the approved source and its test example after acceptance. Keep one-off customer arrangements attached to that customer.

## Hand over one complete function

Ask the future operator to process a normal inquiry and a blocked one using the runbook. They should find the sources, review a draft, identify a duplicate, and explain an uncertain send.

That is the [AI systems method](/ai-systems) applied to intake: direction first, preparation in the middle, and a human check before the result leaves. Training belongs in the handoff.

To scope an intake function, [send your brief](/work#send-your-brief). Include an anonymized inquiry, your current reply, the service rules, and the point where your team must decide.


## Related: Ownership and Migration

- [What Context Should an Agent Read Before It Starts?](/articles/what-context-should-an-agent-read)
- [Who Approves What an AI Agent Sends?](/articles/who-approves-what-an-ai-agent-sends)
- [The Receipt Is Part of the Output](/articles/receipt-is-part-of-the-output)

----

```text
                  .|########||.                                       .|########||.                                       .|########||.
               |##||.      .||##|.                                 |##||.      .||##|.                                 |##||.      .||##|.
             |#|.              .|#|.                             |#|.              .|#|.                             |#|.              .|#|.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
        .#.                          .#|                    .#.                          .#|                    .#.                          .#|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
      |#             ......             #|                |#             ......             #|                |#             ......             #|
     .#           ||#########|           #|              .#           ||#########|           #|              .#           ||#########|           #|
    .#.         |######||######|.        .#.            .#.         |######||######|.        .#.            .#.         |######||######|.        .#.
    #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#            #.        .##|###|##|#|######|        .#
   ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||          ||        |##|#||||||||||||#||#|        ||
   #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.         #        |#||||||||||||||||||||#|        #.
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #        #       .#||||||||||||||||||||||||#|       #
 ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||      ||   ....|||#||||||##|#|||#|#||##||||....|. ||
 #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#      #.  .  ....|#  ....#|||   ||| .#|||  ....#. .#
 #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.     #   .  ||||#| .#####||  . .#| .#|||  ||||#   #.
.|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||    .|   |||||  #. |#|||||. ||  #. |#||. .|||||   ||
||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||    ||   |....  #. ....|#.      |. ...|. ....||   ||
#.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#    #.  .||||||##||||||##||####|||||||#||||||#|   .#
#    .||####|###########################|.     #    #    .||####|###########################|.     #    #    .||####|###########################|.     #
#      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #    #      .#||||||.#.|| # |. ..# #| #|||||#|      #
#      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #    #      .#|||||| ..  |# ## |#| ...#|#|||#|      #
#      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #    #      .#|||#|# .# .#| #| ##|.#..#|||||#|      #
#      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #    #      .#||||||############|######|||||#|      #
#   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #    #   |...||#||||||#||||#|#||||||#|||||#||| |.|  #
#. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#    #. .. ||||# .|||##|.  |#| .|| || .|||#. #|  # .#
|| |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||    || |  ...||  ...##| |  #| .|. |. #####  .. .| ||
|| ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||    || ||||| || ||||#|  .  |. |. |#. ||||| |#| || ||
.# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.    .# |.....#|....|#.||||.|||##.|#|....||.#||.#. #.
 #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#      #.|||||||#############################| ||| .#
 ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||      ||       ##||#||#||||||#||#||#||#||##.      ||
  #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #        #       .#|||||||||#||#|||||||||||#|       #
  ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||        ||       |#||||||||||||||||||||||#|       ||
  .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.        .#        |#||||||||||||||||||||#|        #.
   ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||          ||        |#||||||||||||||||||#|        ||
    #.        .######|#|#########|        .#            #.        .######|#|#########|        .#            #.        .######|#|#########|        .#
    .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.            .#.         |#####||||#####|         .#.
     |#           ||########||           #.              |#           ||########||           #.              |#           ||########||           #.
      |#             ......             #|                |#             ......             #|                |#             ......             #|
       |#.                            .#|                  |#.                            .#|                  |#.                            .#|
        |#.                          .#.                    |#.                          .#.                    |#.                          .#.
         .#|                        |#.                      .#|                        |#.                      .#|                        |#.
           |#|                    |#|                          |#|                    |#|                          |#|                    |#|
            .|#|.              .|#|.                            .|#|.              .|#|.                            .|#|.              .|#|.
               |##||.      .||##|                                  |##||.      .||##|                                  |##||.      .||##|
                 .||########||.                                      .||########||.                                      .||########||.

Scale With Search  2026  [scalewithsearch.com](https://scalewithsearch.com)
```
