Appearance
Project Settings
Project settings is where you configure everything that applies to a whole project in BlueFox Email: its logo and email theme, how mail is actually sent, the custom contact properties and tags your contacts can carry, the API keys and whitelisted domains your application uses to reach the project, and the definition of an unengaged contact. Every setting on this page is scoped to one project, so two projects in the same account can send from different domains, use different designs, and store completely different contact data.
To access the project settings, click on the Settings tab. Here, you can use the sub-menu to navigate to different sections of the project settings.

Main Settings
Users can add, update, or remove a custom logo for their project. This logo will be displayed on the subscription preferences page and double opt-in confirmation page success message to provide branding consistency.
To manage the project logo:
Add or update: Click upload, select an image, and save.
Remove: Click remove logo and confirm.

Custom Subscription Preferences Page
By default, subscribers who click the unsubscribe or pause links in your emails land on BlueFox Email's subscription preferences page, where they can unsubscribe, resubscribe, or pause their subscriptions to your public lists. If you host your own subscription preferences page, you can send them there instead, so your page takes over that job.
Paste the URL of your page into Custom Subscription Preferences URL. From then on, subscribers who click the unsubscribe or pause links in your emails are sent to your page instead of the default one.
- Scheme:
https://is assumed if you don't include one. If you're testing against a local server, includehttp://yourself. - Default page: Leave the field empty to use the default page.

You can also change your email theme of the project in this section. Changing the email theme will update the design of all your emails. Your saved templates and blocks are tied to their original theme, they won't be accessible while on a different theme, but if you switch back, they will be available again. However, any overridden theme variables (such as colors or images) will be permanently lost, even if you switch back, those overriding values will not be restored.

Email Branding
By default, every email sent from a project carries a small "Powered by bluefox.email" badge at the bottom. The Email Branding card shows the badge and the Show the bluefox.email badge switch:

The switch is locked on until you have a send pack or a subscription. Once you do, you can switch the badge off for the project. The badge is a setting of the project, so it applies to every email sent from that project. See pricing for the packs and subscriptions.
When you have a send pack or a subscription, the switch is unlocked. Turn it off to remove the badge. While it stays on, a note under the badge thanks you for keeping it, as a simple, free way to support BlueFox Email:

Keeping the badge helps us
BlueFox Email is built by a small, independent team. Leaving the badge on is a simple, free way to support us and help other senders find us. It's entirely up to you, and thank you if you do.
Users can also manage the project name in this section or delete the project entirely by clicking the Delete project button.

Sending Setup
The Sending Setup section is where you choose how emails are sent from your project. So the default for every new project is sandbox mode. In this mode, you can start sending emails immediately but with some limitations. When you're ready for unrestricted sending, you can request to move your project to production mode. If you prefer to bring your own AWS SES account, you can do that too.
For more details, see our Delivery Modes documentation.

Verified Domains
The Verified Domains section is where you verify the domains you send from. Verifying a domain lets BlueFox Email sign your emails and handle bounces for it, so you can send from your own address instead of a shared sender. Click Add Domain to add one, then publish the DNS records shown for it with your DNS provider.
Each domain appears as a row with its region and a status for each of the four record types BlueFox Email checks:
- DKIM: CNAME records used to sign your emails.
- MX: the record used to handle bounce reports.
- SPF: the TXT record that authorizes mail senders.
- DMARC: the TXT record that sets your email policy.
A green check means the record was found. Expand the row to see the Type, Name, and Value of every record, with a copy icon next to each so you can paste them straight into your DNS provider. After you publish or change records, click Recheck DNS to check them again.

Once all four records are checked, the domain is verified and you can add it to the domain whitelist. To remove a domain, click Delete Domain at the bottom of its row.
For how verified domains relate to sandbox and production mode, see Delivery Modes.
Adding Your DNS Records in One Click
You don't have to copy the records one by one. While a domain isn't verified yet, open its row and you'll see Add all records at once above the table, with three options: Cloudflare, AWS Route 53, and Other provider:

Click your DNS provider, and a dialog opens with the steps and a ready-made zone file of all the records for the domain. Each dialog also has a Recheck DNS button, so you can check the domain right after you've added the records.
Cloudflare: click Download Zone File. In Cloudflare, open Domains, select your domain, go to DNS → Records and click Import, then upload the file. Leave Proxy imported DNS records unchecked, otherwise the DKIM records won't verify.

AWS Route 53: click Copy. In the AWS console, open Route 53 → Hosted zones, select your domain and choose Import zone file, then paste the records into the Zone file box and click Import. If any of the records already exists, Route 53 imports nothing and shows "UnknownError". Remove that line and try again.

Other provider: click Download Zone File (or Copy) and look for "Import zone file" or "BIND import" in your DNS provider. If it has no import option, add the records from the table by hand.

