ByteChef LogoByteChef

Infobip

Infobip is a global communications platform that provide cloud-based messaging and omnichannel communication solutions for businesses.

Categories: Communication

Type: infobip/v1


Connections

Version: 1

API Key

Properties

NameLabelTypeDescriptionRequired
keyAPI KeySTRINGtrue
baseUrlBase URLSTRINGPersonalized base URL for API requests.true

Connection Setup

  1. Navigate to https://portal.infobip.com/homepage.
  2. Open left sidebar menu.
  3. Expand Developer Tools and click on API Keys.
  4. Click on Create api key.
  5. Fill in the required fields.
  6. Select all needed scopes: inbound-message:read, whatsapp:manage and numbers:manage.
  7. Click on CREATE.
  8. You have your API key.

Actions

Make Outbound Call

Name: makeCall

Initiates an outbound voice call via the Infobip Calls API and executes a real-time workflow synchronously during the call. The action blocks until the call completes, allowing real-time audio processing and AI conversations over media streaming.

Properties

NameLabelTypeDescriptionRequired
toToSTRINGThe phone number to call in E.164 format.true
fromFromSTRINGThe caller ID (your Infobip voice number) in E.164 format.true
callsConfigurationIdCalls Configuration IDSTRINGThe Infobip Calls configuration ID that the outbound call is placed under. Created in the Infobip portal or via the Calls API.true
applicationIdApplication IDSTRINGOptional Infobip application (subaccount) ID the call belongs to.false
subWorkflowReal-Time WorkflowSTRINGThe workflow ID to execute synchronously during the phone call. This workflow handles real-time audio processing and AI responses via media streaming.true
timeoutRing TimeoutINTEGERMaximum time in seconds to wait for the call to be answered. If not answered within this time, the call fails.false
maxDurationMax Call DurationINTEGERMaximum duration in minutes to wait for the call to complete. After this time, the action returns with a timeout status.false

Example JSON Structure

{
  "label" : "Make Outbound Call",
  "name" : "makeCall",
  "parameters" : {
    "to" : "",
    "from" : "",
    "callsConfigurationId" : "",
    "applicationId" : "",
    "subWorkflow" : "",
    "timeout" : 1,
    "maxDuration" : 1
  },
  "type" : "infobip/v1/makeCall"
}

Output

Type: OBJECT

Properties

NameTypeDescription
callIdSTRINGUnique identifier for the call
stateSTRINGFinal call state (FINISHED, timeout)
durationINTEGERCall duration in seconds
directionSTRINGCall direction (OUTBOUND)

Output Example

{
  "callId" : "",
  "state" : "",
  "duration" : 1,
  "direction" : ""
}

Send SMS

Name: sendSMS

Send a new SMS message to one or more recipients.

Properties

NameLabelTypeDescriptionRequired
senderFromSTRINGThe sender ID. It can be alphanumeric or numeric (e.g., CompanyName).true
toToARRAY
Items [STRING]
Message recipient numbers.true
textTextSTRINGContent of the message being sent.true

Example JSON Structure

{
  "label" : "Send SMS",
  "name" : "sendSMS",
  "parameters" : {
    "sender" : "",
    "to" : [ "" ],
    "text" : ""
  },
  "type" : "infobip/v1/sendSMS"
}

Output

Type: OBJECT

Properties

NameTypeDescription
bulkIdSTRINGID assigned to the request if messaging multiple recipients or sending multiple messages via a single API request.
messagesARRAY
Items [{STRING(messageId), {INTEGER(groupId), STRING(groupName), INTEGER(id), STRING(name), STRING(description), STRING(action)}(status), STRING(destination), {INTEGER(messageCount)}(details)}]
An array of message objects of a single message or multiple messages sent under one bulk ID.

Output Example

{
  "bulkId" : "",
  "messages" : [ {
    "messageId" : "",
    "status" : {
      "groupId" : 1,
      "groupName" : "",
      "id" : 1,
      "name" : "",
      "description" : "",
      "action" : ""
    },
    "destination" : "",
    "details" : {
      "messageCount" : 1
    }
  } ]
}

Send Whatsapp Template Message

