ManyChat is built to start conversations in chat channels, but you can also send email from ManyChat when a contact reaches the right point in a Flow. With Volanea, the connection is an HTTP integration: ManyChat’s External Request action sends a JSON request to Volanea’s REST email endpoint.

There is one important boundary to understand first: Volanea does not provide a native ManyChat app, marketplace listing, or one-click plugin. The setup below uses ManyChat’s own Flow Builder capability rather than pretending an app installation exists. That is useful because it keeps the automation explicit: a specific Flow step triggers one specific email request, with the recipient, content, and event data you choose.

What this integration does

At its simplest, the integration has four parts:

  1. A person enters a ManyChat Flow through a real trigger, such as a keyword, Instagram automation, button click, or website widget interaction.
  2. The Flow collects or already contains a usable email address in ManyChat’s Email system field or a custom user field.
  3. An External Request action in the Flow makes an HTTPS POST request to Volanea.
  4. Volanea accepts the request and delivers a transactional email, such as a confirmation, receipt, booking summary, onboarding message, or lead follow-up.

The concrete event that starts the email is the contact reaching the External Request action in a ManyChat Flow. ManyChat is contact- and Flow-oriented; it is not a record-based CRM that emits a generic “record created” event. This distinction matters for design. You decide exactly where in the customer journey the send belongs, rather than attaching email delivery to every contact update.

For example, a lead could enter a Flow after replying with a keyword on Instagram. The Flow asks for an email address, stores it, validates the answer at the conversational level, then reaches an External Request action that sends a welcome email. A different Flow might run after a customer clicks a “get my guide” button and send a link or a copy of the requested resource.

Use this pattern for operational or expected follow-up. If you are building promotional campaigns, make sure your consent capture, message classification, and unsubscribe handling match the regulations that apply to your audience. An API can deliver a message; it does not create marketing permission.

The ManyChat feature to use: External Request

ManyChat’s Flow Builder includes an External Request action for calling an external HTTP endpoint from an automation. This is the direct integration mechanism for Volanea. It is not a client-side browser request and it is not a native Volanea connector.

In a Flow, add the External Request action at the point where the message should be sent. Configure a POST request, the Volanea REST endpoint, JSON headers, and a JSON request body. ManyChat resolves supported contact variables before it sends the request, so the same Flow can create a personalized email for each contact.

Plan availability before you build

Confirm that External Request is available on the ManyChat plan and channel configuration used by your account before designing production automation around it. Product features and channel entitlements can vary by plan and can change over time. If your workspace does not expose External Request in the Flow Builder, do not try to solve the limitation with a client-side script or by exposing an API key.

Instead, use a server-side intermediary that your available automation tool can call, such as Make or Zapier, and have that intermediary call Volanea. The conceptual mapping remains the same: Flow event, contact data, server-side request, Volanea email. The difference is where the HTTP request and secret are stored.

Why an External Request is the right primitive

An email send is an event, not a database synchronization. Treating it as an event lets you include a narrow, intentional payload:

  • recipient email address;
  • recipient name, if known;
  • sender identity;
  • email subject;
  • HTML and plain-text content; and
  • a stable event identifier for duplicate protection and debugging.

Avoid sending your entire contact record by default. It reduces unnecessary personal-data sharing and makes it easier to see which field is responsible when a request fails.

Prepare the contact data in ManyChat

A dependable send begins with dependable fields. In ManyChat, the common starting point is the Email system field, populated when a contact gives their email address. You may also use custom user fields if your Flow collects multiple addresses or needs to separate a work email from a personal email.

Before the External Request action, add a check that the field you intend to use is present. An empty recipient value is not a delivery problem at Volanea; it is an automation-data problem upstream. Put collection and validation logic before the send action, not after it.

Recommended field map

The exact custom-field names are yours, but write down the mapping before configuring the request. A practical version looks like this:

ManyChat valuePurpose in Volanea request
{{email}}Recipient email address
{{first_name}}Recipient display name and greeting
{{last_name}}Optional recipient display name
{{order_id}}Subject line, content, and send traceability
{{event_id}}Idempotency or correlation value

The {{email}}, {{first_name}}, and {{last_name}} values are ManyChat system-field variables when those fields are populated. If you use a custom user field, choose it from ManyChat’s variable picker in the request editor rather than typing a guessed token. That avoids a common mistake: sending literal curly-brace text because a field name was changed or misspelled.

For transactional email, collect the minimum required data. A receipt flow may need an order identifier and purchase amount. A lead magnet flow may need only email address and first name. Do not insert chat-channel identifiers, ad-source details, or free-form user replies into an email unless they are genuinely needed and safely encoded.

Separate collection from delivery