DNS changes can take a little while to propagate. When the records are in, click Recheck DNS, and the checks turn green once they're found.
Bounces and Complaints Webhooks
This feature is only available for projects using Bring Your Own (BYO) AWS SES. For other project types, BlueFox Email automatically handles bounces and complaints.
To effectively manage email bounces and complaints, BlueFox Email provides webhook integration. This allows you to receive real-time notifications about these events, enabling you to take appropriate actions such as updating contact statuses or triggering follow-up processes. For the full list of events BlueFox Email can notify you about, see Webhooks.

Keep in mind
If bounce rate and complaint rates are not kept within acceptable limits, the BlueFox Email team can restrict the project or the whole account. The current thresholds are documented under Maintaining Production Access. See also Account and Project Restrictions.
Contact Properties
Contact properties allow users to define custom attributes for contacts at the project level. These properties appear in the contacts table and can be filled when adding or editing a contact.
Add new Property
To add a new property, navigate to project settings → contact properties, click create, enter the property name and type, then save. The property will be available in the contact management interface.
Each contact property includes:
Property Name: The user-defined name.
API Name: The system-generated name used when sending or retrieving data via API.
Type: The data type of the property, which can be string, boolean, date, or number.
CSV Upload Note
When uploading contacts via CSV, you must use the API Name as the column header.

Reserved Properties
Some properties are reserved and cannot be created. These include status, pausedUntil, email, accountId, projectId, customFields, contactId, subscriberListId, unsubscribeLink, pauseSubscriptionLink.
Delete Property
To delete a property, go to project settings → contact properties, locate the property in the table, and click the delete icon. Confirm the deletion, and the property will be removed from both the contacts table and the contact creation/editing interface.

Contact Tags
Contact tags are labels that you can assign to contacts to help organize them based on specific criteria or characteristics. Tags can be used for various purposes, such as categorizing contacts by interests, behaviors, or demographics, which can then be leveraged for targeted email campaigns and personalized communication.
To manage contact tags, navigate to project settings → contact tags. Here you can see a list of all existing tags in the project and you can create new tags or delete existing ones.
To create a new tag, click the Create button : 
Enter the name of the tag and save it. The new tag will be available for assignment to contacts. 
If you want to delete a tag, find it in the list of tags, click the delete icon, and confirm the deletion. The tag will be removed from the project and unassigned from any contacts that had it.

API Keys and Domain Whitelist
To work with our API from the server side, create at least one API key.
Include our API keys in the Authorization header of your HTTP requests as a bearer token.
Authorization: Bearer <API_KEY>For bounces and complaints, it is added as a query string.
Periodically rotate sensitive info like API keys for security reasons. We use different colors to indicate the age of the API key as a reminder:
- Green: less than a month old
- Yellow: 1-6 months old
- Red: more than 6 months old

Security Warning
Since an API key is very sensitive information, never use it in your frontend code. Always use it from your backend.
Domain Whitelist
The domain whitelist ensures that sign-up requests are only processed from authorized domains, enhancing security during the sign-up process. If your frontend is making requests, you must add its domain to the whitelist to authorize them.
Security Note
The domain whitelist applies only to frontend requests. If your requests are coming from a backend server, you should use API keys instead, as backend requests do not require domain whitelisting.
To add a domain: Navigate to project settings → domain whitelist, click create, enter the
domain, and save. This ensures that requests from the frontend are recognized and approved.
To add a domain you've verified: Navigate to project settings → verified domains and click Add to Whitelist on the domain's row. The button appears only once the domain is verified, meaning its DKIM, MX, SPF, and DMARC records are all checked. The domain is added to the whitelist, so you don't have to enter it again by hand.

Once it's whitelisted, the button is replaced by a green Whitelisted label:

To edit an existing domain: Navigate to project settings → domain whitelist, locate the domain, and click on the edit icon. Make the necessary changes and save them.

To delete a domain: Navigate to project settings → domain whitelist, find it in the domain whitelist, click the delete icon, and confirm the deletion. Once removed, any sign-up requests from that domain will no longer be authorized.

Integrations
Here you can manage third-party integrations that enhance your project's capabilities. Right now we support the following integrations:
- AI Agents: Copy a ready-made setup prompt that points an AI agent at this project through the public API.
- MCP Server: Copy the install and connection snippets that let Claude Desktop, Claude Code, Cursor, Windsurf, or any other MCP-compatible agent manage this project directly.
- Zapier: Connect your BlueFox Email project with thousands of apps to automate workflows without coding. Set up triggers and actions to streamline your email marketing processes.
- Webhooks: Configure webhooks to receive real-time notifications about specific events in your project, such as email deliveries, bounces, or complaints. This allows you to integrate BlueFox Email with your existing systems and automate responses to these events.
AI Agents
Beta
This section is in beta.
At the top of the Integrations tab, the AI Agents section gives you a Setup prompt: a single copyable message that tells an AI agent your project ID and where to find the API spec, so it can manage the project through the public API. Your project ID is already in it. Replace YOUR_API_KEY with a real key before sending it, using the Get your API key button to jump to the API Keys section. Browse the API opens the API reference.
Use this for AI clients that cannot run a local MCP server, such as ChatGPT.
MCP Server
Below AI Agents, the MCP Server section gives you everything needed to connect an MCP-compatible AI agent to this project. The server runs locally on your own computer and talks to BlueFox Email with your own API key.
- Pick the tab for your client: Claude Desktop / Cursor / Windsurf, Claude Code (CLI), or Codex CLI (ChatGPT).
- Make sure Node.js 20 or newer is installed. Your AI client runs the server from npm with
npx, so there is nothing else to install. If you prefer to run it from a clone of the repository, see Installation. - Copy the Connect your AI agent snippet. Your project ID is already filled in.
- Replace
YOUR_API_KEYwith a real key from the API Keys section, then add the snippet to your client's configuration. - Restart your AI agent so it picks up the new configuration.
For the full list of what an agent can do once connected, see the MCP Server integration guide. The server is published on npm as @bluefox-email/mcp and is open-source on GitHub.
Zapier Integration
You can see your projectID and API key needed for Zapier integration here. Click the copy icon by the projectID to copy the value to your clipboard. For API key, click View API Key to redirect to the API keys section where you can view, copy or create a new API key.