Name: sendWhatsappTemplateMessage

Send a template message.

Properties

NameLabelTypeDescriptionRequired
fromFromSTRINGRegistered WhatsApp sender number. Must be in international format and comply with WhatsApp's requirements.true
toToSTRINGMessage recipient number. Must be in international format.true
templateNameTemplate NameSTRING
Depends On from
Name of the WhatsApp template to use.true
placeholdersDYNAMIC_PROPERTIES
Depends On templateName
false

Example JSON Structure

{
  "label" : "Send Whatsapp Template Message",
  "name" : "sendWhatsappTemplateMessage",
  "parameters" : {
    "from" : "",
    "to" : "",
    "templateName" : "",
    "placeholders" : { }
  },
  "type" : "infobip/v1/sendWhatsappTemplateMessage"
}

Output

Type: OBJECT

Properties

NameTypeDescription
messagesARRAY
Items [{STRING(to), INTEGER(messageCount), STRING(messageId), {INTEGER(groupId), STRING(groupName), INTEGER(id), STRING(name), STRING(description), STRING(action)}(status)}]

Output Example

{
  "messages" : [ {
    "to" : "",
    "messageCount" : 1,
    "messageId" : "",
    "status" : {
      "groupId" : 1,
      "groupName" : "",
      "id" : 1,
      "name" : "",
      "description" : "",
      "action" : ""
    }
  } ]
}

Send WhatsApp Text Message

Name: sendWhatsappTextMessage

Send a WhatsApp text message to a single recipient.

Properties

NameLabelTypeDescriptionRequired
fromFromSTRINGRegistered WhatsApp sender number. Must be in international format and comply with WhatsApp's requirements.true
toToSTRINGMessage recipient number. Must be in international format.true
textTextSTRINGContent of the message being sent.true

Example JSON Structure

{
  "label" : "Send WhatsApp Text Message",
  "name" : "sendWhatsappTextMessage",
  "parameters" : {
    "from" : "",
    "to" : "",
    "text" : ""
  },
  "type" : "infobip/v1/sendWhatsappTextMessage"
}

Output

Type: OBJECT

Properties

NameTypeDescription
toSTRINGThe destination address of the message.
messageCountINTEGERNumber of messages required to deliver.
messageIdSTRINGID of the message sent.
statusOBJECT
Properties {INTEGER(groupId), STRING(groupName), INTEGER(id), STRING(name), STRING(description), STRING(action)}
Status of the message.

Output Example

{
  "to" : "",
  "messageCount" : 1,
  "messageId" : "",
  "status" : {
    "groupId" : 1,
    "groupName" : "",
    "id" : 1,
    "name" : "",
    "description" : "",
    "action" : ""
  }
}

Triggers

Inbound Voice Call

Name: inboundCall

Triggers when an inbound voice call is received via Infobip. The call is streamed to a real-time workflow for audio processing and AI conversation over media streaming.

Type: STATIC_WEBHOOK

Properties

NameLabelTypeDescriptionRequired
subWorkflowReal-Time WorkflowSTRINGThe workflow ID to execute synchronously during the phone call. This workflow handles real-time audio processing and AI responses.true
signatureSecretWebhook Signature SecretSTRINGOptional shared secret used to verify the HMAC signature Infobip sends on signed webhooks. When set, requests with a missing or invalid signature are rejected. Leave empty to skip signature verification.false

Output

Type: OBJECT

Properties

NameTypeDescription
callIdSTRINGUnique identifier for the call
fromSTRINGCaller phone number
toSTRINGCalled phone number
directionSTRINGCall direction (INBOUND)
stateSTRINGCall state

JSON Example

{
  "label" : "Inbound Voice Call",
  "name" : "inboundCall",
  "parameters" : {
    "subWorkflow" : "",
    "signatureSecret" : ""
  },
  "type" : "infobip/v1/inboundCall"
}

New SMS Message

Name: newSMS

Triggers when a new SMS message is received.

Type: DYNAMIC_WEBHOOK

Properties

NameLabelTypeDescriptionRequired
numberNumberSTRINGNumber to monitor for new SMS messages.true
keywordKeywordSTRINGKeywords are words at the beginning of the message text of the inbound message that are used to filter out specific messages received on a number.false

