← AWS + Discord Webhook integrations

Send Message with Discord Webhook API on New Restored S3 File from AWS API

Pipedream makes it easy to connect APIs for Discord Webhook, AWS and 900+ other apps remarkably fast.

Trigger workflow on
New Restored S3 File from the AWS API
Next, do this
Send Message with the Discord Webhook 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 AWS trigger and Discord Webhook 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 Restored S3 File trigger
    1. Connect your AWS account
    2. Select a AWS Region
    3. Select a S3 Bucket Name
    4. Configure Detect Restore Initiation
  3. Configure the Send Message action
    1. Connect your Discord Webhook account
    2. Configure Message
    3. Optional- Configure Thread ID
    4. Optional- Configure Username
    5. Optional- Configure Avatar URL
    6. Optional- Configure Include link to workflow
  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:Emit new event when an file is restored into a S3 bucket
Version:0.0.1
Key:aws-s3-restored-file

Trigger Code

import base from "../common/s3.mjs";

export default {
  ...base,
  type: "source",
  key: "aws-s3-restored-file",
  name: "New Restored S3 File",
  description: "Emit new event when an file is restored into a S3 bucket",
  version: "0.0.1",
  dedupe: "unique",
  props: {
    ...base.props,
    detectRestoreInitiation: {
      type: "boolean",
      label: "Detect Restore Initiation",
      description: "When enabled, this event source will also emit events whenever a restore is initiated",
      default: false,
    },
  },
  methods: {
    ...base.methods,
    getEvents() {
      return [
        this.detectRestoreInitiation
          ? "s3:ObjectRestore:*"
          : "s3:ObjectRestore:Completed",
      ];
    },
    generateMeta(data) {
      const { "x-amz-request-id": id } = data.responseElements;
      const { key } = data.s3.object;
      const { eventTime: isoTimestamp } = data;
      return {
        id,
        summary: `Restored file: '${key}'`,
        ts: Date.parse(isoTimestamp),
      };
    },
  },
};

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
AWSawsappThis component uses the AWS app.
N/Adb$.service.dbThis component uses $.service.db to maintain state between component invocations.
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.
AWS RegionregionstringSelect a value from the drop down menu.
S3 Bucket NamebucketstringSelect a value from the drop down menu.
Detect Restore InitiationdetectRestoreInitiationboolean

When enabled, this event source will also emit events whenever a restore is initiated

Trigger Authentication

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

Follow the AWS Instructions for creating an IAM user with an associated access and secret key.

As a best practice, attach the minimum set of IAM permissions necessary to perform the specific task in Pipedream. If your workflow only needs to perform a single API call, you should create a user and associate an IAM group / policy with permission to do only that task. You can create as many linked AWS accounts in Pipedream as you'd like.

Enter your access and secret key below.

About AWS

On-demand cloud computing platforms and APIs

Action

Description:Send a simple message to a Discord channel
Version:0.3.1
Key:discord_webhook-send-message

Action Code

import common from "../send-message-common.mjs";

export default {
  ...common,
  key: "discord_webhook-send-message",
  name: "Send Message",
  description: "Send a simple message to a Discord channel",
  version: "0.3.1",
  type: "action",
  props: {
    ...common.props,
  },
  async run({ $ }) {
    const {
      message,
      avatarURL,
      threadID,
      username,
      includeSentViaPipedream,
    } = this;

    try {
      // No interesting data is returned from Discord
      await this.discordWebhook.sendMessage({
        avatarURL,
        threadID,
        username,
        content: includeSentViaPipedream
          ? this.appendPipedreamText(message)
          : message,
      });
      $.export("$summary", "Message sent successfully");
    } catch (err) {
      const unsentMessage = this.getUserInputProps();
      $.export("unsent", unsentMessage);
      throw err;
    }
  },
};

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
Discord WebhookdiscordWebhookappThis component uses the Discord Webhook app.
Messagemessagestring

Enter a simple message up to 2000 characters. This is the most commonly used field. However, it's optional if you pass embed content.

Thread IDthreadIDstring

If provided, the message will be posted to this thread

Usernameusernamestring

Overrides the current username of the webhook

Avatar URLavatarURLstring

If used, it overrides the default avatar of the webhook. Note: Consecutive posts by the same username within 10 minutes of each other will not display updated avatar.

Include link to workflowincludeSentViaPipedreamboolean

Defaults to true, includes a link to this workflow at the end of your Discord message.

Action Authentication

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

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

webhook.incomingemailidentify

About Discord Webhook

Use this app to send messages to a channel using Discord's incoming webhooks

More Ways to Connect Discord Webhook + AWS

Send Message with Discord Webhook API on New Deleted S3 File from AWS API
AWS + Discord Webhook
 
Try it
Send Message with Discord Webhook API on New Emails sent to SES Catch-all Domain from AWS API
AWS + Discord Webhook
 
Try it
Send Message with Discord Webhook API on New Records Returned by CloudWatch Logs Insights Query from AWS API
AWS + Discord Webhook
 
Try it
Send Message with Discord Webhook API on New S3 Event from AWS API
AWS + Discord Webhook
 
Try it
Send Message with Discord Webhook API on New S3 File from AWS API
AWS + Discord Webhook
 
Try it
New Scheduled Tasks from the AWS API

Creates a Step Function State Machine to publish a message to an SNS topic at a specific timestamp. The SNS topic delivers the message to this Pipedream source, and the source emits it as a new event.

 
Try it
New SNS Messages from the AWS API

Creates an SNS topic in your AWS account. Messages published to this topic are emitted from the Pipedream source.

 
Try it
New Inbound SES Emails from the AWS API

The source subscribes to all emails delivered to a specific domain configured in AWS SES. When an email is sent to any address at the domain, this event source emits that email as a formatted event. These events can trigger a Pipedream workflow and can be consumed via SSE or REST API.

 
Try it
New Deleted S3 File from the AWS API

Emit new event when a file is deleted from a S3 bucket

 
Try it
New Records Returned by CloudWatch Logs Insights Query from the AWS API

Executes a CloudWatch Logs Insights query on a schedule, and emits the records as invidual events (default) or in batch

 
Try it
AWS - EventBridge - Send event to Event Bus with the AWS API

Sends an event to an EventBridge event bus

 
Try it
AWS - Lambda - Invoke Function with the AWS API

Invoke a Lambda function using the AWS API

 
Try it
AWS - SQS - Send Message with the AWS API

Sends a message to an SQS queue

 
Try it
CloudWatch Logs - Put Log Event with the AWS API

Uploads a log event to the specified log stream. See docs

 
Try it
Cloudwatch Logs - Put Log Events with the AWS API

Uploads a batch of log events to the specified log stream. See the docs for more information

 
Try it