You designed it in Figma. Figma Make turned it into a working app. Now your users need emails that look just as polished.Dreamlit generates branded email templates with AI, matching your colors, logo, fonts, and visual style through Brand Styles. It securely connects to your database and reacts to changes:
New row in users → welcome email
New row in orders → receipt email
New row in feedback → follow-up email
Your Figma Make app handles the product. Dreamlit handles the communication.
A Figma Make app connected to Supabase or Postgres (Neon, Railway, Aurora, etc.)
5 minutes
Not sure which database to use? We recommend Supabase. It connects to Dreamlit in two clicks via OAuth, and you get auth, realtime subscriptions, and a generous free tier.
Step 2: Verify your Figma Make app writes the data
Here’s the key insight: Dreamlit securely connects to your database and reacts to changes, not your code. When a new row appears in your users table, Dreamlit sends the email automatically.
If you’re using Supabase Auth, users are automatically added to the auth.users table when they sign up. No extra table needed.
If your Figma Make app already creates user records on signup, you’re done. No changes needed.Common table patterns that work well:
Dreamlit generates email templates independently of your Figma Make app. This is intentional: email design has different constraints than web UI (client compatibility, dark mode, mobile rendering).To match your brand:
Set up a Brand Style in Dreamlit with your colors, logo, and fonts
When creating workflows, mention your style: “Send a welcome email with a minimal, modern design”
Edit the generated template directly in Dreamlit’s visual editor
This is the core benefit. Your Figma Make app writes data to the database. That’s it. Dreamlit reacts to those writes and handles notifications separately.No API calls from your app. No email provider SDKs. No secrets to manage.
Any workflow that triggers on a database change. Check out our use cases for example prompts across welcome emails, order confirmations, reminders, internal alerts, and more.
How do I know what tables my Figma Make app created?
Check your database directly. If you’re using Supabase, go to Table Editor in the Supabase dashboard. You’ll see all tables your app uses. Dreamlit also shows you available tables when you create a workflow.
Usually no. Dreamlit reacts to database changes, so if your app already writes the data you need, you’re set. If you need to track something new (like form submissions), you’ll need to add that table or field to your app.
Will my emails keep working after I update my Figma design?
Yes. Dreamlit connects to your database, not your Figma Make deployment. Update your design and redeploy as often as you like. Your email workflows keep running.
Use the preview feature to send test emails to yourself with real data from your database. Your workflow won’t email actual users until you publish it.
Dreamlit works alongside traditional email providers. Since Dreamlit takes a fundamentally different approach (database-driven, AI-generated workflows), you don’t need to migrate. Try Dreamlit for your next workflow and keep using your current provider for everything else.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Dreamlit AI","colors":{"primary":"#211F26","light":"#FFFFFF","dark":"#211F26"},"logo":{"light":"https://mintcdn.com/notikaai/5oYlSr6CYnDtP1nH/logo/logo.svg?fit=max\u0026auto=format\u0026n=5oYlSr6CYnDtP1nH\u0026q=85\u0026s=6a42bf3e0ba53bffd9f71388b245160d","dark":"https://mintcdn.com/notikaai/5oYlSr6CYnDtP1nH/logo/logowhite.svg?fit=max\u0026auto=format\u0026n=5oYlSr6CYnDtP1nH\u0026q=85\u0026s=4ad6a9428edeca551e0861c8feeb4d5c"},"favicon":"https://mintcdn.com/notikaai/5oYlSr6CYnDtP1nH/favicon.svg?fit=max\u0026auto=format\u0026n=5oYlSr6CYnDtP1nH\u0026q=85\u0026s=900c3dce9e6121983352a882067426f0","navbar":{"links":[{"href":"mailto:support@dreamlit.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.dreamlit.ai"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/dreamlit-ai"}},"seo":{"indexing":"all"},"integrations":{"ga4":{"measurementId":"G-HEMM1933Q9"},"posthog":{"apiKey":"phc_1AsHWVve9XKNlHmx3SMiEwnIy0fxwNbRYnR8lEHoEaz"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity",{"title":"llms.txt","description":"Short LLM-readable index for Dreamlit docs and product pages.","href":"/llms.txt"},{"title":"llms-full.txt","description":"Full LLM-readable canonical URL inventory.","href":"/llms-full.txt"}],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"notikaai","hasAudioNarration":false,"actualSubdomain":"notikaai","customDomains":["dreamlit.ai"],"gitSource":{"type":"github","owner":"dreamlit-ai","repo":"webapp","deployBranch":"prod","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"issues":true,"edits":true},"entitlements":{},"buildId":"6af21f1772ceb183dca289bf","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"Dreamlit Engine (Legacy)","count":59},{"language":"default","tag":"MCP","count":15},{"language":"default","tag":"Quick Start","count":14},{"language":"default","tag":"Learning Center","count":11},{"language":"default","tag":"Configuration","count":8},{"language":"default","tag":"Dreamlit","count":8},{"language":"default","tag":"Resources","count":8},{"language":"default","tag":"Guides","count":7},{"language":"default","tag":"Step types","count":7},{"language":"default","tag":"Get Started","count":5}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"guides/figma-make-email","slug":"/guides/figma-make-email","pageMetadata":{"title":"Figma Make Email: Design-to-App Meets AI-Powered Notifications","sidebarTitle":"Figma Make Apps","description":"Add email to your Figma Make app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.","icon":"figma","href":"/guides/figma-make-email"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Add email to your Figma Make app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,blockquote:`blockquote`,code:`code`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,Frame,Heading,Note,OptimizedImage,Step,Steps,Tab,Table,Tabs,Tip}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Step)_missingMdxReference(`Step`,true);if(!Steps)_missingMdxReference(`Steps`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Heading,{level:`2`,id:`how-do-i-add-email-to-my-figma-make-app`,children:`How do I add email to my Figma Make app?`}),`\n`,_jsxs(_components.p,{children:[`You designed it in Figma. `,_jsx(_components.a,{href:`https://www.figma.com/make/`,children:`Figma Make`}),` turned it into a working app. Now your users need emails that look just as polished.`]}),`\n`,_jsxs(_components.p,{children:[`Dreamlit generates branded email templates with AI, matching your colors, logo, fonts, and visual style through `,_jsx(_components.a,{href:`/configuration/email/brand-styles`,children:`Brand Styles`}),`. It securely connects to your database and reacts to changes:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`New row in `,_jsx(_components.code,{children:`users`}),` → welcome email`]}),`\n`,_jsxs(_components.li,{children:[`New row in `,_jsx(_components.code,{children:`orders`}),` → receipt email`]}),`\n`,_jsxs(_components.li,{children:[`New row in `,_jsx(_components.code,{children:`feedback`}),` → follow-up email`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Your Figma Make app handles the product. Dreamlit handles the communication.`}),`\n`,_jsx(`p`,{align:`center`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/notikaai/0cbEDQN6bHZS3gTL/images/figma-dreamlit.png?fit=max\u0026auto=format\u0026n=0cbEDQN6bHZS3gTL\u0026q=85\u0026s=f52b5fc087d23a47507d57c9836a1e92`,alt:`Figma Make + Dreamlit`,style:{borderRadius:`12px`,maxHeight:`300px`},\"data-og-width\":`762`,width:`762`,\"data-og-height\":`501`,height:`501`,\"data-path\":`images/figma-dreamlit.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/notikaai/0cbEDQN6bHZS3gTL/images/figma-dreamlit.png?w=280\u0026fit=max\u0026auto=format\u0026n=0cbEDQN6bHZS3gTL\u0026q=85\u0026s=1d23e59b6f8a3d68d1e7eb7db91b6f51 280w, https://mintcdn.com/notikaai/0cbEDQN6bHZS3gTL/images/figma-dreamlit.png?w=560\u0026fit=max\u0026auto=format\u0026n=0cbEDQN6bHZS3gTL\u0026q=85\u0026s=8c2c24ea41c2bb65ba4b1ce52c4bbfa5 560w, https://mintcdn.com/notikaai/0cbEDQN6bHZS3gTL/images/figma-dreamlit.png?w=840\u0026fit=max\u0026auto=format\u0026n=0cbEDQN6bHZS3gTL\u0026q=85\u0026s=62d6000e28cd472cf6a89d200ab6532e 840w, https://mintcdn.com/notikaai/0cbEDQN6bHZS3gTL/images/figma-dreamlit.png?w=1100\u0026fit=max\u0026auto=format\u0026n=0cbEDQN6bHZS3gTL\u0026q=85\u0026s=a80e03fd3851a9fcd86d7c0efea11e73 1100w, https://mintcdn.com/notikaai/0cbEDQN6bHZS3gTL/images/figma-dreamlit.png?w=1650\u0026fit=max\u0026auto=format\u0026n=0cbEDQN6bHZS3gTL\u0026q=85\u0026s=fd7d60d496f5e3cceede7b7229759d26 1650w, https://mintcdn.com/notikaai/0cbEDQN6bHZS3gTL/images/figma-dreamlit.png?w=2500\u0026fit=max\u0026auto=format\u0026n=0cbEDQN6bHZS3gTL\u0026q=85\u0026s=21911654ef1d4f03b1db84bfadf52f4c 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`who-is-this-guide-for`,children:`Who is this guide for?`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Designers who ship`}),` and don’t want to become email infrastructure experts`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Figma Make builders`}),` who want on-brand notifications without context switching`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Teams`}),` who care about visual consistency between their app and their emails`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`why-use-dreamlit-instead-of-building-email-myself`,children:`Why use Dreamlit instead of building email myself?`}),`\n`,_jsx(_components.p,{children:`Building email sounds simple until you’re three hours deep configuring SMTP. Here’s what you’d need to handle yourself:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Preview with real data`}),` — How do you see what the email looks like with actual user info before sending?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Delivery tracking`}),` — Who opened it? Who clicked? Who bounced?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Bounce handling`}),` — What happens when an email address doesn’t exist?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`DNS records`}),` — Are you setting up DKIM and SPF for deliverability?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Retry logic`}),` — What happens when your email provider has an outage?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Scheduled sends`}),` — What about drip sequences or digests?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Unified dashboard`}),` — How do you see all your workflows performing in one place?`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Copy iteration`}),` — How do you tweak email wording without redeploying?`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Dreamlit handles all of this. You describe what you want. We handle the plumbing.`}),`\n`,_jsx(Heading,{level:`2`,id:`what-do-i-need-before-starting`,children:`What do I need before starting?`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A Figma Make app connected to `,_jsx(_components.strong,{children:`Supabase`}),` or `,_jsx(_components.strong,{children:`Postgres`}),` (Neon, Railway, Aurora, etc.)`]}),`\n`,_jsx(_components.li,{children:`5 minutes`}),`\n`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Not sure which database to use?`}),` We recommend Supabase. It connects to Dreamlit in two clicks via OAuth, and you get auth, realtime subscriptions, and a generous free tier.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-i-connect-dreamlit-to-my-database`,children:`How do I connect Dreamlit to my database?`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Supabase (recommended)`,id:`supabase-recommended`,children:[_jsx(_components.p,{children:`Connecting Supabase is two clicks:`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Create a Dreamlit account`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.a,{href:`https://app.dreamlit.ai`,children:`app.dreamlit.ai`}),` and sign up.`]})}),_jsxs(Step,{title:`Connect via OAuth`,children:[_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Connect Supabase`}),` and authorize the connection.`]}),_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/notikaai/adckcWobFeOatSLI/images/supabaseconnect.gif?s=fae094684d1c16f9d6ba024157359ea0`,alt:`Connecting Supabase via OAuth`,\"data-og-width\":`1408`,width:`1408`,\"data-og-height\":`1080`,height:`1080`,\"data-path\":`images/supabaseconnect.gif`,\"data-optimize\":`true`,\"data-opv\":`3`})})]})]}),_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`That’s it. 2 clicks and you’re connected.`}),` Dreamlit can now react to changes in your Supabase database and trigger workflows.`]}),_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Need auth emails?`}),` (password reset, magic links, email verification) Check out our `,_jsx(_components.a,{href:`/guides/supabase-auth-emails`,children:`Supabase Auth Emails guide`}),` for one-click setup.`]})})]}),_jsxs(Tab,{title:`Postgres (Neon/Railway/Aurora/etc.)`,id:`postgres-neon%2Frailway%2Faurora%2Fetc`,children:[_jsx(_components.p,{children:`If your Figma Make app uses a different Postgres provider:`}),_jsxs(Steps,{children:[_jsx(Step,{title:`Create a Dreamlit account`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.a,{href:`https://app.dreamlit.ai`,children:`app.dreamlit.ai`}),` and sign up.`]})}),_jsx(Step,{title:`Get your connection string`,children:_jsx(_components.p,{children:`Copy your Postgres connection string from your provider dashboard.`})}),_jsx(Step,{title:`Connect in Dreamlit`,children:_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Connect Postgres`}),` and paste your connection string. Follow the guided setup to grant Dreamlit the minimal permissions it needs.`]})})]}),_jsxs(_components.p,{children:[`For detailed setup instructions, see `,_jsx(_components.a,{href:`/configuration/data-sources/postgres#commands-to-run-to-set-up-your-dreamlit_app-database-user`,children:`commands to set up your database user`}),`.`]})]})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-i-create-my-first-email-workflow`,children:`How do I create my first email workflow?`}),`\n`,_jsx(_components.p,{children:`Here’s an example: setting up a welcome email that sends when someone signs up.`}),`\n`,_jsx(Heading,{level:`3`,id:`step-1-create-the-workflow-in-dreamlit`,children:`Step 1: Create the workflow in Dreamlit`}),`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Create Workflow`}),` and describe what you want:`]}),`\n`,_jsxs(_components.blockquote,{children:[`\n`,_jsx(_components.p,{children:`“Send a welcome email when a new user signs up”`}),`\n`]}),`\n`,_jsx(_components.p,{children:`The AI generates everything: the database trigger, email template, and copy.`}),`\n`,_jsx(Frame,{caption:`The AI generates your workflow automatically`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/notikaai/ND5vtH9yB3HGk0VQ/images/new-workflow.gif?s=cf7aaa6638f6349bb3e9cf79f7512383`,alt:`AI generating a welcome email workflow`,\"data-og-width\":`1784`,width:`1784`,\"data-og-height\":`720`,height:`720`,\"data-path\":`images/new-workflow.gif`,\"data-optimize\":`true`,\"data-opv\":`3`})}),`\n`,_jsx(Heading,{level:`3`,id:`step-2-verify-your-figma-make-app-writes-the-data`,children:`Step 2: Verify your Figma Make app writes the data`}),`\n`,_jsxs(_components.p,{children:[`Here’s the key insight: `,_jsx(_components.strong,{children:`Dreamlit securely connects to your database and reacts to changes, not your code.`}),` When a new row appears in your `,_jsx(_components.code,{children:`users`}),` table, Dreamlit sends the email automatically.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`If you’re using Supabase Auth, users are automatically added to the `,_jsx(_components.code,{children:`auth.users`}),` table when they sign up. No extra table needed.`]})}),`\n`,_jsx(_components.p,{children:`If your Figma Make app already creates user records on signup, you’re done. No changes needed.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Common table patterns that work well:`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Table`}),_jsx(_components.th,{children:`Fields`}),_jsx(_components.th,{children:`Triggers`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`users`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`email`}),`, `,_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`created_at`})]}),_jsx(_components.td,{children:`Welcome emails, onboarding sequences`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`orders`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`user_id`}),`, `,_jsx(_components.code,{children:`total`}),`, `,_jsx(_components.code,{children:`items`}),`, `,_jsx(_components.code,{children:`created_at`})]}),_jsx(_components.td,{children:`Order confirmations, receipts`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`feedback`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`user_id`}),`, `,_jsx(_components.code,{children:`message`}),`, `,_jsx(_components.code,{children:`created_at`})]}),_jsx(_components.td,{children:`Thank you emails, internal alerts`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`invitations`})}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`email`}),`, `,_jsx(_components.code,{children:`invited_by`}),`, `,_jsx(_components.code,{children:`created_at`})]}),_jsx(_components.td,{children:`Invite emails`})]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`step-3-preview-and-publish`,children:`Step 3: Preview and publish`}),`\n`,_jsxs(_components.p,{children:[`Preview your email with real data from your database, then click `,_jsx(_components.strong,{children:`Publish`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-email-templates-work-with-my-figma-make-design`,children:`How do email templates work with my Figma Make design?`}),`\n`,_jsx(_components.p,{children:`Since Figma Make generates your app’s UI, you might be thinking about visual consistency. Here’s how Dreamlit fits in.`}),`\n`,_jsx(Heading,{level:`3`,id:`email-templates-are-separate-from-your-app`,children:`Email templates are separate from your app`}),`\n`,_jsx(_components.p,{children:`Dreamlit generates email templates independently of your Figma Make app. This is intentional: email design has different constraints than web UI (client compatibility, dark mode, mobile rendering).`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`To match your brand:`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Set up a `,_jsx(_components.a,{href:`/configuration/email/brand-styles`,children:`Brand Style`}),` in Dreamlit with your colors, logo, and fonts`]}),`\n`,_jsx(_components.li,{children:`When creating workflows, mention your style: “Send a welcome email with a minimal, modern design”`}),`\n`,_jsx(_components.li,{children:`Edit the generated template directly in Dreamlit’s visual editor`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`your-app-doesn’t-need-to-know-about-email`,children:`Your app doesn’t need to know about email`}),`\n`,_jsx(_components.p,{children:`This is the core benefit. Your Figma Make app writes data to the database. That’s it. Dreamlit reacts to those writes and handles notifications separately.`}),`\n`,_jsx(_components.p,{children:`No API calls from your app. No email provider SDKs. No secrets to manage.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`what-other-workflows-can-i-build`,children:`What other workflows can I build?`}),`\n`,_jsxs(_components.p,{children:[`Any workflow that triggers on a database change. Check out our `,_jsx(_components.a,{href:`/getting-started/use-cases`,children:`use cases`}),` for example prompts across welcome emails, order confirmations, reminders, internal alerts, and more.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`how-do-i-send-from-my-own-domain`,children:`How do I send from my own domain?`}),`\n`,_jsxs(_components.p,{children:[`By default, emails send from Dreamlit’s domain. To send from your own domain (like `,_jsx(_components.code,{children:`hello@yourapp.com`}),`), set up a custom email domain.`]}),`\n`,_jsxs(Steps,{children:[_jsx(Step,{title:`Add your domain`,children:_jsxs(_components.p,{children:[`Go to `,_jsx(_components.strong,{children:`Settings → Email Domains`}),` and click `,_jsx(_components.strong,{children:`Add domain`}),`. Enter your domain (we recommend a subdomain like `,_jsx(_components.code,{children:`mail.yourapp.com`}),`).`]})}),_jsxs(Step,{title:`Verify automatically`,children:[_jsxs(_components.p,{children:[`Dreamlit can automatically configure your DNS records. Click `,_jsx(_components.strong,{children:`Verify with your DNS provider`}),`, sign in, and authorize the changes.`]}),_jsx(Frame,{caption:`Automatic DNS setup, no manual records needed`,children:_jsx(OptimizedImage,{src:`https://mintcdn.com/notikaai/ND5vtH9yB3HGk0VQ/images/auto-dns.gif?s=ce1cca7fadcd17e41cb37a8fdce2753d`,alt:`Automated DNS verification flow`,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`720`,height:`720`,\"data-path\":`images/auto-dns.gif`,\"data-optimize\":`true`,\"data-opv\":`3`})}),_jsx(Tip,{children:_jsx(_components.p,{children:`If your DNS provider isn’t supported for automatic setup, you can add the records manually. Dreamlit shows you exactly what to add.`})})]}),_jsx(Step,{title:`Start sending`,children:_jsx(_components.p,{children:`Once verified, select your domain when creating email workflows. Your emails will now come from your own brand.`})})]}),`\n`,_jsxs(_components.p,{children:[`This improves deliverability and looks more professional to your users. `,_jsx(_components.a,{href:`/configuration/email/custom-domain`,children:`Full domain setup guide →`})]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`faq`,children:`FAQ`}),`\n`,_jsx(Heading,{level:`3`,id:`how-do-i-know-what-tables-my-figma-make-app-created`,children:`How do I know what tables my Figma Make app created?`}),`\n`,_jsxs(_components.p,{children:[`Check your database directly. If you’re using Supabase, go to `,_jsx(_components.strong,{children:`Table Editor`}),` in the `,_jsx(_components.a,{href:`https://supabase.com/dashboard`,children:`Supabase dashboard`}),`. You’ll see all tables your app uses. Dreamlit also shows you available tables when you create a workflow.`]}),`\n`,_jsx(Heading,{level:`3`,id:`do-i-need-to-modify-my-figma-make-app`,children:`Do I need to modify my Figma Make app?`}),`\n`,_jsx(_components.p,{children:`Usually no. Dreamlit reacts to database changes, so if your app already writes the data you need, you’re set. If you need to track something new (like form submissions), you’ll need to add that table or field to your app.`}),`\n`,_jsx(Heading,{level:`3`,id:`why-aren’t-my-emails-sending`,children:`Why aren’t my emails sending?`}),`\n`,_jsx(_components.p,{children:`A few things to check:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Is your workflow published?`}),` Saved workflows don’t run until you click Publish.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Is the trigger table correct?`}),` Verify it matches the actual table name in your database.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Is data being written?`}),` Check your database to confirm rows are created when users take actions.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Try the preview.`}),` Use the preview to test with sample data.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`can-i-use-this-for-password-resets-and-auth-emails`,children:`Can I use this for password resets and auth emails?`}),`\n`,_jsxs(_components.p,{children:[`Yes, if you’re using Supabase Auth. Check out our `,_jsx(_components.a,{href:`/guides/supabase-auth-emails`,children:`Supabase Auth Emails guide`}),` for one-click setup.`]}),`\n`,_jsx(Heading,{level:`3`,id:`will-my-emails-keep-working-after-i-update-my-figma-design`,children:`Will my emails keep working after I update my Figma design?`}),`\n`,_jsx(_components.p,{children:`Yes. Dreamlit connects to your database, not your Figma Make deployment. Update your design and redeploy as often as you like. Your email workflows keep running.`}),`\n`,_jsx(Heading,{level:`3`,id:`can-i-send-slack-notifications-too`,children:`Can I send Slack notifications too?`}),`\n`,_jsxs(_components.p,{children:[`Yes. Dreamlit supports Slack alongside email. Describe what you want: “Notify our team on Slack when a new order comes in.” `,_jsx(_components.a,{href:`/configuration/slack`,children:`Learn more about Slack →`})]}),`\n`,_jsx(Heading,{level:`3`,id:`how-do-i-test-without-emailing-real-users`,children:`How do I test without emailing real users?`}),`\n`,_jsx(_components.p,{children:`Use the preview feature to send test emails to yourself with real data from your database. Your workflow won’t email actual users until you publish it.`}),`\n`,_jsx(Heading,{level:`3`,id:`what-if-i’m-already-using-resend-or-sendgrid`,children:`What if I’m already using Resend or SendGrid?`}),`\n`,_jsx(_components.p,{children:`Dreamlit works alongside traditional email providers. Since Dreamlit takes a fundamentally different approach (database-driven, AI-generated workflows), you don’t need to migrate. Try Dreamlit for your next workflow and keep using your current provider for everything else.`}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`next-steps`,children:`Next steps`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`Supabase Auth emails`,icon:`shield-keyhole`,href:`/guides/supabase-auth-emails`,children:_jsx(_components.p,{children:`Set up password reset, magic links, and more`})}),_jsx(Card,{title:`Email domain setup`,icon:`at`,href:`/configuration/email/custom-domain`,children:_jsx(_components.p,{children:`Send from your own domain`})}),_jsx(Card,{title:`Use cases`,icon:`lightbulb`,href:`/getting-started/use-cases`,children:_jsx(_components.p,{children:`More workflow examples`})}),_jsx(Card,{title:`Get support`,icon:`headset`,href:`/resources/getting-support`,children:_jsx(_components.p,{children:`We’re here to help`})})]}),`\n`,_jsx(Heading,{level:`2`,id:`references`,children:`References`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://www.figma.com/make/`,children:`Figma Make`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/configuration/data-sources/supabase`,children:`Dreamlit Supabase integration`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/configuration/data-sources/postgres`,children:`Dreamlit Postgres setup guide`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`https://supabase.com/docs/guides/auth/auth-smtp`,children:`Supabase Auth SMTP docs`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/getting-started/use-cases`,children:`Dreamlit use cases`})}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(_components.p,{children:`Last validated: 2026-04-12`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Figma Make Email: Design-to-App Meets AI-Powered Notifications","sidebarTitle":"Figma Make Apps","description":"Add email to your Figma Make app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.","icon":"figma","href":"/guides/figma-make-email"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How do I add email to my Figma Make app?","slug":"how-do-i-add-email-to-my-figma-make-app","depth":2,"children":[]},{"title":"Who is this guide for?","slug":"who-is-this-guide-for","depth":2,"children":[]},{"title":"Why use Dreamlit instead of building email myself?","slug":"why-use-dreamlit-instead-of-building-email-myself","depth":2,"children":[]},{"title":"What do I need before starting?","slug":"what-do-i-need-before-starting","depth":2,"children":[]},{"title":"How do I connect Dreamlit to my database?","slug":"how-do-i-connect-dreamlit-to-my-database","depth":2,"children":[]},{"title":"How do I create my first email workflow?","slug":"how-do-i-create-my-first-email-workflow","depth":2,"children":[{"title":"Step 1: Create the workflow in Dreamlit","slug":"step-1-create-the-workflow-in-dreamlit","depth":3,"children":[]},{"title":"Step 2: Verify your Figma Make app writes the data","slug":"step-2-verify-your-figma-make-app-writes-the-data","depth":3,"children":[]},{"title":"Step 3: Preview and publish","slug":"step-3-preview-and-publish","depth":3,"children":[]}]},{"title":"How do email templates work with my Figma Make design?","slug":"how-do-email-templates-work-with-my-figma-make-design","depth":2,"children":[{"title":"Email templates are separate from your app","slug":"email-templates-are-separate-from-your-app","depth":3,"children":[]},{"title":"Your app doesn’t need to know about email","slug":"your-app-doesn’t-need-to-know-about-email","depth":3,"children":[]}]},{"title":"What other workflows can I build?","slug":"what-other-workflows-can-i-build","depth":2,"children":[]},{"title":"How do I send from my own domain?","slug":"how-do-i-send-from-my-own-domain","depth":2,"children":[]},{"title":"FAQ","slug":"faq","depth":2,"children":[{"title":"How do I know what tables my Figma Make app created?","slug":"how-do-i-know-what-tables-my-figma-make-app-created","depth":3,"children":[]},{"title":"Do I need to modify my Figma Make app?","slug":"do-i-need-to-modify-my-figma-make-app","depth":3,"children":[]},{"title":"Why aren’t my emails sending?","slug":"why-aren’t-my-emails-sending","depth":3,"children":[]},{"title":"Can I use this for password resets and auth emails?","slug":"can-i-use-this-for-password-resets-and-auth-emails","depth":3,"children":[]},{"title":"Will my emails keep working after I update my Figma design?","slug":"will-my-emails-keep-working-after-i-update-my-figma-design","depth":3,"children":[]},{"title":"Can I send Slack notifications too?","slug":"can-i-send-slack-notifications-too","depth":3,"children":[]},{"title":"How do I test without emailing real users?","slug":"how-do-i-test-without-emailing-real-users","depth":3,"children":[]},{"title":"What if I’m already using Resend or SendGrid?","slug":"what-if-i’m-already-using-resend-or-sendgrid","depth":3,"children":[]}]},{"title":"Next steps","slug":"next-steps","depth":2,"children":[]},{"title":"References","slug":"references","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"notikaai","siteName":"Dreamlit AI","title":"Figma Make Email: Design-to-App Meets AI-Powered Notifications - Dreamlit AI","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-08-18T04:42:55.261Z","originalFileLocation":"guides/figma-make-email.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Add email to your Figma Make app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Dreamlit AI\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Figma Make Email: Design-to-App Meets AI-Powered Notifications - Dreamlit AI\">\u003cmeta data-mint-head property=\"og:description\" content=\"Add email to your Figma Make app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Dreamlit AI\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://dreamlit.ai/docs/guides/figma-make-email\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://notikaai.mintlify.site/docs/_mintlify/api/og/v2?division=Guides\u0026amp;title=Figma+Make+Email%3A+Design-to-App+Meets+AI-Powered+Notifications\u0026amp;description=Add+email+to+your+Figma+Make+app+in+minutes.+Describe+what+you+want+in+plain+English%2C+and+Dreamlit+builds+the+workflow.\u0026amp;theme=cd9765a2269f5674b365d03b\u0026amp;signature=31d3dd824dccd3624799cb06ecbcaa0e48e0f55e34258655295817574e010f56\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Figma Make Email: Design-to-App Meets AI-Powered Notifications - Dreamlit AI\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Add email to your Figma Make app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://notikaai.mintlify.site/docs/_mintlify/api/og/v2?division=Guides\u0026amp;title=Figma+Make+Email%3A+Design-to-App+Meets+AI-Powered+Notifications\u0026amp;description=Add+email+to+your+Figma+Make+app+in+minutes.+Describe+what+you+want+in+plain+English%2C+and+Dreamlit+builds+the+workflow.\u0026amp;theme=cd9765a2269f5674b365d03b\u0026amp;signature=31d3dd824dccd3624799cb06ecbcaa0e48e0f55e34258655295817574e010f56\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/notikaai/HoOX77VHSfRwGtal/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Dreamlit AI\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#211F26\">\u003clink data-mint-head rel=\"canonical\" href=\"https://dreamlit.ai/docs/guides/figma-make-email\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/guides/figma-make-email.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://dreamlit.ai/#organization\",\"name\":\"Dreamlit AI\",\"url\":\"https://dreamlit.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/notikaai/5oYlSr6CYnDtP1nH/logo/logo.svg?fit=max\u0026auto=format\u0026n=5oYlSr6CYnDtP1nH\u0026q=85\u0026s=6a42bf3e0ba53bffd9f71388b245160d\"}},{\"@type\":\"WebSite\",\"@id\":\"https://dreamlit.ai/docs#website\",\"name\":\"Dreamlit AI\",\"url\":\"https://dreamlit.ai/docs\",\"publisher\":{\"@id\":\"https://dreamlit.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://dreamlit.ai/docs/guides/figma-make-email#webpage\",\"url\":\"https://dreamlit.ai/docs/guides/figma-make-email\",\"name\":\"Figma Make Email: Design-to-App Meets AI-Powered Notifications\",\"description\":\"Add email to your Figma Make app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\",\"dateModified\":\"2026-08-18T04:42:55.261Z\",\"isPartOf\":{\"@id\":\"https://dreamlit.ai/docs#website\"},\"breadcrumb\":{\"@id\":\"https://dreamlit.ai/docs/guides/figma-make-email#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://dreamlit.ai/docs/guides/figma-make-email#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Guides\",\"item\":\"https://dreamlit.ai/docs/guides/supabase-auth-emails\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Figma Make Email: Design-to-App Meets AI-Powered Notifications\",\"item\":\"https://dreamlit.ai/docs/guides/figma-make-email\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://dreamlit.ai/docs/guides/figma-make-email#article\",\"headline\":\"Figma Make Email: Design-to-App Meets AI-Powered Notifications\",\"name\":\"Figma Make Email: Design-to-App Meets AI-Powered Notifications\",\"description\":\"Add email to your Figma Make app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.\",\"url\":\"https://dreamlit.ai/docs/guides/figma-make-email\",\"mainEntityOfPage\":{\"@id\":\"https://dreamlit.ai/docs/guides/figma-make-email#webpage\"},\"dateModified\":\"2026-08-18T04:42:55.261Z\",\"publisher\":{\"@id\":\"https://dreamlit.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://dreamlit.ai/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Dreamlit AI\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Dreamlit AI\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/docs/guides/figma-make-email.md","siteName":"Dreamlit AI","nav":{"global":null,"tabs":[{"tab":"Dreamlit","icon":"rocket","pages":[{"title":"Dreamlit","href":"/introduction"}]},{"tab":"Dreamlit Engine (Legacy)","icon":"gears","groups":[{"group":"Get Started","pages":[{"title":"Dreamlit Engine","icon":"book-open","href":"/getting-started/introduction"},{"title":"Use cases","icon":"lightbulb","href":"/getting-started/use-cases"},{"title":"How it works","icon":"gears","href":"/getting-started/how-it-works"},{"title":"FAQ","icon":"circle-question","href":"/getting-started/faq"},{"title":"Quickstart","icon":"rocket","href":"/getting-started/quickstart"}]},{"group":"Dreamlit for...","pages":[{"title":"For vibe coders","href":"/getting-started/for-vibe-coders"},{"title":"For developers","href":"/getting-started/for-developers"},{"title":"For product teams","href":"/getting-started/for-product-teams"}]},{"group":"Guides","pages":[{"title":"How to Set Up Supabase Auth Emails with Dreamlit","sidebarTitle":"Supabase Auth Emails","icon":"bolt","href":"/guides/supabase-auth-emails"},{"title":"How to Add Emails to Your Lovable App (The Easy Way)","sidebarTitle":"Lovable Apps","icon":"heart","href":"/guides/lovable-email"},{"title":"Bolt.new Email: Send Notifications Without the Infrastructure","sidebarTitle":"Bolt.new Apps","icon":"bold","href":"/guides/bolt-email"},{"title":"Cursor Email: Send Notifications Without Breaking Your Flow","sidebarTitle":"Cursor Apps","icon":"code","href":"/guides/cursor-email"},{"title":"How to Add Emails to Your Replit App (The Easy Way)","sidebarTitle":"Replit Apps","icon":"laptop-code","href":"/guides/replit-email"},{"title":"v0 Email: Send Notifications by Describing What You Want","sidebarTitle":"v0 Apps","description":"Add email to your v0 app in minutes. Describe what you want in plain English, and Dreamlit builds the workflow.","icon":"sparkles","href":"/guides/v0-email"},{"title":"Figma Make Email: Design-to-App Meets AI-Powered Notifications","sidebarTitle":"Figma Make Apps","icon":"figma","href":"/guides/figma-make-email"}]},{"group":"Configuration","pages":[{"group":"Data Sources","pages":[{"title":"Supabase","description":"How Dreamlit integrates with Supabase","href":"/configuration/data-sources/supabase"},{"title":"PostgreSQL","href":"/configuration/data-sources/postgres"},{"title":"Shopify","href":"/configuration/data-sources/shopify"}]},{"group":"Email","pages":[{"title":"Overview","href":"/configuration/email/index"},{"title":"Custom domain","sidebarTitle":"Custom domain","href":"/configuration/email/custom-domain"},{"title":"Brand styles","sidebarTitle":"Brand styles","href":"/configuration/email/brand-styles"},{"title":"Managing unsubscribed contacts","href":"/configuration/email/managing-unsubscribed-contacts"}]},{"title":"Slack","href":"/configuration/slack"}]},{"group":"Workflow","pages":[{"title":"Basics","href":"/workflow/basics"},{"title":"Preview","href":"/workflow/test-interface"},{"title":"Publishing workflows","href":"/workflow/publishing-workflows"},{"title":"Inspecting inflight workflows","href":"/workflow/inspecting-inflight-workflows"},{"title":"Broadcast","href":"/workflow/broadcast"}]},{"group":"Step types","pages":[{"title":"Database trigger","href":"/steps/database-trigger"},{"title":"Repeating trigger","href":"/steps/repeating-trigger"},{"title":"Supabase Auth trigger","href":"/steps/supabase-auth-trigger"},{"title":"Wait","href":"/steps/wait"},{"title":"Query","href":"/steps/query"},{"title":"Send email","href":"/steps/send-email"},{"title":"Send Slack","href":"/steps/send-slack"}]},{"group":"Troubleshooting","pages":[{"title":"Fix Supabase RLS Access for Dreamlit","sidebarTitle":"Supabase RLS","href":"/troubleshooting/fix-supabase-rls-access"}]},{"group":"MCP","pages":[{"title":"MCP server for AI agents","sidebarTitle":"Overview","href":"/resources/mcp-server"},{"group":"Quick Start","expanded":false,"pages":[{"title":"Dreamlit MCP for Claude Code","sidebarTitle":"Claude Code","href":"/resources/mcp-server/claude-code"},{"title":"Dreamlit MCP for Claude Desktop","sidebarTitle":"Claude Desktop","href":"/resources/mcp-server/claude-desktop"},{"title":"Dreamlit MCP for Codex","sidebarTitle":"Codex","href":"/resources/mcp-server/codex"},{"title":"Dreamlit MCP for Cursor","sidebarTitle":"Cursor","href":"/resources/mcp-server/cursor"},{"title":"Dreamlit MCP for OpenClaw","sidebarTitle":"OpenClaw","href":"/resources/mcp-server/openclaw"},{"title":"Dreamlit MCP for Hermes Agent","sidebarTitle":"Hermes","href":"/resources/mcp-server/hermes"},{"title":"Dreamlit MCP for Gemini CLI","sidebarTitle":"Gemini CLI","href":"/resources/mcp-server/gemini-cli"},{"title":"Dreamlit MCP for VS Code","sidebarTitle":"VS Code","href":"/resources/mcp-server/vs-code"},{"title":"Dreamlit MCP for Windsurf","sidebarTitle":"Windsurf","href":"/resources/mcp-server/windsurf"},{"title":"Dreamlit MCP for Zed","sidebarTitle":"Zed","href":"/resources/mcp-server/zed"},{"title":"Dreamlit MCP for Lovable","sidebarTitle":"Lovable","href":"/resources/mcp-server/lovable"},{"title":"Dreamlit MCP for Bolt","sidebarTitle":"Bolt","href":"/resources/mcp-server/bolt"},{"title":"Dreamlit MCP for Replit","sidebarTitle":"Replit","href":"/resources/mcp-server/replit"},{"title":"Dreamlit MCP for v0","sidebarTitle":"v0","href":"/resources/mcp-server/v0"}]}]},{"group":"Resources","pages":[{"title":"Deliverability","href":"/resources/deliverability"},{"title":"Security","href":"/resources/security"},{"title":"Contact us","href":"/resources/getting-support"},{"title":"Media resources","href":"/resources/media"},{"title":"Pricing","href":"/resources/pricing"},{"title":"System status","url":"https://status.dreamlit.ai","href":"/resources/system-status"},{"title":"Privacy policy","url":"https://dreamlit.ai/privacy-policy","href":"/resources/privacy-policy"},{"title":"Terms of service","url":"https://www.dreamlit.ai/terms-of-service","href":"/resources/terms-of-service"}]}]},{"tab":"Learning Center","icon":"graduation-cap","pages":[{"title":"Learning Center","href":"/learn/overview"}]}]},"basePath":"","title":"Figma Make Email: Design-to-App Meets AI-Powered Notifications - Dreamlit AI","buildId":"dpl_2AK98Hxhwu4fUXpx9atbv41cC328","deploymentId":"dpl_2AK98Hxhwu4fUXpx9atbv41cC328","dynamics":["a74be98ba7","07c022d89b"],"chunks":["zoom-image-lightbox-T84NdC3b.js","lightbox-handle-r17bVUz3.js","Frame-Buk2KjK6.js","DynamicMarkdown-DYYZTGpa.js"]}