Webhooks Integration
Webhooks keep you informed in real-time about email events like opens, clicks, bounces, complaints, subscriptions, and more. Easily integrate notifications into your app to monitor email performance and user actions.

Steps to set up webhooks:
- Add Webhook URL: Enter the URL where you want to receive notifications. Ensure your endpoint is secure and ready to handle incoming requests.
- Select Events: Choose the events you want to be notified about (e.g., open, click, bounce, complaint).
- Save and Test: Save your settings and use the 'Test Webhook' feature to ensure your integration is working correctly.
- Start Receiving Notifications: Once set up, you'll begin receiving real-time updates for the selected events.
Unengaged Segment
The unengaged segment defines, for the whole project, which contacts count as unengaged. It is a single set of conditions, built with the same condition builder used by regular segments.
The definition on its own does not change who receives your emails. It takes effect when you turn on Exclude unengaged on a campaign, a triggered email, or a Notify node in an automation: every contact matching the definition is skipped for that send.
To find it, choose Unengaged Segment in the settings sub-menu. It sits at the end of the sub-menu, after Integrations. The section itself is titled Unengaged Contact Segment.

How the Definition Is Used
Every campaign and triggered email has an Exclude unengaged toggle in its header, next to the subscriber list and segment selection. With the toggle on, BlueFox Email compares each contact in the selected list against the project's unengaged segment definition and skips the ones that match.

The Notify node in automations offers the same option. Because a Notify node sends to a subscriber list of your choice rather than to the contact flowing through the automation, excluding unengaged contacts there works exactly as it does on a campaign: the list is checked against the project's definition and matching contacts are skipped.
This means:
- You do not have to build or maintain an exclusion list at send time.
- The definition is shared, so every send that opts in uses the same criteria: campaigns, triggered emails, and automation Notify nodes alike.
- The option is per send. Leaving it off sends to the full list regardless of the definition.
Default Definition
Every project starts with a default definition made of two condition groups joined with OR logic. Conditions inside each group are joined with AND logic, so a contact only needs to match one complete group to be treated as unengaged.

Group 1: contacts that are emailed but never open
- Condition 1:
Created AtMore than365days ago - AND
- Condition 2: Email
receivedin the last90days - AND
- Condition 3: Email
not-openedin the last90days
OR
Group 2: contacts that are no longer emailed at all
- Condition 1:
Created AtMore than365days ago - AND
- Condition 2: Email
not-receivedin the last90days
In plain language: a contact is unengaged by default if it has existed for over a year, and either it has been emailed recently without opening anything, or it has not been sent anything in the last 90 days.
Editing the Definition
You can adjust the definition to your project's own criteria without any developer involvement.
- Add a condition: click AND at the bottom of a group. Each condition row has its own CONTACT PROPERTY and ENGAGEMENT tabs, so you choose the condition type per row, then pick the property or engagement operator and the value or number of days.
- Add a group: click OR at the bottom of the section. Groups are joined with OR logic, so a contact matching any complete group counts as unengaged.
- Remove a condition: click the delete icon at the end of the condition row.
- Save: click SAVE to apply the new definition. It takes effect on the next send that has Exclude unengaged turned on.
- Reset: click RESET to discard your edits and return to the saved definition.

The available conditions and operators are the same ones documented on the Segments page.
Note:
Changing the definition changes who is skipped on every campaign, triggered email, and Notify node that uses Exclude unengaged, not just the one you are editing next.
Relationship to Segments
The unengaged segment reuses the segment condition builder, but it is not a regular segment:
- Regular segments are named, created under Contacts, and selected individually per campaign or automation.
- The unengaged segment is a single unnamed definition per project, edited here in project settings, and used only by the Exclude unengaged option on campaigns, triggered emails, and automation Notify nodes.
If you are new to the condition builder, read Segments first. The AND/OR logic, the contact property operators, and the engagement conditions all behave the same way here.