A useful Flow structure is:

  1. Trigger starts the Flow.
  2. Messages ask for required information.
  3. User Input saves the response to the appropriate field.
  4. Condition checks whether the email field is populated and usable.
  5. External Request sends the Volanea email.
  6. A follow-up message confirms what the contact should expect.

This ordering protects the user experience. If the email address is missing, the Flow can ask again or offer an alternative without making a malformed request. If the request succeeds, the chat confirmation can accurately say that the email is on its way rather than implying it was delivered or opened.

Configure the Volanea REST request

In the External Request action, choose POST and set the URL to the Volanea send-email endpoint shown in the current email API reference and setup guides. Set the request body type to JSON and add authentication as an HTTP header.

The endpoint, header name, and accepted message schema are API contract details. Use the version in Volanea’s documentation for your account rather than copying an endpoint from an old integration or assuming that SMTP credentials work as REST credentials. SMTP and REST are distinct sending interfaces even when they belong to the same email provider.

The following is the shape to configure when using Volanea’s documented REST send endpoint. It shows how ManyChat variables become email fields. Substitute the exact API URL and sender identity from your Volanea account and documentation.

POST https://api.volanea.com/v1/emails
Authorization: Bearer YOUR_VOLANEA_API_KEY
Content-Type: application/json

{
  "from": {
    "email": "notifications@your-verified-domain.com",
    "name": "Acme Support"
  },
  "to": [
    {
      "email": "{{email}}",
      "name": "{{first_name}} {{last_name}}"
    }
  ],
  "subject": "Your guide is ready, {{first_name}}",
  "html": "<p>Hi {{first_name}},</p><p>Thanks for requesting the guide. <a href=\"https://example.com/guide\">Download it here</a>.</p><p>Your request ID: {{event_id}}</p>",
  "text": "Hi {{first_name}},\n\nThanks for requesting the guide: https://example.com/guide\n\nYour request ID: {{event_id}}"
}

In ManyChat, the header and body are entered as configuration in the External Request action, not pasted as one raw HTTP transcript. The effective payload ManyChat sends after variable substitution is JSON in this form:

{
  "from": {
    "email": "notifications@your-verified-domain.com",
    "name": "Acme Support"
  },
  "to": [
    {
      "email": "ana@example.com",
      "name": "Ana Rivera"
    }
  ],
  "subject": "Your guide is ready, Ana",
  "html": "<p>Hi Ana,</p><p>Thanks for requesting the guide. <a href=\"https://example.com/guide\">Download it here</a>.</p><p>Your request ID: lead-guide-1042</p>",
  "text": "Hi Ana,\n\nThanks for requesting the guide: https://example.com/guide\n\nYour request ID: lead-guide-1042"
}

This is not an automatically generated ManyChat event schema. External Request is intentionally flexible: the JSON body is the payload you configure. That is an advantage, because it lets you make the field mapping visible and auditable. It also means a typo, missing variable, invalid JSON string, or unescaped quotation mark in HTML is your configuration issue to fix.

Sender identity and domain authentication

The from.email value must use a sender identity or domain that is verified in Volanea. Do not use a contact’s email address as the From address merely because the Flow has it available. That can break domain-alignment expectations and makes replies unpredictable.

Use a stable, verified address on a domain you control, such as notifications@your-verified-domain.com. If replies should go to a support inbox, set the API’s supported reply-to field according to the current Volanea API reference. Authenticate the sending domain with the DNS records Volanea provides before production traffic begins. Domain authentication is a deliverability foundation, not a cosmetic setup step.

Store the API key safely

The Volanea API key belongs in the Authorization header of the ManyChat External Request action, where ManyChat makes the server-side request. It must never live in a website widget, custom JavaScript delivered to a visitor’s browser, a public Git repository, a URL query parameter, or a chat message.

A bearer key grants sending authority. Anyone who obtains it may be able to send mail as your account until you revoke it. Putting a key in client-visible configuration turns an integration secret into a copyable value: browser developer tools, page source, network logs, extensions, and shared screenshots can all expose it.

Key-handling rules

Follow these rules when configuring and operating the connection:

  • Create a dedicated API key for the ManyChat automation if Volanea’s key-management controls support that separation.
  • Paste the key only into the server-side request header configuration, never into the JSON body.
  • Restrict access to the ManyChat workspace so only people who need to maintain the integration can edit the action.
  • Rotate the key immediately if it appears in a ticket, screenshot, log, exported Flow, browser code, or repository.
  • Use a middleware endpoint if your governance policy requires secrets to be held only in your own secret manager.

