UNPKG

@pipedream/lob

Version:

Pipedream Lob Components

87 lines (86 loc) 3.72 kB
import { defineAction } from "@pipedream/types"; import lob from "../../app/lob.app.mjs"; import constants from "../../app/common/constants.mjs"; export default defineAction({ key: "lob-create-postcard", name: "Create Postcard", description: "Creates a new postcard given information. [See docs here](https://docs.lob.com/#tag/Postcards/operation/postcard_create).", version: "0.0.2", type: "action", props: { lob, description: { type: "string", label: "Description", description: "An internal description that identifies this resource", }, to: { propDefinition: [ lob, "addressId", ], label: "To", description: "Must either be an `addressId` or an inline object with correct address parameters", }, front: { type: "string", label: "Front", description: "The artwork to use as the front of your postcard. May be a `templateId` or a HTML string. [HTML Examples](https://docs.lob.com/#section/HTML-Examples)", }, back: { type: "string", label: "Back", description: "The artwork to use as the back of your postcard. May be a `templateId` or a HTML string. Be sure to leave room for address and postage information as in this [example template](https://s3-us-west-2.amazonaws.com/public.lob.com/assets/templates/postcards/4x6_postcard.pdf).", }, size: { type: "string", label: "Size", description: "Specifies the size of the postcard. Only **4x6** postcards can be sent to international destinations", options: constants.POSTCARD_SIZES, default: "4x6", }, mailType: { type: "string", label: "Mail Type", description: "The mail postage type: `usps_first_class` (default) or `usps_standard` - a cheaper option which is less predictable and takes longer to deliver", options: constants.MAIL_TYPES, default: "usps_first_class", }, mergeVariables: { type: "object", label: "Merge Variables", description: "An object for substituting variables to render dynamic content in your template. [Merge Variables Guide](https://help.lob.com/en_US/print_mail/dynamic-personalization#using-html-and-merge-variables)", optional: true, }, sendDate: { type: "string", label: "Send Date", description: "A timestamp in **ISO 8601** format which specifies a date after the current time and up to 180 days in the future to send the letter off for production. Until the `send_date` has passed, the mailpiece can be canceled", optional: true, }, from: { propDefinition: [ lob, "addressId", ], label: "From", description: "Required if `to` address is international. Must either be an `addressId` or an inline object with correct address parameters", optional: true, }, }, async run({ $ }) { const response = await this.lob.createPostcard({ description: this.description, to: this.to, front: this.front, back: this.back, size: this.size, mailType: this.mailType, merge_variables: this.mergeVariables, send_date: this.sendDate, from: this.from, }); $.export("$summary", "Successfully created postcard"); return response; }, });