> ## Documentation Index
> Fetch the complete documentation index at: https://docs.biscuit.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Sending emails: built-in address for every app

> Each Biscuit app has its own email address. Trigger sends from chat on signup, on data changes, on schedules, or from an external API call.

export const faqSchema = {
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    { "@type": "Question", "name": "Why isn't the email arriving?", "acceptedAnswer": { "@type": "Answer", "text": "Check the workflow ran (Workflows → click the workflow → look at the run history). If it ran but didn't send, the issue is most likely the recipient lookup. If it didn't run, the trigger condition isn't being met." } },
    { "@type": "Question", "name": "Why does the email land in spam?", "acceptedAnswer": { "@type": "Answer", "text": "Outgoing emails come from your app's address (<your-app-slug>@apps.bsct.so). Deliverability is generally good, but each receiving inbox applies its own filters. If users report spam folder placement, ask them to mark a Biscuit email as 'not spam' once. Most providers learn fast." } },
    { "@type": "Question", "name": "Can I use my own domain (like hello@yourcompany.com) as the sender?", "acceptedAnswer": { "@type": "Answer", "text": "Not yet. Outgoing emails always come from <your-app-slug>@apps.bsct.so. The team is tracking demand for custom sender domains." } }
  ]
};

<script type="application/ld+json" dangerouslySetInnerHTML={{__html: JSON.stringify(faqSchema)}} />

<iframe width="100%" height="400" src="https://www.youtube.com/embed/H5JS_g3fEZE" title="Sending emails to your users in Biscuit" allow="accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen />

Biscuit comes with built-in email infrastructure. You don't have to connect a third-party email service, set up SMTP, or configure DNS. Each app has its own email address (`<your-app-slug>@apps.bsct.so`), and outgoing emails come from there.

## Setting up your first email automation

<Steps>
  <Step title="Decide what triggers the email">
    Common triggers: a user signs up, a record reaches a threshold (5+ items in a list, 100+ visits, etc.), a scheduled time, or an external API call.
  </Step>

  <Step title="Open chat and describe the automation">
    Be specific about both the trigger and the message. Example: *"I want to set up email automation where the app sends a notification to the user if they have more than 5 movies in their watch list. The message should say: 'Looks like you have too many movies to watch.'"* Biscuit builds a [workflow](/workflows) that watches for the trigger and sends the email.

    <Frame>
      <img src="https://mintcdn.com/flits-886e81a8/qHJFWHw2dceIPPRt/images/sending-emails/01.webp?fit=max&auto=format&n=qHJFWHw2dceIPPRt&q=85&s=3d5b165329a86d5458557f18d4f5e1e5" alt="Chat describing an email-automation trigger and message" width="1600" height="1142" data-path="images/sending-emails/01.webp" />
    </Frame>
  </Step>

  <Step title="Confirm what was built">
    Biscuit replies with a summary of the new workflow. Open [Workflows](/workflows) in the side nav and find the workflow it created. Each step is visualized: trigger, condition, recipient lookup, email body, send.

    <Frame>
      <img src="https://mintcdn.com/flits-886e81a8/qHJFWHw2dceIPPRt/images/sending-emails/02.webp?fit=max&auto=format&n=qHJFWHw2dceIPPRt&q=85&s=e55c097cc3d51c63ab476e43de321897" alt="Workflow diagram with trigger, condition, recipient lookup, body, and send steps" width="1600" height="1060" data-path="images/sending-emails/02.webp" />
    </Frame>
  </Step>

  <Step title="Test the email">
    Trigger the condition manually (in the example above, add a 6th movie to your own watch list) and check your inbox. The email should arrive in seconds.

    <Frame>
      <img src="https://mintcdn.com/flits-886e81a8/4uMLBV3FRaBbDcYx/images/sending-emails/03.webp?fit=max&auto=format&n=4uMLBV3FRaBbDcYx&q=85&s=d4de8435edb6befff9d47b47ab945e30" alt="An email sent by the app, received in the user's Gmail inbox, with body text and an attachment" width="1600" height="1068" data-path="images/sending-emails/03.webp" />
    </Frame>
  </Step>

  <Step title="Iterate">
    If the message, timing, or trigger isn't right, open the workflow, click the step you want to change, and prompt the change in chat ("change the threshold from 5 to 10", "send 24 hours after the trigger instead of immediately", "make the subject line shorter").
  </Step>