ManyChat stores and executes Flow configuration on its platform, but that does not make it a general-purpose secrets vault or an application back end. A middleware route gives you more control when you need key rotation without editing Flows, rate limiting, structured logs, message templating, recipient policy checks, or stronger idempotency handling.

Use middleware when you need more control

A direct External Request is appropriate for a modest, focused automation. A small server endpoint is usually better when the email affects revenue, account access, legal notices, high-volume lead processing, or multiple Flows.

With middleware, ManyChat sends a limited event payload to your endpoint. Your server validates it, constructs the email, reads the Volanea API key from an environment variable, and calls Volanea. The ManyChat Flow never contains the Volanea key.

// Node.js / Express-style middleware example
app.post('/manychat/guide-request', async (req, res) => {
  const { email, first_name, last_name, event_id } = req.body;

  if (!email || !event_id) {
    return res.status(400).json({ error: 'email and event_id are required' });
  }

  const volaneaResponse = await fetch('https://api.volanea.com/v1/emails', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.VOLANEA_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      from: {
        email: 'notifications@your-verified-domain.com',
        name: 'Acme Support'
      },
      to: [{
        email,
        name: [first_name, last_name].filter(Boolean).join(' ')
      }],
      subject: `Your guide is ready${first_name ? `, ${first_name}` : ''}`,
      html: `<p>Hi ${escapeHtml(first_name || 'there')},</p><p><a href="https://example.com/guide">Download your guide</a>.</p>`,
      text: `Hi ${first_name || 'there'},\n\nDownload your guide: https://example.com/guide`
    })
  });

  const result = await volaneaResponse.json();
  return res.status(volaneaResponse.status).json(result);
});

The code illustrates the boundary, but production middleware needs more than a simple handler. Authenticate or verify requests from the automation platform where possible, enforce a request schema, store an idempotency record keyed by event_id, escape untrusted data before placing it into HTML, and return a short response promptly.

If you use Make or Zapier as the intermediary, keep the same design principle. ManyChat supplies only the values needed for the event; Make or Zapier stores the Volanea credential in its connection or secure credential system; the final HTTP module calls Volanea. That route can be useful when no engineering team owns a middleware service, but it adds another operational dependency and another place to monitor retries.

When this breaks: diagnose the specific hop

Every automation has failure modes. In this integration there are two hops to reason about: ManyChat reaching the HTTP endpoint, and Volanea accepting and delivering the email. A chat message can still appear successful while the HTTP request fails, depending on how the Flow is designed, so do not treat a chat confirmation as a delivery log.

Retries can create duplicate emails

HTTP automation systems may retry a request when a response is delayed, a connection fails, or the outcome is ambiguous. If Volanea accepted the first send but the response did not reach ManyChat, a retry can produce a second email. This is not necessarily a ManyChat bug or an email-provider bug; it is a normal distributed-systems ambiguity.

Design for at-least-once execution. Use a unique event_id generated or stored for the business event, not merely the contact email. In middleware, save that ID before or alongside the send attempt and reject or return the original result for repeats. If the Volanea API supports an idempotency header or key, use its documented mechanism as well.

Do not use a broad value such as {{email}} alone as the duplicate key. A person can legitimately request another guide, complete another order, or reset a password again. A good identifier represents one intended email event, such as order-9182-receipt or guide-ana-2026-10-08-001.

Webhook timeouts and slow endpoints

An External Request expects an HTTP response. If your middleware takes too long, times out, or returns an intermittent server error, ManyChat may consider the action unsuccessful and may retry according to its platform behavior. Avoid performing slow work before sending a response.

For critical workflows, accept the request quickly, persist the event, and process the Volanea call in a queue or worker. Return a concise success response only after you have safely recorded what should happen. Log the ManyChat contact identifier, your event ID, the Volanea response status, and any provider message identifier returned by the API. Those records make it possible to answer “did this recipient get one email, zero, or two?” without guessing.

Missing fields and plan-dependent capabilities

A contact may reach the External Request action without the expected email value. This commonly happens when a Flow is entered through a path that bypasses the email-collection step, a custom field has a different name in a copied Flow, a contact declines to provide the information, or an older contact record never had the field populated.

Also verify feature availability in the actual ManyChat workspace. If External Request, a needed channel trigger, or a data-collection feature is unavailable under the current plan, the Flow cannot reliably supply the planned payload. Build a visible fallback branch: ask for the missing detail, direct the user to a form, or hand the case to a human. Never silently submit {{email}} when it might resolve to an empty value.

Invalid JSON and unsafe dynamic content

ManyChat substitutes variables into the body you configure. If a variable contains quotation marks, line breaks, or HTML-sensitive characters and you embed it in a JSON or HTML string without a safe encoding strategy, the request can become invalid or the email can render unexpectedly.