Output

The output for this action is dynamic and may vary depending on the input parameters. To determine the exact structure of the output, you need to execute the action.

JSON Example

{
  "label" : "New SMS Message",
  "name" : "newSMS",
  "parameters" : {
    "number" : "",
    "keyword" : ""
  },
  "type" : "infobip/v1/newSMS"
}

Keyword Property

To learn more about keyword property, click here.

New WhatsApp Message

Name: newWhatsappMessage

Triggers when a new WhatsApp message is received.

Type: DYNAMIC_WEBHOOK

Properties

NameLabelTypeDescriptionRequired
numberNumberSTRINGNumber to monitor for new WhatsApp messages.true
keywordKeywordSTRINGKeywords are words at the beginning of the message text of the inbound message that are used to filter out specific messages received on a number.false

Output

The output for this action is dynamic and may vary depending on the input parameters. To determine the exact structure of the output, you need to execute the action.

JSON Example

{
  "label" : "New WhatsApp Message",
  "name" : "newWhatsappMessage",
  "parameters" : {
    "number" : "",
    "keyword" : ""
  },
  "type" : "infobip/v1/newWhatsappMessage"
}

Keyword Property

To learn more about keyword property, click here.

What to do if your action is not listed here?

If this component doesn't have the action you need, you can use Custom Action to create your own. Custom Actions empower you to define HTTP requests tailored to your specific requirements, allowing for greater flexibility in integrating with external services or APIs.

To create a Custom Action, simply specify the desired HTTP method, path, and any necessary parameters. This way, you can extend the functionality of your component beyond the predefined actions, ensuring that you can meet all your integration needs effectively.


Additional Instructions

Keywords

Infobip keywords are specific words or phrases associated with a number that Infobip uses to decide how to route incoming messages and which actions to trigger. In ByteChef, the Keyword field (used, for example, in the New WhatsApp Message trigger) lets you take advantage of this mechanism.

How keywords work

  • A keyword is typically a word or short code that appears in the incoming message (for example: START, HELP, SALES).
  • Infobip matches incoming messages against the configured keywords on a given number and can perform different actions based on which keyword was used.
  • ByteChef passes the configured keyword to Infobip when enabling the webhook, so only messages that match that keyword (according to Infobip’s rules and configuration) will be delivered to the webhook and can trigger your workflow.

When to use a keyword

Use a keyword when you want to:

  • Route only specific messages to this trigger (e.g. messages that start with ORDER).
  • Have multiple workflows that react differently to messages sent to the same number, based on the keyword.
  • Implement opt‑in / opt‑out flows or different “channels” (e.g. NEWS, PROMO, SUPPORT) on a single number.

If you do not need keyword‑based routing and want to handle all incoming messages for a number with a single workflow, you can leave the keyword field empty (or follow your Infobip configuration strategy).

For detailed information about how keywords work in Infobip, see the official documentation.

Voice Calls (Real-Time Media Streaming)

The Make Outbound Call action and the Inbound Voice Call trigger stream call audio to a real-time sub-workflow over a WebSocket bridge, enabling live audio processing and AI voice conversations.

Operator setup

  • Enable media replacement. Bidirectional audio (the sub-workflow both receiving caller audio and sending audio back into the call) requires media replacement to be enabled on the Infobip media-stream configuration. Without it, streaming is receive-only and the caller will not hear the workflow's responses.
  • Public URL. ByteChef must be reachable at a public HTTPS URL so Infobip can open the wss:// media stream back to the platform bridge.
  • Calls configuration. Outbound calls require a Calls configuration ID (created in the Infobip portal or via the Calls API); optionally scope calls to a subaccount with an application ID.
  • Webhook signature (recommended). Set a Webhook Signature Secret on the Inbound Voice Call trigger to reject unsigned or tampered inbound-call webhooks. Leave it empty to skip verification.

Note: the Infobip Calls API endpoints, field names, webhook signature header, and call-state values used by these operations follow Infobip's documented conventions. Verify them against your account's Calls API version before relying on voice in production.

How is this guide?

Last updated on

On this page