</Steps>

## Reviewing what your app has sent

The same in-app inbox view has a **Sent** tab listing every email your app has sent, with recipient, subject, time, and body. Use it to confirm a send went out, audit what users actually received, or open a thread to see the full content.

<Frame>
  <img src="https://mintcdn.com/flits-886e81a8/4uMLBV3FRaBbDcYx/images/sending-emails/04.webp?fit=max&auto=format&n=4uMLBV3FRaBbDcYx&q=85&s=2a3f13a5b29f8c1ce407709b7f5d7bda" alt="Sent view in the app, showing a list of outgoing emails to a user along with the body of one selected message" width="1600" height="1033" data-path="images/sending-emails/04.webp" />
</Frame>

## Routing replies

By default, replies to your app's emails route back to the app's inbox at `<your-app-slug>@apps.bsct.so`, where workflows can pick them up and trigger automations. To send replies somewhere else (e.g. a founder's email), set a Reply-To on the email step. Ask in chat: *"Set the reply-to on this email to [founders@yourcompany.com](mailto:founders@yourcompany.com)."*

## Common email automations

Emails are an action inside [workflows](/workflows), so anything that can trigger a workflow can send an email. The common patterns:

* **Data events.** A record was created, updated, or deleted: a new sign-up, a status change, a payment row appearing, an inbound email landing in your inbox.
  *"When a User is created, send them a welcome email."*
  *"When a Payment is created, send the buyer a receipt."*

* **Schedules.** A recurring timer for digests, reminders, or summaries.
  *"Every Monday at 9am, send each user a summary of their activity from the past week."*

* **User actions.** Someone clicked a button, submitted a form, or performed any other UI action.
  *"When a user clicks 'Request demo' on the homepage, email the team the lead."*

* **External calls.** A webhook from a connected service (a calendar, a form provider, a CRM) or an HTTP endpoint your app exposes.
  *"When Calendly reports a new booking, email me the prospect's notes."*

In all cases, you describe the trigger and the email together in chat, and Biscuit wires up the workflow.

<Tip>
  **Try this prompt**

  ```
  When a User signs up, send them a welcome email from the app. The subject should greet them by first name, and the body should thank them for joining and link to our getting-started guide.
  ```
</Tip>

## FAQ

<AccordionGroup>
  <Accordion title="Why isn't the email arriving?">
    Check the workflow ran (*Workflows* → click the workflow → look at the run history). If it ran but didn't send, the issue is most likely the recipient lookup. If it didn't run, the trigger condition isn't being met.
  </Accordion>

  <Accordion title="Why does the email land in spam?">
    Outgoing emails come from your app's address (`<your-app-slug>@apps.bsct.so`). Deliverability is generally good, but each receiving inbox applies its own filters. If users report spam folder placement, ask them to mark a Biscuit email as 'not spam' once. Most providers learn fast.
  </Accordion>

  <Accordion title="Can I use my own domain (like hello@yourcompany.com) as the sender?">
    Not yet. Outgoing emails always come from `<your-app-slug>@apps.bsct.so`. The team is tracking demand for custom sender domains.
  </Accordion>
</AccordionGroup>

## Up next

<Columns cols={3}>
  <Card title="Receiving emails" href="/receiving-emails" icon="inbox">
    Your app has its own email address.
  </Card>

  <Card title="Workflows" href="/workflows" icon="diagram-project">
    The logic of your app, drawn so you can see and change it.
  </Card>

  <Card title="Build your first project" href="/first-project" icon="rocket">
    From prompt to a live app on a custom domain.
  </Card>
</Columns>
