AutomationFlowsAI & RAG › SMS Messaging API Integration for AI Agents with Bulksms

SMS Messaging API Integration for AI Agents with Bulksms

ByDavid Ashby @cfomodz on n8n.io

Complete MCP server exposing 15 BulkSMS JSON REST API operations to AI agents.

Event trigger★★★★☆ complexityAI-powered24 nodesMcp TriggerHTTP Request Tool
AI & RAG Trigger: Event Nodes: 24 Complexity: ★★★★☆ AI nodes: yes Added:

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

This workflow follows the HTTP Request Tool → Mcptrigger 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": "vepecgVq69ZuBVeW",
  "meta": null,
  "name": "BulkSMS JSON REST API MCP Server",
  "tags": [],
  "nodes": [
    {
      "id": "ffd1848a-14c2-4de5-beb4-51f5b4e59f5e",
      "name": "Setup Instructions",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1380,
        -240
      ],
      "parameters": {
        "color": 4,
        "height": 1060,
        "content": "### \u2699\ufe0f Setup Instructions\n\n1. **Import Workflow**: \nLoad this workflow into your n8n instance\n\n2. **Configure Authentication**: \nSet up basic credentials\n\n3. **Activate Workflow**:\nEnable the workflow to start the MCP server\n\n4. **Get MCP URL**: \nCopy the webhook URL from the MCP trigger\n\n5. **Connect AI Agent**:\nUse the MCP URL in your AI agent configuration\n\n\n### \ud83d\udca1 Usage Notes\n\u2022 Parameters are auto-populated by AI using $fromAI() expressions\n\u2022 With 15 API endpoints available as tools\n\u2022 Responses maintain original API structure\n\n\n### \ud83d\udee0\ufe0f Customization\n\u2022 Add data transformation nodes if needed\n\u2022 Implement custom error handling\n\u2022 Add logging or monitoring nodes\n\n\u2022 Modify parameter defaults in any HTTP request node as needed\n\n### \ud83d\udcac Need Help?\nPing me on [discord](https://discord.me/cfomodz) for integration guidance and custom automations. Check the [n8n documentation](https://docs.n8n.io/integrations/builtin/cluster-nodes/sub-nodes/n8n-nodes-langchain.toolmcp/) for more information."
      },
      "typeVersion": 1
    },
    {
      "id": "139e3569-1e49-4b65-8614-7d8623dada9c",
      "name": "Workflow Overview",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1120,
        -240
      ],
      "parameters": {
        "width": 420,
        "height": 1200,
        "content": "## \ud83d\udee0\ufe0f BulkSMS JSON REST MCP Server \u2705 15 operations\n\n### About\nThe BulkSMS JSON REST API (base URL: `https://api.bulksms.com/v1`) enables sending and receiving SMS messages, accessing message history, and viewing account details. All requests require `Content-Type: application/json` and support features like Unicode encoding, group messaging, and batch sends. Dates must be ISO-8601 formatted, and unknown response properties should be ignored for forward compatibility.\n\n### \ud83d\udd27 How it Works\n\nThis workflow converts the BulkSMS JSON REST API into an MCP-compatible interface for AI agents.\n\n\u2022 **MCP Trigger**: Serves as your server endpoint for AI agent requests\n\u2022 **HTTP Request Nodes**: Handle API calls to https://api.bulksms.com/v1\n\u2022 **AI Expressions**: Automatically populate parameters via `$fromAI()` placeholders\n\u2022 **Native Integration**: Returns responses directly to the AI agent\n\n\n### \ud83d\udccb Available Operations (15 endpoints)\n\n**Blocked Numbers (2 operations)**\nList Blocked Numbers, Block Phone Number\n\n**Credits (1 operations)**\nTransfer Account Credits\n\n**Message (5 operations)**\nRetrieve Message History, Send New Message, Send Quick Message, View Message Details, List Related Messages\n\n**Profile (1 operations)**\nRetrieve User Profile\n\n**Attachments (1 operations)**\nGenerate Attachment Upload URL\n\n**Web Hooks (5 operations)**\nList All Webhooks, Register New Webhook, Remove Webhook, Get Webhook Details, Update Webhook Settings\n\n"
      },
      "typeVersion": 1
    },
    {
      "id": "f2961312-51e8-44f6-bfee-cdec1c3bdf76",
      "name": "BulkSMS JSON REST MCP Server",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        -620,
        -240
      ],
      "parameters": {
        "path": "bulksms-json-rest-mcp"
      },
      "typeVersion": 1
    },
    {
      "id": "ec898aef-262d-4aab-a1a3-c752137c9f9e",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        -100
      ],
      "parameters": {
        "color": 2,
        "width": 500,
        "height": 200,
        "content": "## Blocked Numbers"
      },
      "typeVersion": 1
    },
    {
      "id": "a3688902-64ba-4fed-a550-885f22402565",
      "name": "List Blocked Numbers",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        -60
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/blocked-numbers",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "min-id",
              "value": "={{ $fromAI('min-id', 'Records with an `id` that is greater or equal to min-id will be returned. The default value is `0`. You can add 1 to an id that you previously retrieved, to return subsequent records.', 'number') }}"
            },
            {
              "name": "limit",
              "value": "={{ $fromAI('limit', 'The maximum number of records to return. The default value is `10000`. The value cannot be greater than 10000.', 'number') }}"
            }
          ]
        },
        "toolDescription": "List blocked numbers\n\nParameters:\n- Query parameters:\n  \u2022 min-id (optional) - Records with an `id` that is greater or equal to min-id will be returned. The default value is `0`. You can add 1 to an id that you previously retrieved, to return subsequent records.\n  \u2022 limit (optional) - Maximum number of records to return. The default value is `10000`. The value cannot be greater than 10000."
      },
      "typeVersion": 4.2
    },
    {
      "id": "a74dd5ac-d039-4155-8809-69fdeb961f82",
      "name": "Block Phone Number",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -320,
        -60
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/blocked-numbers",
        "method": "POST",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Create a blocked number"
      },
      "typeVersion": 4.2
    },
    {
      "id": "ff5bccbc-396a-4fef-9eed-ee6f1f1627ea",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        140
      ],
      "parameters": {
        "color": 3,
        "width": 300,
        "height": 200,
        "content": "## Credits"
      },
      "typeVersion": 1
    },
    {
      "id": "241f3f45-c9c9-4116-b864-3caf3d11c9a1",
      "name": "Transfer Account Credits",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        180
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/credit/transfer",
        "method": "POST",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Transfer credits to another account"
      },
      "typeVersion": 4.2
    },
    {
      "id": "a16a1223-1a6d-4981-a5f9-1ab96f31ce8f",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        380
      ],
      "parameters": {
        "color": 4,
        "width": 1100,
        "height": 200,
        "content": "## Message"
      },
      "typeVersion": 1
    },
    {
      "id": "f180dd93-2088-4684-8b0d-6f8314b86266",
      "name": "Retrieve Message History",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        420
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/messages",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "limit",
              "value": "={{ $fromAI('limit', 'The maximum number of messages that are returned. The default is 1000. The value of `limit` is not a guarantee that a specific number of messages will be in the response, even if there are more messages available. Consider the case where you have 150 messages and you specify `limit=50`. It is possible that only 49 messages will be returned. The way to make sure that there are no more messages is to submit a new call using the `id` filter field with the `<` operator (described below).', 'number') }}"
            },
            {
              "name": "filter",
              "value": "={{ $fromAI('filter', 'See the message filtering for more information.', 'string') }}"
            },
            {
              "name": "sortOrder",
              "value": "={{ $fromAI('sortOrder', 'The default value is DESCENDING If the `sortOrder` is DESCENDING, the newest messages be first in the result. ASCENDING places the oldest messages on top of the response.', 'string') }}"
            }
          ]
        },
        "toolDescription": "Retrieve Messages\n\nParameters:\n- Query parameters:\n  \u2022 limit (optional) - Maximum number of messages that are returned. The default is 1000. The value of `limit` is not a guarantee that a specific number of messages will be in the response, even if there are more messages available. Consider the case where you have 150 messages and you specify `limit=50`. It is possible that only 49 messages will be returned. The way to make sure that there are no more messages is to submit a new call using the `id` filter field with the `<` operator (described below).\n  \u2022 filter (optional) - See the message filtering for more information.\n  \u2022 sortOrder (optional) - Default value is DESCENDING If the `sortOrder` is DESCENDING, the newest messages be first in the result. ASCENDING places the oldest messages on top of the response."
      },
      "typeVersion": 4.2
    },
    {
      "id": "761a0989-3391-4aea-acc2-f02056ab9603",
      "name": "Send New Message",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -320,
        420
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/messages",
        "method": "POST",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "deduplication-id",
              "value": "={{ $fromAI('deduplication-id', 'Safeguards against the possibility of sending the same messages more than once. If a communication failure occurs during a submission, you cannot be sure that the submission was processed; therefore you would have to submit it again. When you post the retry, you must use the `deduplication-id` of the original post. The BulkSMS system uses this ID to check that the request was not previously processed. (If it was previously processed, the submission will succeed, and the behaviour will be indistinguishable to you from a non-duplicated submission). The ID expires after about 12 hours.', 'number') }}"
            },
            {
              "name": "auto-unicode",
              "value": "={{ $fromAI('auto-unicode', 'Specifies how to deal with message text that contains characters not present in the GSM 03.38 character set. Messages that contain only GSM 03.38 characters are not affected by this setting. If the value is `true` then a message containing non-GSM 03.38 characters will be transmitted as a Unicode SMS (which is most likely more costly). Please note: when `auto-unicode` is `true` and the value of the `encoding` property is specified as `UNICODE`, the message will always be sent as `UNICODE`. If the value is `false` and the `encoding` property is `TEXT` then non-GSM 03.38 characters will be replaced by the `?` character. When using this setting on the API, you should take case to ensure that your message is _clean_. Invisible unicode and unexpected characters could unintentionally convert an message to `UNICODE`. A common mistake is to use the backtick character (\\`) which is unicode and will turn your `TEXT` message into a `UNICODE` message.', 'boolean', false) }}"
            },
            {
              "name": "schedule-date",
              "value": "={{ $fromAI('schedule-date', 'Allows you to send a message in the future. An example value is `2019-02-18T13:00:00+02:00`. It encodes to `2019-02-18T13%3A00%3A00%2B02%3A00`. Credits are deducted from your account immediately. Once submitted, scheduled messages cannot be changed or cancelled. The date can be a maximum of two years in the future. If the value is in the past, the message will be sent immediately. The date format requires you to supply an offset from UTC. You can decide to use the offset of your timezone, or maybe the zone of the recipient's location is more appropriate. If the destination is a group, the group members are determined at the time that you submit the message; not the time the message is scheduled to be sent.', 'string') }}"
            },
            {
              "name": "schedule-description",
              "value": "={{ $fromAI('schedule-description', 'A note that is stored together with a scheduled submission, which could be used to more easily identify the scheduled submission at a later date. The value of this field is ignored if the `schedule-date` is not provided. A value that is longer than 256 characters is truncated.', 'string') }}"
            }
          ]
        },
        "toolDescription": "Send Messages\n\nParameters:\n- Query parameters:\n  \u2022 deduplication-id (optional) - Safeguards against the possibility of sending the same messages more than once. If a communication failure occurs during a submission, you cannot be sure that the submission was processed; therefore you would have to submit it again. When you post the retry, you must use the `deduplication-id` of the original post. The BulkSMS system uses this ID to check that the request was not previously processed. (If it was previously processed, the submission will succeed, and the behaviour will be indistinguishable to you from a non-duplicated submission). The ID expires after about 12 hours.\n  \u2022 auto-unicode (optional) - Specifies how to deal with message text that contains characters not present in the GSM 03.38 character set. Messages that contain only GSM 03.38 characters are not affected by this setting. If the value is `true` then a message containing non-GSM 03.38 characters will be transmitted as a Unicode SMS (which is most likely more costly). Please note: when `auto-unicode` is `true` and the value of the `encoding` property is specified as `UNICODE`, the message will always be sent as `UNICODE`. If the value is `false` and the `encoding` property is `TEXT` then non-GSM 03.38 characters will be replaced by the `?` character. When using this setting on the API, you should take case to ensure that your message is _clean_. Invisible unicode and unexpected characters could unintentionally convert an message to `UNICODE`. A common mistake is to use the backtick character (\\`) which is unicode and will turn your `TEXT` message into a `UNICODE` message.\n  \u2022 schedule-date (optional) - Allows you to send a message in the future. An example value is `2019-02-18T13:00:00+02:00`. It encodes to `2019-02-18T13%3A00%3A00%2B02%3A00`. Credits are deducted from your account immediately. Once submitted, scheduled messages cannot be changed or cancelled. The date can be a maximum of two years in the future. If the value is in the past, the message will be sent immediately. The date format requires you to supply an offset from UTC. You can decide to use the offset of your timezone, or maybe the zone of the recipient's location is more appropriate. If the destination is a group, the group members are determined at the time that you submit the message; not the time the message is scheduled to be sent.\n  \u2022 schedule-description (optional) - A note that is stored together with a scheduled submission, which could be used to more easily identify the scheduled submission at a later date. The value of this field is ignored if the `schedule-date` is not provided. A value that is longer than 256 characters is truncated."
      },
      "typeVersion": 4.2
    },
    {
      "id": "da4d9b50-4c74-4e1b-bc12-e005e072c171",
      "name": "Send Quick Message",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -120,
        420
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/messages/send",
        "options": {},
        "sendQuery": true,
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "queryParameters": {
          "parameters": [
            {
              "name": "to",
              "value": "={{ $fromAI('to', 'The phone number of the recipient.', 'string') }}"
            },
            {
              "name": "body",
              "value": "={{ $fromAI('body', 'The text you want to send.', 'string') }}"
            },
            {
              "name": "deduplication-id",
              "value": "={{ $fromAI('deduplication-id', 'Refer to the `deduplication-id` parameter.', 'number') }}"
            }
          ]
        },
        "toolDescription": "Send message by simple GET or POST\n\nParameters:\n- Query parameters:\n  \u2022 to (required) - Phone number of the recipient.\n  \u2022 body (required) - Text you want to send.\n  \u2022 deduplication-id (optional) - Refer to the `deduplication-id` parameter."
      },
      "typeVersion": 4.2
    },
    {
      "id": "6d38d67c-9378-4dab-b796-5972253dbc13",
      "name": "View Message Details",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        80,
        420
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/messages/{{ $fromAI('id', 'The `id` of the message you want to retrieve', 'string') }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Show Message\n\nParameters:\n- Path parameters:\n  \u2022 id (required) - `id` of the message you want to retrieve"
      },
      "typeVersion": 4.2
    },
    {
      "id": "cca16e92-3920-433c-be53-a89c5cc67795",
      "name": "List Related Messages",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        280,
        420
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/messages/{{ $fromAI('id', 'The `id` of the sent message', 'string') }}/relatedReceivedMessages",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "List Related Messages\n\nParameters:\n- Path parameters:\n  \u2022 id (required) - `id` of the sent message"
      },
      "typeVersion": 4.2
    },
    {
      "id": "fed9d264-416c-4cc3-94f8-4dee00a52608",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        620
      ],
      "parameters": {
        "color": 5,
        "width": 300,
        "height": 200,
        "content": "## Profile"
      },
      "typeVersion": 1
    },
    {
      "id": "5111f4ea-a923-470a-83cf-fce4e1b72263",
      "name": "Retrieve User Profile",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        660
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/profile",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Get profile"
      },
      "typeVersion": 4.2
    },
    {
      "id": "20b39b3e-f87f-437a-9d30-c025adb9ba92",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        860
      ],
      "parameters": {
        "color": 6,
        "width": 300,
        "height": 200,
        "content": "## Attachments"
      },
      "typeVersion": 1
    },
    {
      "id": "c6308484-de77-4432-a843-55205bdeb278",
      "name": "Generate Attachment Upload URL",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        900
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/rmm/pre-sign-attachment",
        "method": "POST",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Upload an attachment via a signed URL"
      },
      "typeVersion": 4.2
    },
    {
      "id": "05c2fd0b-96a2-4477-a536-0701d70f54cd",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -660,
        1100
      ],
      "parameters": {
        "color": 7,
        "width": 1100,
        "height": 200,
        "content": "## Web Hooks"
      },
      "typeVersion": 1
    },
    {
      "id": "10ce567c-fa34-4b96-8020-8e8c4f7382d1",
      "name": "List All Webhooks",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -520,
        1140
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/webhooks",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "List webhooks"
      },
      "typeVersion": 4.2
    },
    {
      "id": "b8d0b7f4-d7f1-4927-a6f8-0a6ecfb0d368",
      "name": "Register New Webhook",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -320,
        1140
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/webhooks",
        "method": "POST",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Create a webhook"
      },
      "typeVersion": 4.2
    },
    {
      "id": "68b760b9-57b5-48d5-9abd-96f05f7de851",
      "name": "Remove Webhook",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        -120,
        1140
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/webhooks/{{ $fromAI('id', 'The `id` of the webhook', 'string') }}",
        "method": "DELETE",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Delete a webhook\n\nParameters:\n- Path parameters:\n  \u2022 id (required) - `id` of the webhook"
      },
      "typeVersion": 4.2
    },
    {
      "id": "1ba4713e-228a-4ada-ac2e-6cd3069d98aa",
      "name": "Get Webhook Details",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        80,
        1140
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/webhooks/{{ $fromAI('id', 'The `id` of the webhook', 'string') }}",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Read a webhook\n\nParameters:\n- Path parameters:\n  \u2022 id (required) - `id` of the webhook"
      },
      "typeVersion": 4.2
    },
    {
      "id": "eb6d6819-51d0-4fc7-81a6-ec9f38b573c9",
      "name": "Update Webhook Settings",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        280,
        1140
      ],
      "parameters": {
        "url": "=https://api.bulksms.com/v1/webhooks/{{ $fromAI('id', 'The `id` of the webhook', 'string') }}",
        "method": "POST",
        "options": {},
        "authentication": "genericCredentialType",
        "genericAuthType": "httpHeaderAuth",
        "toolDescription": "Update a webhook\n\nParameters:\n- Path parameters:\n  \u2022 id (required) - `id` of the webhook"
      },
      "typeVersion": 4.2
    }
  ],
  "active": false,
  "shared": [
    {
      "role": "workflow:owner",
      "project": {
        "id": "G5fce9xGuBAsWBXe",
        "icon": null,
        "name": "David Ashby <david.ashby.lds@gmail.com>",
        "type": "personal",
        "createdAt": "2025-06-04T02:55:02.013Z",
        "updatedAt": "2025-06-04T02:56:01.361Z",
        "projectRelations": [
          {
            "role": "project:personalOwner",
            "user": {
              "id": "715c1c00-cb48-4712-9a32-f1f4b6db2b30",
              "role": "global:owner",
              "email": "david.ashby.lds@gmail.com",
              "disabled": false,
              "lastName": "Ashby",
              "settings": {
                "npsSurvey": {
                  "responded": true,
                  "lastShownAt": 1749357655581
                },
                "userActivated": true,
                "userActivatedAt": 1749075994495,
                "easyAIWorkflowOnboarded": true,
                "firstSuccessfulWorkflowId": "3N3vVikZb3MckFYm"
              },
              "createdAt": "2025-06-04T02:55:01.745Z",
              "firstName": "David",
              "isPending": false,
              "updatedAt": "2025-06-08T04:40:58.399Z",
              "mfaEnabled": false,
              "personalizationAnswers": {
                "version": "v4",
                "personalization_survey_n8n_version": "1.95.3",
                "personalization_survey_submitted_at": "2025-06-04T02:56:07.075Z"
              }
            },
            "userId": "715c1c00-cb48-4712-9a32-f1f4b6db2b30",
            "createdAt": "2025-06-04T02:55:02.013Z",
            "projectId": "G5fce9xGuBAsWBXe",
            "updatedAt": "2025-06-04T02:55:02.013Z"
          }
        ]
      },
      "createdAt": "2025-07-01T23:44:30.792Z",
      "projectId": "G5fce9xGuBAsWBXe",
      "updatedAt": "2025-07-01T23:44:30.792Z",
      "workflowId": "vepecgVq69ZuBVeW"
    }
  ],
  "settings": {
    "timezone": "America/New_York"
  },
  "createdAt": "2025-07-01T23:44:30.790Z",
  "updatedAt": "2025-07-01T23:46:33.000Z",
  "versionId": "b9717cfb-00eb-43cb-bc36-5aee5bddc328",
  "isArchived": false,
  "staticData": null,
  "connections": {
    "Remove Webhook": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Send New Message": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "List All Webhooks": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Block Phone Number": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Send Quick Message": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Get Webhook Details": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "List Blocked Numbers": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Register New Webhook": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "View Message Details": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "List Related Messages": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve User Profile": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Update Webhook Settings": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Retrieve Message History": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Transfer Account Credits": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Generate Attachment Upload URL": {
      "ai_tool": [
        [
          {
            "node": "BulkSMS JSON REST MCP Server",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  },
  "triggerCount": 0
}
Pro

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

About this workflow

Complete MCP server exposing 15 BulkSMS JSON REST API operations to AI agents.

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

More AI & RAG workflows → · Browse all categories →

Related workflows

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

AI & RAG

The AI-Powered Shopify SEO Content Automation is an enterprise-grade workflow that transforms product content creation for e-commerce stores. This sophisticated multi-agent system integrates GPT-4o, C

Perplexity Tool, Memory Buffer Window, Agent +15
AI & RAG

Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?

Github Tool, Mcp Trigger, HTTP Request Tool
AI & RAG

Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?

Mcp Trigger, HTTP Request Tool
AI & RAG

Need help? Want access to this workflow + many more paid workflows + live Q&A sessions with a top verified n8n creator?

Mcp Trigger, HTTP Request Tool
AI & RAG

Awesome N8N Templates. Uses agent, telegramTrigger, mcpClientTool, mcpTrigger. Event-driven trigger; 33 nodes.

Agent, Telegram Trigger, Mcp Client Tool +9