StackedThink

Blog

MySQL to Elasticsearch Sync Automation Recipe (No Code)

05 April 2025

A Make.com automation recipe that syncs MySQL data to Elasticsearch in real-time — no coding or DevOps required.

Who This Is For

Solo developers and small teams who need real-time search capabilities from their MySQL databases but lack DevOps resources or backend engineering bandwidth. This recipe is ideal for indie hackers, bootstrapped SaaS founders, and no-code builders who want to unlock full-text search without managing infrastructure.

What You Get

A ready-to-import Make.com scenario that:

  • Watches for new or updated rows in a MySQL table
  • Transforms the data into a structured JSON format
  • Sends that data to an Elasticsearch index in real-time
  • Requires zero custom code or server setup

This automation powers search features for apps, dashboards, and internal tools — all without touching a terminal or writing a single line of backend code.

Why It Matters

Real-time search is table stakes for modern apps, but setting up Elasticsearch is notoriously complex. This recipe cuts through the noise by:

  • Removing DevOps bottlenecks
  • Lowering infrastructure friction
  • Enabling rapid prototyping and MVP testing

Whether you're building a lead magnet, a niche calculator, or a data-backed comparison page, this automation makes your data searchable without slowing you down.

Trigger → Steps → Outcome

Trigger: New or updated row in a MySQL table (via webhook or polling)

Steps:

  1. Detect changes using a MySQL trigger or Make.com polling
  2. Fetch the changed row(s)
  3. Map fields to an Elasticsearch-compatible JSON structure
  4. Send the data to your Elasticsearch index via REST API

Outcome: Your MySQL data is searchable in Elasticsearch within seconds, with no backend code or DevOps setup.

Importable Make.com Scenario (JSON)

{
  "name": "MySQL to Elasticsearch Sync",
  "modules": [
    {
      "id": "trigger",
      "type": "webhooks",
      "action": "catch_hook",
      "label": "Catch New MySQL Row"
    },
    {
      "id": "transform",
      "type": "tools",
      "action": "json_transform",
      "input": {
        "template": "{\n  \"id\": {{id}},\n  \"title\": \"{{title}}\",\n  \"content\": \"{{content}}\",\n  \"created_at\": \"{{created_at}}\"\n}"
      },
      "label": "Map to Elasticsearch Format"
    },
    {
      "id": "send",
      "type": "http",
      "action": "make_request",
      "input": {
        "url": "https://your-elasticsearch-endpoint.com/index/_doc/{{id}}",
        "method": "PUT",
        "headers": {
          "Content-Type": "application/json",
          "Authorization": "ApiKey YOUR_API_KEY"
        },
        "body": "{{transform.output}}"
      },
      "label": "Send to Elasticsearch"
    }
  ]
}

Step-by-Step Setup Guide

  1. Set Up Your MySQL Trigger

  2. Import the Scenario

    • Copy the JSON above into Make.com's scenario importer.
    • Adjust field mappings to match your table schema.
  3. Configure Elasticsearch

    • Create an index in your Elasticsearch instance.
    • Generate an API key with write permissions.
  4. Test and Deploy

    • Insert a test row in your MySQL table.
    • Confirm it appears in Elasticsearch within seconds.
  5. Monitor and Iterate

    • Use Make.com’s logs to monitor sync performance.
    • Add filters or transformations as needed.

Troubleshooting FAQ

Q: How do I handle deletes in MySQL? A: Add a separate trigger that sends a DELETE request to Elasticsearch when a row is removed.

Q: Can this work with hosted MySQL (e.g., PlanetScale, Supabase)? A: Yes — just ensure your connection settings are correct and your host allows outbound webhooks.

Q: What if my data has nested fields? A: Modify the JSON transform step to flatten or nest fields as needed for your Elasticsearch mapping.

Q: Do I need to manage Elasticsearch scaling? A: No — hosted solutions like Elastic Cloud handle that for you.

Next Step: Monetise With Search

Once your data is synced, you can build:

Ready to ship faster? Grab this recipe and start indexing today — no code, no servers, no stress.

👉 Download the full Make.com scenario JSON and get your data searchable in under 10 minutes.

← Back to blog