via Workflow Automation (iPaaS)
Workflow automation platforms / IPaaS (Integration Platform as a Service) are tools that help you automate business processes without the need to write code or host your own software. They are ideal for companies that want business efficiency without the need to invest in a strong IT department, or where the IT department is otherwise occupied.
Shuttle supports several of these platforms:
- Make.com: Make.com offers advanced control, branching logic, and visual flows for building complex automations with minimal code.
- Zapier: Zapier makes it easy for non-developers to automate tasks across thousands of apps with a clean, no-code interface.
If you require a platform not listed please contact [email protected].
What is a Workflow Automation?
Workflow automation is the orchestration of multiple systems and steps to perform a task.
Most automation platforms provide a graphical user interface, allowing non technical users can configure both simple and complex processes like the below:
flowchart LR A[Trigger] --> B[Create Payment Link] --> C[Send to Customer]
Examples include:
- Field agents getting quotes secured:
flowchart LR B[On HubSpot Quote Creation] B --> C[Create Payment Link] C --> D[Email/SMS Customer]
- Event signup automation using WhatsApp
flowchart LR B[On WhatsApp signup message] B --> C[Create Payment Link] C --> D[Reply on WhatApp]
- Chasing overdue invoices
flowchart LR B[On 15th of the Month] B --> C[Loop overdue Xero customers] C --> D[Create Payment Link] D --> E[Email Customer] E --> C
- Getting membership feeds paid
flowchart LR B[On Manual Trigger] B --> C[Loop Google Sheet] C --> D[Create Payment Link] D --> E[Email Customer] E --> C
Further more, workflows can be triggered by payment notifications, allowing you to provision goods or services. On notification you can get the payment link which will contain extensive information about payment if its already been paid, so you can perform appropriate business functions.
flowchart LR
A[Notification] --> B[Filter] --> C[Get Payment Link]
C --> D{Status?}
D --> E[Success → Provision Goods]
D --> F[Pending → Reserve Goods]
D --> G[Failed → Release Goods & Notify Customer]
D --> H[Expired → Notify Customer]
Getting Started
To use personalised single-use payment links in your workflow automation, you will need:
- A Shuttle Payment Links account
- A payment provider account (e.g. Stripe) or use our sandbox gateway
- An triggering event, eg an app that you want to trigger the link generation from (e.g. Slack, Whatsapp, Invoicing app, Google Sheets), timing schedule, or manual trigger
- An account with one of the following workflow apps, which supports your triggering event:
- Zapier 8000+ Integrations - best for wider compatibility
- Make.com 2500+ Integrations - best for power users
In your workflow tool you can connect to Shuttle via:
- Install the "Shuttle" connector (search for "Shuttle" in the app store or use a link at the top of this document)
- Add "Create a Payment Link" action to one of your templates / scenarios (please view a tutorial on the platform if you're not sure how to do this)
- You will be prompted to "Connect Shuttle", click the button and when prompted select if you are connecting a "Live" or "Sandbox" account. You will then be taken to a login screen to log into Shuttle and select which account to connect. You must have ALREADY created the account in the appropriate LIVE / SANDBOX mode for it to display. If required you can set up a new account, but will need to restart the connection process.
Tip!: We recommend you build your workflow using a Sandbox account, which does not process real payment, and then switch to a LIVE account when you are ready to use with customers. After switching from sandbox to live, always validate a live payment before rolling out to your customers, specifically that is makes it all the way to your bank account.
Also, when switching from sandbox to live, ensure you update ALL templates / scenarios involved in your automation.
Configuring your Workflow
Shuttle provides 4 actions for managing payment links:
- Create a new payment link
- Get a payment link
- Update an existing payment link
- Delete a payment link
In addition, it raises "Payment Notifications" you can use to trigger workflows.
Please see Process Flow for detail on the behaviour of each.
Generating / Updating a Payment Link
Shuttle's workflow integrations support the following fields when creating and updating a payment link:
| Input Field | Description |
|---|---|
| Currency | (Required) 3-letter currency code for the payment (e.g., USD, EUR, GBP) |
| Amount | Payment amount in decimal format (e.g., 29.99, 1000.00), if not specified, the amount will be requested from the customer |
| Reference | Your reference to track this payment (e.g., ORDER_1234, INV_567), if not specified, the reference will be requested from the customer |
| Auto Fill Text | Natural language text that will be used to automatically fill payment link fields. Only affects fields containing 'auto' in their value. Use 'auto:default_value' syntax to set defaults (e.g., 'auto:USD' for currency). |
| Success URL | Optional URL to redirect users when payment is completed |
| Pending URL | Optional URL to redirect users when payment is processing asynchronously (e.g., needs authorization), if not specified, the pending URL will be requested from the customer |
| Pending Message | Optional message to show when payment is pending (if no pending_url is provided) |
| Success Message | Optional message to show when payment is successful (if no success_url is provided) |
| Skip Receipt | If true, immediately redirect to the success / pending URL without showing messages |
| Save Card | Controls whether payment methods are saved, valid values are true (always save), false (never save) or blank (user decides) |
| Expires | Optional when this payment link should expire (ISO date-time format, alternative to Expires In) |
| Expires In | Optional seconds until expiry (default 1 day - 86400) |
| Customer CRM Key | Your unique identifier for this customer, this will present previously saved cards for returning customers |
| Customer First Name | First name of the customer |
| Customer Last Name | Last name of the customer |
| Customer Email | Email address of the customer |
| Customer Phone | Phone number of the customer |
| State 1 | Custom state field that will be returned in webhooks and redirects |
| State 2 | Custom state field that will be returned in webhooks and redirects |
| State 3 | Custom state field that will be returned in webhooks and redirects |
| State 4 | Custom state field that will be returned in webhooks and redirects |
| State 5 | Custom state field that will be returned in webhooks and redirects |
| State 6 | Custom state field that will be returned in webhooks and redirects |
| State 7 | Custom state field that will be returned in webhooks and redirects |
| State 8 | Custom state field that will be returned in webhooks and redirects |
| State 9 | Custom state field that will be returned in webhooks and redirects |
| Output Field | Description |
|---|---|
| Payment Link ID | Unique identifier for the created payment link |
| Payment Link URL | The URL that can be shared with customers to make payment |
| Expires At | Expiry date for the payment link |
Get Payment Link
You can fetch a payment link using its ID up to 1 year after it was last updated.
| Input Field | Description |
|---|---|
| Payment Link ID | (Required) ID of the payment link to retrieve |
This returns both information about the payment link and information about the payment. Information always returned (where it exists on the payment link):
| Output Field | Description |
|---|---|
| Payment Link ID | Unique identifier for the payment link |
| Payment Link URL | The URL that can be shared with customers to make payment |
| Status | Current status of the payment link (ACTIVE, PENDING, COMPLETED, FAILED, EXPIRED) |
| Created Date | When the payment link was created |
| Updated Date | When the payment link was last updated |
| Expiry Date | When the payment link expires |
| Currency | 3-letter currency code |
| Amount | Payment amount in decimal format |
| Reference | Your reference for this payment |
| Success URL | Redirect URL for completed payments |
| Pending URL | Redirect URL for pending payments |
| Pending Message | Message shown for pending payments |
| Success Message | Message shown for successful payments |
| Skip Receipt | Whether to skip the receipt page |
| Save Card | Whether payment methods are saved |
| Account CRM Key | Your unique identifier for this customer |
| Account First Name | First name of the customer |
| Account Last Name | Last name of the customer |
| Account Email | Email address of the customer |
| Account Phone | Phone number of the customer |
| State1 | Custom state field 1 |
| State2 | Custom state field 2 |
| State3 | Custom state field 3 |
| State4 | Custom state field 4 |
| State5 | Custom state field 5 |
| State6 | Custom state field 6 |
| State7 | Custom state field 7 |
| State8 | Custom state field 8 |
| State9 | Custom state field 9 |
Information only available after payment attempted:
| Output Field | Description |
|---|---|
| Account ID | The account ID from your CRM/PSP integration |
| Contract ID | Unique identifier for the contract |
| Contract Reference | The reference entered by the customer (when allowed) |
| Contract Amount | Total value of the contract |
| Contract Currency | Currency of the contract |
| Contract Status | Current status of the contract |
| Charge ID | Unique identifier for the charge |
| Charge Amount | Amount of the charge |
| Charge Status | Status of the charge |
| Transaction ID | Unique identifier for the transaction |
| Transaction Amount | Amount of the transaction |
| Transaction Currency | Currency of the transaction |
| Transaction Status | Status of the transaction |
| Transaction Reference | Reference entered by the customer |
| Transaction Processed | When the transaction was processed |
| Gateway Status | Status returned by the payment gateway |
| Gateway Message | Message returned by the payment gateway |
| Gateway Reference | Reference returned by the payment gateway |
| Payment Method ID | Unique identifier for the payment method |
| Payment Method Type | Type of payment method (credit card, bank account, etc.) |
| Payment Method Status | Status of the payment method |
| Payment Method BIN | First 8 digits of the card (for card payments) |
| Payment Method Last4 | Last 4 digits of the card (for card payments) |
| Payment Method Expiry | Expiry date of the card (for card payments) |
| Payment Method Name | Name on the payment method |
| Payment Method Token | Token representing the payment method |
| Payment Method Source | Source of the payment method |
The key fields you care about are:
- Payment Link Status: When deciding what to do next
- Contract Reference: If you allow the customer to enter a reference
- Transaction Reference: The unique payment ID displayed on the receipt screen and sent to the payment gateway (e.g. "REF-00001234")
- Transaction Amount: The amount of the transaction
- Gateway Status: The response from the payment processor
- Gateway Message: The error message (or at times pending message) returned from the payment processor
- Gateway Reference: The payment reference returned from the payment processor (eg Stripe ID for the payment)
- Payment Method Name: A descriptive name of the payment method used(eg "Visa ending 1234, exp 12/34")
- Payment Method Token: The token representing the payment method used by the payment processor if the card is saved (eg Stripe ID for the saved card)
Payment Notification
Shuttle provides a trigger event called "Payment Notification", this will fire on key events in the payment lifecycle:
PAYMENT_LINK.CREATED- When a new payment link is createdPAYMENT_LINK.UPDATE- When a payment link is updated or a pending payment is declinedPAYMENT_LINK.COMPLETED- When a payment is successfully processedPAYMENT_LINK.EXPIRED- When a payment link expiresPAYMENT_LINK.ARCHIVE- When a payment link is archived/canceled
Each notification contains the following fields you can use to access the payment link for further information:
action- The event type (e.g., PAYMENT_LINK.COMPLETE)payment_link_id- The ID of the payment linkstate1...state9- State fields (if configured)
You should use the payment link action and state fields ro filter which events you care about and call "Get Payment Link" to get the payment link details.
Updated 4 months ago