Understanding built-in integrations
Built-in integrations are ready-made actions that run inside Base44. They are available in every app, and you do not need to set up API keys, connectors, or your own infrastructure. You can add them wherever you design logic in your app, and Base44 takes care of hosting, scaling, and provider connections behind the scenes. Use built-in integrations when you want Base44 to handle these shared tasks for you. For example, you can send emails without configuring an email service, generate images on demand, let people upload and store files in Base44, extract structured data from uploads into your entities, or call LLMs to power agents and data workflows while keeping all billing and provider management in one place.Sending emails
SendEmail is a built-in integration that sends transactional and workflow emails from your app, such as confirmations, alerts, digests, and other notifications that need to go out automatically. You can trigger SendEmail from:- Flows that Base44 builds from the AI chat.
- Backend functions that you edit in your app’s code.
- Agents or automations that need to notify people by email.
Example prompts for SendEmail
Connect SendEmail so that when someone submits this form, they get a confirmation email with their details.Add a daily flow that uses SendEmail to send me a summary of all new signups in this app.When a task is marked as 'critical', use SendEmail to alert the ops team with a link to the record.
Notes:
- SendEmail does not support sending to external mailing lists or adding file attachments.
- Each email sent through SendEmail uses integration credits. The exact cost depends on how many messages you send and how often flows run.
Generating images
GenerateImage is a built-in integration that creates images using AI from text prompts or from flows in your app. It is useful for generating on-demand visuals such as covers, thumbnails, illustrations, or avatars without managing an external image provider. GenerateImage can support scenarios like creating cover images for new content, generating temporary product images when photos are not ready yet, or producing simple marketing assets based on text descriptions.Example prompts for GenerateImage
Whenever I add a new article, use GenerateImage to create a cover image that matches the title and theme.When I create a new product, generate a simple placeholder image with the product name on a solid background and store its URL in the Products entity.Add a page where I can enter a short description and use GenerateImage to create a marketing image I can download.
Uploading files
UploadFile is a built-in integration that lets your app accept file uploads from people who use it. It powers file upload components in your UI so you can collect documents, images, and data files without building your own storage or upload endpoints. UploadFile is a good choice when you want to gather receipts, contracts, screenshots, profile pictures, or data files such as CSVs and spreadsheets and keep them tied to records in your app.Example prompts for UploadFile
Add a file upload field to this request page using UploadFile so people can attach a PDF when they submit.Let people upload profile pictures, store the file using UploadFile, and save the image URL in the Members entity.Create a page where I can drag and drop CSV files, upload them with UploadFile, and show a table of uploaded files.
For current file sizes and types, check the Uploading files guide.
Extracting data from uploaded files
ExtractDataFromUploadedFile is a built-in integration that reads structured content from uploaded files and turns it into data your app can work with. It helps you move from “file storage” to “usable records” by pulling out key fields and rows for you. You can pull structured data from uploaded files (CSV, PNG, JPG, JPEG, PDF) using JSON schemas. It is particularly useful for importing data in bulk. You can use ExtractDataFromUploadedFile to parse receipts, invoices, forms, or data files and convert them into clean entities, such as Contacts, Invoices, Expenses, or Metrics, without hand-writing parsing logic. You can also combine UploadFile and ExtractDataFromUploadedFile. For example, someone uploads a CSV, Excel file, or PDF through UploadFile, then you use ExtractDataFromUploadedFile to transform the content into rows in your data tables.Example prompts for ExtractDataFromUploadedFile
When I upload a CSV file of customers, use UploadFile and ExtractDataFromUploadedFile to import the records into a Customers entity.Let me upload invoice PDFs and use ExtractDataFromUploadedFile to pull invoice number, vendor, date, subtotal, and total into an Invoices table.Build a page where I can upload an Excel file with KPIs, then use ExtractDataFromUploadedFile to update the Metrics entity.
Running LLM calls
invokeLLM is a built-in integration that runs large language model (LLM) calls from inside your app. It lets your app “think” with AI over your data and flows, and powers text generation, explanations, and decisions that depend on LLMs. invokeLLM is a good fit when you want to build data agents, summarize or rewrite content, classify records, generate recommendations from dashboards, or add in-app assistants that help people complete tasks. It works like other built-in integrations in your flows and backend functions, but with an extra layer of control: you can choose which underlying model it uses.Example prompts for invokeLLM
Add a data agent that uses invokeLLM so I can ask natural language questions about my Sales entity and see the answers in this app.When a support ticket is created, use invokeLLM to summarize the description into a short overview and store it in a Summary field.Create a flow that uses invokeLLM to classify each new lead into one of three segments based on their notes, and save the segment on the lead record.Switch invokeLLM to use a stronger model for my agents so they can give better explanations on complex analytics dashboards, and update any flows that depend on invokeLLM.
Choosing the model for invokeLLM
By default, invokeLLM uses a standard model that balances quality and cost. If you want, you can tell the AI chat inside Base44 to use any supported model in your workspace as the underlying model for invokeLLM by asking the AI chat to switch it for you. For example, you can say:Switch invokeLLM to use <model-name> for this app.
Note: When you change the model for invokeLLM, the style, reasoning ability, and quality of responses update to match that model. The number of integration credits each call uses also changes based on the new model’s cost, and any flows or agents that rely on invokeLLM start using the new model automatically.

