← Twilio + Slack integrations

Delete Message with Slack API on New Incoming SMS (Instant) from Twilio API

Pipedream makes it easy to connect APIs for Slack, Twilio and 800+ other apps remarkably fast.

Trigger workflow on
New Incoming SMS (Instant) from the Twilio API
Next, do this
Delete Message with the Slack API
No credit card required
Into to Pipedream
Watch us build a workflow
Watch us build a workflow
7 min
Watch now ➜
Trusted by 250,000+ developers from startups to Fortune 500 companies:
Trusted by 250,000+ developers from startups to Fortune 500 companies

Developers Pipedream

Getting Started

This integration creates a workflow with a Twilio trigger and Slack action. When you configure and deploy the workflow, it will run on Pipedream's servers 24x7 for free.

  1. Select this integration
  2. Configure the New Incoming SMS (Instant) trigger
    1. Connect your Twilio account
    2. Select a Incoming Phone Number
    3. Configure Twilio Auth Token
    4. Optional- Configure Response Message
  3. Configure the Delete Message action
    1. Connect your Slack account
    2. Select a Channel
    3. Optional- Configure Timestamp
    4. Optional- Configure Send as User
  4. Deploy the workflow
  5. Send a test event to validate your setup
  6. Turn on the trigger

Details

This integration uses pre-built, open source components from Pipedream's GitHub repo. These components are developed by Pipedream and the community, and verified and maintained by Pipedream.

To contribute an update to an existing component or create a new component, create a PR on GitHub. If you're new to Pipedream component development, you can start with quickstarts for trigger span and action development, and then review the component API reference.

Trigger

Description:Configures a webhook in Twilio, tied to an incoming phone number, and emits an event each time an SMS is sent to that number
Version:0.0.7
Key:twilio-new-incoming-sms

Trigger Code

import common from "../common-webhook.mjs";
import twilio from "twilio";
const MessagingResponse = twilio.twiml.MessagingResponse;

export default {
  ...common,
  key: "twilio-new-incoming-sms",
  name: "New Incoming SMS (Instant)",
  description:
    "Configures a webhook in Twilio, tied to an incoming phone number, and emits an event each time an SMS is sent to that number",
  version: "0.0.7",
  type: "source",
  dedupe: "unique",
  props: {
    ...common.props,
    responseMessage: {
      propDefinition: [
        common.props.twilio,
        "responseMessage",
      ],
    },
  },
  methods: {
    ...common.methods,
    async setWebhook(...args) {
      return await this.twilio.setIncomingSMSWebhookURL(...args);
    },
    getResponseBody() {
      const twiml = new MessagingResponse();
      let responseBody = "<Response></Response>";
      if (this.responseMessage) {
        twiml.message(this.responseMessage);
        responseBody = twiml.toString();
      }
      return responseBody;
    },
    generateMeta(body, headers) {
      return {
        /** if Twilio retries a message, but we've already emitted, dedupe */
        id: headers["i-twilio-idempotency-token"],
        summary: body.Body,
        ts: Date.now(),
      };
    },
  },
};

Trigger Configuration

This component may be configured based on the props defined in the component code. Pipedream automatically prompts for input values in the UI and CLI.
LabelPropTypeDescription
TwiliotwilioappThis component uses the Twilio app.
Incoming Phone NumberincomingPhoneNumberstringSelect a value from the drop down menu.
Twilio Auth TokenauthTokenstring

Your Twilio auth token, found in your Twilio console. Required for validating Twilio events.

N/Ahttp$.interface.httpThis component uses $.interface.http to generate a unique URL when the component is first instantiated. Each request to the URL will trigger the run() method of the component.
Response MessageresponseMessagestring

The message you want to send in response to incoming messages. Leave this blank if you don't need to issue a response.

Trigger Authentication

Twilio uses API keys for authentication. When you connect your Twilio account, Pipedream securely stores the keys so you can easily authenticate to Twilio APIs in both code and no-code steps.

1) Create an API key in Twilio. There are two types of keys: Master and Standard. You'll need a Master key to interact with certain API endpoints, like /Accounts. If you don't need to interact with those endpoints, you can use a Standard key.

2) After creating your key, you'll see an Sid and Secret. Enter those in the fields below.

3) Visit your Twilio Dashboard. You'll see your Account SID listed near the top. Enter that in the AccountSid field below.

About Twilio

Cloud communications platform for building SMS, Voice & Messaging applications on an API built for global scale

Action

Description:Delete a message. [See docs here](https://api.slack.com/methods/chat.delete)
Version:0.0.4
Key:slack-delete-message

Action Code

import slack from "../../slack.app.mjs";

export default {
  key: "slack-delete-message",
  name: "Delete Message",
  description: "Delete a message. [See docs here](https://api.slack.com/methods/chat.delete)",
  version: "0.0.4",
  type: "action",
  props: {
    slack,
    conversation: {
      propDefinition: [
        slack,
        "conversation",
      ],
    },
    timestamp: {
      propDefinition: [
        slack,
        "timestamp",
      ],
    },
    as_user: {
      propDefinition: [
        slack,
        "as_user",
      ],
      description: "Pass true to update the message as the authed user. Bot users in this context are considered authed users.",
    },
  },
  async run() {
    return await this.slack.sdk().chat.delete({
      channel: this.conversation,
      ts: this.timestamp,
      as_user: this.as_user,
    });
  },
};

Action Configuration

This component may be configured based on the props defined in the component code. Pipedream automatically prompts for input values in the UI.

LabelPropTypeDescription
SlackslackappThis component uses the Slack app.
ChannelconversationstringSelect a value from the drop down menu.
Timestamptimestampstring

Timestamp of the relevant data.

Send as Useras_userboolean

Pass true to update the message as the authed user. Bot users in this context are considered authed users.

Action Authentication

Slack uses OAuth authentication. When you connect your Slack account, Pipedream will open a popup window where you can sign into Slack and grant Pipedream permission to connect to your account. Pipedream securely stores and automatically refreshes the OAuth tokens so you can easily authenticate any Slack API.

Pipedream requests the following authorization scopes when you connect your account:

bookmarks:writecalls:readcalls:writechannels:historychannels:readchannels:writednd:readdnd:writeemoji:readfiles:readgroups:historygroups:readgroups:writeim:historyim:readim:writelinks:readlinks:writempim:historympim:readmpim:writepins:readpins:writereactions:readreactions:writereminders:readreminders:writeremote_files:readremote_files:sharestars:readstars:writeteam:readusergroups:readusergroups:writeusers:readusers:read.emailusers:writechat:write:botchat:write:usercommandsfiles:write:userusers.profile:writeusers.profile:readsearch:read

About Slack

Slack is a channel-based messaging platform. With Slack, people can work together more effectively, connect all their software tools and services, and find the information they need to do their best work — all within a secure, enterprise-grade environment.

More Ways to Connect Slack + Twilio