AutomationFlowsEmail & Gmail › Export Mirakl Kpis to CSV and Send by Email with Gmail

Export Mirakl Kpis to CSV and Send by Email with Gmail

ByEric Rigollet @eric31 on n8n.io

The workflow is triggered on a schedule. Configuration variables like API URL and email are set. Offers are fetched from the Mirakl API. Fetched data is formatted into a spreadsheet. The formatted data is emailed using Gmail. [ ] Configure the Schedule Trigger to define when the…

Cron / scheduled trigger★★★★☆ complexity10 nodesGmailHTTP Request
Email & Gmail Trigger: Cron / scheduled Nodes: 10 Complexity: ★★★★☆ Added:

This workflow corresponds to n8n.io template #15742 — we link there as the canonical source.

This workflow follows the Gmail → HTTP Request recipe pattern — see all workflows that pair these two integrations.

The workflow JSON

Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →

Download .json
{
  "id": "VqF3h33bBZsVWAZn",
  "name": "Automatic export of Mirakl KPI with email (CSV)",
  "tags": [
    {
      "id": "nCr7UNFAJE2BNGl2",
      "name": "perso",
      "createdAt": "2026-05-04T12:33:45.315Z",
      "updatedAt": "2026-05-04T12:33:45.315Z"
    }
  ],
  "nodes": [
    {
      "id": "1b5ab772-b86e-4938-9d2d-1a4745c60e89",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        0,
        0
      ],
      "parameters": {
        "width": 480,
        "height": 656,
        "content": "## Export automatique des KPI Mirakl par email (CSV)\n\n### How it works\n\n1. The workflow is triggered on a schedule.\n2. Configuration variables like API URL and email are set.\n3. Offers are fetched from the Mirakl API.\n4. Fetched data is formatted into a spreadsheet.\n5. The formatted data is emailed using Gmail.\n\n### Setup steps\n\n- [ ] Configure the Schedule Trigger to define when the workflow runs.\n- [ ] Set the API URL, key, and email address in the configuration node.\n- [ ] Configure Gmail credentials for email sending.\n\n### Customization\n\nThe schedule for the workflow can be modified according to requirements. The destination email address can also be customized."
      },
      "typeVersion": 1
    },
    {
      "id": "fc31ca74-18b0-407a-80d9-b363b12b92da",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        560,
        16
      ],
      "parameters": {
        "color": 7,
        "width": 576,
        "height": 272,
        "content": "## Initialize and configure workflow\n\nStarts the workflow and sets necessary configuration variables."
      },
      "typeVersion": 1
    },
    {
      "id": "bb706ab1-c5f5-4787-8078-242f8569580b",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1344,
        0
      ],
      "parameters": {
        "color": 7,
        "width": 708,
        "height": 304,
        "content": "## Fetch and transform data\n\nFetches statistics from the Mirakl API and transforms the data into a tabular format."
      },
      "typeVersion": 1
    },
    {
      "id": "2aeceea7-e8c9-4134-94af-c735b7ec050a",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        2256,
        0
      ],
      "parameters": {
        "color": 7,
        "height": 304,
        "content": "## Email formatted data\n\nSends the formatted data as an email using Gmail."
      },
      "typeVersion": 1
    },
    {
      "id": "d3b491e2-26e7-4832-9365-f82298a9a266",
      "name": "Daily Export Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "position": [
        608,
        128
      ],
      "parameters": {
        "rule": {
          "interval": [
            {}
          ]
        }
      },
      "typeVersion": 1.3
    },
    {
      "id": "4af521e1-8378-47b0-9a4a-5296792d2ea9",
      "name": "Send Email via Gmail",
      "type": "n8n-nodes-base.gmail",
      "position": [
        2304,
        128
      ],
      "parameters": {
        "sendTo": "={{ $('Set Configuration Parameters').item.json.email }}",
        "message": "=Bonjour,<br><br>\n\nVoici votre export automatique des indicateurs du jour li\u00e9es \u00e0 votre boutique Mirakl.<br><br>\n\nCordialement",
        "options": {
          "attachmentsUi": {
            "attachmentsBinary": [
              {
                "property": "marketplaces_kpi"
              }
            ]
          }
        },
        "subject": "Rapport d'indicateurs"
      },
      "credentials": {
        "gmailOAuth2": {
          "name": "<your credential>"
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "7d4dc744-a963-442f-b28a-80d7b83e66c0",
      "name": "Set Configuration Parameters",
      "type": "n8n-nodes-base.set",
      "position": [
        992,
        128
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "9a056f93-b2d3-4e94-ad2f-6642788a021c",
              "name": "api_url",
              "type": "string",
              "value": "https://votre-instance.mirakl.net/api/account/statistics?"
            },
            {
              "id": "f9b0b645-0850-42d1-a5cb-8e192da5f6b5",
              "name": "api_key",
              "type": "string",
              "value": "ma_cle_api"
            },
            {
              "id": "2f7f0c3b-6e79-469f-8ced-06d5a4e5ecf4",
              "name": "email",
              "type": "string",
              "value": "mon_mail"
            }
          ]
        }
      },
      "typeVersion": 3.4
    },
    {
      "id": "214edcd8-aa44-4807-9449-e2d0a6f0d987",
      "name": "Fetch Mirakl KPI",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        1392,
        128
      ],
      "parameters": {
        "url": "={{ $json.api_url }}",
        "options": {},
        "sendQuery": true,
        "sendHeaders": true,
        "queryParameters": {
          "parameters": [
            {}
          ]
        },
        "headerParameters": {
          "parameters": [
            {
              "name": "Authorization",
              "value": "={{ $json.api_key }}"
            },
            {
              "name": "Accept",
              "value": "application/json"
            }
          ]
        }
      },
      "typeVersion": 4.4
    },
    {
      "id": "51e4c3ce-a1ce-46fb-88f9-796b802d3e23",
      "name": "Convert to csv File",
      "type": "n8n-nodes-base.convertToFile",
      "position": [
        1872,
        128
      ],
      "parameters": {
        "options": {},
        "binaryPropertyName": "marketplaces_kpi"
      },
      "typeVersion": 1.1
    },
    {
      "id": "724924d4-650a-4a59-b922-405bde777448",
      "name": "Edit fields to to keep",
      "type": "n8n-nodes-base.set",
      "position": [
        1632,
        128
      ],
      "parameters": {
        "options": {},
        "assignments": {
          "assignments": [
            {
              "id": "1c2db0ee-be62-4e86-8184-ef8455c01301",
              "name": "approval_delay",
              "type": "number",
              "value": "={{ $json.approval_delay[2].value }}"
            },
            {
              "id": "7d5e0149-f48c-4e6a-b4f6-868f121610cb",
              "name": "approval_rate",
              "type": "number",
              "value": "={{ $json.approval_rate[2].value }}"
            },
            {
              "id": "538edde5-f90c-46a1-98b9-2b69b4e9780a",
              "name": "auto_refused_rate",
              "type": "number",
              "value": "={{ $json.auto_refused_rate[2].value }}"
            },
            {
              "id": "5d294223-8546-442e-b86b-8f053b27004d",
              "name": "auto_refused_rate",
              "type": "number",
              "value": "={{ $json.auto_refused_rate[2].value }}"
            },
            {
              "id": "9ff0efb0-a2a3-4c87-a215-5f2a065a440b",
              "name": "cancelation_rate",
              "type": "number",
              "value": "={{ $json.cancelation_rate[2].value }}"
            },
            {
              "id": "a4f3945e-505a-451a-ae89-f598a8ecf835",
              "name": "consecutive_refused_orders_count",
              "type": "number",
              "value": "={{ $json.consecutive_refused_orders_count[2].value }}"
            },
            {
              "id": "1d28fc68-2ca0-4065-80fa-c336e951fd21",
              "name": "evaluations_count",
              "type": "number",
              "value": "={{ $json.evaluations_count[2].value }}"
            },
            {
              "id": "8497bb2c-576c-4f57-b1b2-fb3ea36f22da",
              "name": "grade",
              "type": "number",
              "value": "={{ $json.grade[3].value }}"
            },
            {
              "id": "445be852-525c-4a58-a4f9-4da6255aa898",
              "name": "incident_rate",
              "type": "number",
              "value": "={{ $json.incident_rate[2].value }}"
            },
            {
              "id": "03e68fe2-21ec-424e-a12b-af7a8675ffef",
              "name": "late_shipment_rate",
              "type": "number",
              "value": "={{ $json.late_shipment_rate[2].value }}"
            },
            {
              "id": "ad351f31-8b71-45ed-8b95-1aeb89d307cd",
              "name": "offers_count",
              "type": "number",
              "value": "={{ $json.offers_count[2].value }}"
            },
            {
              "id": "f9413368-cec5-43bb-90e1-5c3158fa77f9",
              "name": "order_messages_response_delay",
              "type": "number",
              "value": "={{ $json.order_messages_response_delay[2].value }}"
            },
            {
              "id": "33f811f7-b90d-425a-bbaa-4f069244ae1a",
              "name": "refund_rate",
              "type": "number",
              "value": "={{ $json.refund_rate[2].value }}"
            },
            {
              "id": "67a92aa5-7bba-4aaa-8d5c-620dfe9f1198",
              "name": "return_rate",
              "type": "number",
              "value": "={{ $json.return_rate[2].value }}"
            },
            {
              "id": "c9105cc5-ef2d-481a-9586-548f24a929e4",
              "name": "shipping_delay",
              "type": "number",
              "value": "={{ $json.shipping_delay[2].value }}"
            },
            {
              "id": "d2215b3e-a6f0-46fd-978e-c8453f99b05b",
              "name": "valid_tracking_rate",
              "type": "number",
              "value": "={{ $json.valid_tracking_rate }}"
            }
          ]
        }
      },
      "typeVersion": 3.4
    }
  ],
  "active": false,
  "settings": {
    "binaryMode": "separate",
    "availableInMCP": false,
    "executionOrder": "v1"
  },
  "versionId": "77317d5e-b57f-4bfd-85c3-e6e94d924102",
  "connections": {
    "Fetch Mirakl KPI": {
      "main": [
        [
          {
            "node": "Edit fields to to keep",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Convert to csv File": {
      "main": [
        [
          {
            "node": "Send Email via Gmail",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Daily Export Trigger": {
      "main": [
        [
          {
            "node": "Set Configuration Parameters",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Edit fields to to keep": {
      "main": [
        [
          {
            "node": "Convert to csv File",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Set Configuration Parameters": {
      "main": [
        [
          {
            "node": "Fetch Mirakl KPI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

Credentials you'll need

Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.

Pro

For the full experience including quality scoring and batch install features for each workflow upgrade to Pro

About this workflow

The workflow is triggered on a schedule. Configuration variables like API URL and email are set. Offers are fetched from the Mirakl API. Fetched data is formatted into a spreadsheet. The formatted data is emailed using Gmail. [ ] Configure the Schedule Trigger to define when the…

Source: https://n8n.io/workflows/15742/ — original creator credit. Request a take-down →

More Email & Gmail workflows → · Browse all categories →

Related workflows

Workflows that share integrations, category, or trigger type with this one. All free to copy and import.

Email & Gmail

YOUR_ID 4. Uses gmail, googleDrive, googleSheets, httpRequest. Scheduled trigger; 53 nodes.

Gmail, Google Drive, Google Sheets +1
Email & Gmail

Instead of providing a routine check, it focuses on significant movements by: Sending a Slack alert only if a query crosses a defined movement threshold. Emailing a structured report with the Top 25 i

HTTP Request, Slack, Gmail
Email & Gmail

Looking for a way to track GitHub bounty issues automatically and get notified in real time? This GitHub Bounty Tracker workflow monitors repositories for issues labeled 💎 Bounty, logs them in Google

Google Sheets, HTTP Request, WhatsApp +1
Email & Gmail

This workflow automatically sends a beautifully designed HTML newsletter every Sunday at 8 AM, featuring products currently on sale from your Algolia-powered e-commerce store.

Google Sheets, HTTP Request, Gmail
Email & Gmail

This workflow automatically identifies your weekly bestselling product from your Algolia-powered e-commerce store and generates a cinematic product video using Google VEO 3.0 AI, helping marketing tea

HTTP Request, Gmail