Keep direct Flow payloads simple. Use variables in fields such as recipient address and subject only when their values are controlled. For free-form responses, create the email in middleware, where a JSON library and HTML escaping function can safely serialize data. This is another reason to choose middleware as complexity grows.

Test the Flow before sending live traffic

Testing should cover the exact route a contact takes, not only the Volanea API in isolation. Create a test contact with an inbox you can inspect, then enter the Flow through its real trigger. Verify that the contact has the required field values before the External Request action is reached.

Use a small test matrix:

  • a contact with a normal first name and valid email;
  • a contact with no last name;
  • a contact whose email field is empty;
  • a contact with non-ASCII characters in their name;
  • an event that is deliberately repeated to test duplicate protection; and
  • an address you control at a major mailbox provider.

Check three systems after each run: the ManyChat Flow execution, any middleware or automation-run history, and Volanea’s sending activity or event data. A 2xx response means the API accepted the request; it does not by itself prove that a mailbox displayed the message. For deliverability testing, inspect the received headers, sender domain alignment, content rendering, and placement over time.

Use a real, authenticated sending domain from the beginning. Free consumer sender domains and unverified addresses are poor approximations of production mail and can hide the DNS or alignment issues that matter later.

Deliverability and content choices after the API call

The integration is only the handoff. Whether the email is trusted and acted on depends on sender authentication, recipient expectations, content, and sending behavior.

Match the message to the trigger. If a contact asks for a guide in chat, the email should say that the guide is ready and deliver it immediately. If the Flow confirms an order, include recognizable order details. A sudden generic sales email after a short chat interaction is more likely to be ignored, reported, or filtered.

Include both HTML and plain text where your API supports it. The HTML version can carry your branding and a clear call to action; the text version improves accessibility and provides a practical fallback. Keep the subject specific, avoid misleading urgency, and make the sender name recognizable from the chat experience.

For high-value list growth, verify address quality before treating an address as a durable marketing contact. Volanea provides a free email address verification tool that can help check an address before downstream use. Verification is not permission, and permission is not a guarantee of inbox placement, but separating those concepts produces healthier automation.

Operational patterns that scale

Once one Flow works, resist copying a large, hard-coded email body into every Flow. That creates a maintenance problem: a legal update, URL change, or brand revision requires edits in many places.

A scalable setup uses a small number of event types. Each Flow sends an event name and relevant data to middleware, and middleware chooses the approved message construction. For example, lead_magnet_requested, appointment_confirmed, and order_receipt_requested can share validation, logging, sender settings, and duplicate controls while using different email content.

This also makes reporting clearer. Track at least:

  • Flow name and entry trigger;
  • contact identifier and recipient address where permitted;
  • event ID;
  • request timestamp and API response status;
  • Volanea message or request identifier, when available; and
  • final delivery, bounce, complaint, or engagement events where relevant.

Set alerts for a rise in request failures, invalid recipient data, bounces, or duplicate suppressions. A sudden increase usually reflects an upstream Flow edit, changed field, expired credential, domain configuration issue, or a broken intermediary—not a random inbox problem.

Conclusion: make the email send intentional

To send email from ManyChat with Volanea, place an External Request action at the precise point in a Flow where an email is expected, map only the required contact fields into Volanea’s REST request, and use a verified sender domain. Store the API key only in server-side automation configuration or, preferably for important workflows, in middleware-managed secrets.

The robust version of this integration plans for imperfect conditions. Validate email fields before the request, make each event idempotent, keep endpoint responses fast, test missing-data branches, and inspect both automation and email-provider logs. Those controls turn a basic chat-to-email handoff into dependable customer communication.

FAQ

Does Volanea have a native ManyChat integration?

No. This setup uses ManyChat’s External Request action to call Volanea’s REST API. There is no native Volanea ManyChat marketplace app or plugin required for this approach.

What triggers the email in ManyChat?

The email is triggered when a contact reaches the External Request action inside a ManyChat Flow. The Flow itself can begin from a keyword, button, channel automation, widget, or another supported ManyChat trigger.

Where should I put the Volanea API key?

Put it in the Authorization header of the server-side External Request configuration, or keep it in a middleware environment variable. Never expose it in browser code, a public URL, a chat message, or a client-visible widget configuration.

Can a ManyChat retry send the same email twice?

Yes, an uncertain or failed HTTP response can lead to retries in distributed workflows. Use a unique event ID and idempotency logic in middleware or Volanea’s documented idempotency support to prevent duplicate sends.

What if the email field is blank?

Branch before the External Request action. Ask the contact for an email address, save it to the intended field, and only send once the value is present and suitable for the message you intend to deliver.