This skill should be used when the user asks about "sdk reference", "actions block reference", "triggers block reference", "object_definitions", "methods block", "pick_lists", "schema block", "http methods workato", "ruby methods workato", or needs API reference documentation for Workato SDK blocks and methods.
From workato-connector-sdknpx claudepluginhub grailautomation/claude-plugins --plugin workato-connector-sdkThis skill uses the workspace's default tool permissions.
references/guides.mdreferences/sdk-reference.mdreferences/sdk-reference__actions.mdreferences/sdk-reference__connection.mdreferences/sdk-reference__connection__authorization.mdreferences/sdk-reference__custom-action.mdreferences/sdk-reference__http.mdreferences/sdk-reference__methods.mdreferences/sdk-reference__object_definitions.mdreferences/sdk-reference__picklists.mdreferences/sdk-reference__ruby_methods.mdreferences/sdk-reference__schema.mdreferences/sdk-reference__streams.mdreferences/sdk-reference__test.mdreferences/sdk-reference__triggers.mdreferences/sdk-reference__whitelist-removal.mdComprehensive reference for all Workato Connector SDK blocks, methods, and configuration options.
The Workato SDK consists of these main blocks:
| Block | Purpose |
|---|---|
connection | Authentication and base configuration |
actions | Operations users can perform |
triggers | Events that start recipes |
methods | Reusable helper functions |
object_definitions | Reusable schema definitions |
pick_lists | Dropdown options |
streams | Large file handling |
Defines authentication and connection settings.
connection: {
fields: Array, # Credential input fields
authorization: Hash, # Auth type and configuration
base_uri: lambda, # Base URL for requests
test: lambda # Connection test
}
| Type | Use Case |
|---|---|
basic_auth | Username/password |
api_key | API key in header/query |
oauth2 | OAuth 2.0 flows |
custom_auth | Custom auth logic |
multi | Multiple auth options |
aws_auth | AWS Signature v4 |
Defines connector operations.
actions: {
action_name: {
title: String, # Display name
subtitle: String, # Secondary description
description: lambda, # Dynamic description
help: String | lambda, # Help text
config_fields: Array, # Mode selectors
input_fields: lambda, # Input schema
execute: lambda, # Main logic
output_fields: lambda, # Output schema
sample_output: lambda, # Sample data
retry_on_response: Array, # HTTP codes to retry
retry_on_request: Array, # Errors to retry
max_retries: Integer, # Retry count
summarize_input: Array, # Input summary fields
summarize_output: Array # Output summary fields
}
}
execute: lambda do |connection, input, extended_input_schema, extended_output_schema, continue|
# connection - credentials hash
# input - user inputs
# extended_input_schema - dynamic schema info
# extended_output_schema - dynamic output schema
# continue - multistep continuation data
end
Defines event triggers.
triggers: {
trigger_name: {
title: String,
description: lambda,
config_fields: Array,
input_fields: lambda,
poll: lambda, # Polling logic
webhook_subscribe: lambda, # Webhook registration
webhook_unsubscribe: lambda, # Webhook cleanup
webhook_notification: lambda, # Webhook handler
dedup: lambda, # Deduplication
output_fields: lambda,
sample_output: lambda
}
}
poll: lambda do |connection, input, closure|
{
events: Array, # Records to process
next_poll: Any, # Stored in closure
can_poll_more: Boolean # Continue polling?
}
end
Reusable helper functions.
methods: {
method_name: lambda do |arg1, arg2|
# Logic here
end
}
result = call('method_name', arg1, arg2)
Reusable field schemas.
object_definitions: {
schema_name: {
fields: lambda do |connection, config_fields, object_definitions|
[
{ name: 'field_name', label: 'Label', type: 'string' }
]
end
}
}
input_fields: lambda do |object_definitions|
object_definitions['schema_name']
end
Dropdown options.
pick_lists: {
# Static list
statuses: lambda do
[
['Active', 'active'],
['Inactive', 'inactive']
]
end,
# Dynamic list
objects: lambda do |connection|
get('/api/objects').map { |o| [o['name'], o['id']] }
end,
# Dependent list
fields: lambda do |connection, object_type:|
get("/api/objects/#{object_type}/fields").map { |f| [f['label'], f['name']] }
end
}
| Method | Usage |
|---|---|
get(url) | GET request |
post(url) | POST request |
put(url) | PUT request |
patch(url) | PATCH request |
delete(url) | DELETE request |
get('/api/records')
.params(key: 'value') # Query parameters
.payload(data) # Request body
.headers('X-Custom' => 'value') # Custom headers
.request_format_json # JSON body (default)
.request_format_xml # XML body
.request_format_www_form_urlencoded # Form body
.request_format_multipart_form # Multipart body
.response_format_json # Parse JSON (default)
.response_format_xml # Parse XML
.response_format_raw # Raw response
get('/api/records')
.after_response do |code, body, headers|
# Handle any response
end
.after_error_response(400) do |code, body, headers, message|
# Handle specific error
end
.after_error_response(/4\d{2}/) do |code, body, headers, message|
# Handle error pattern
end
| Property | Type | Description |
|---|---|---|
name | String | Internal field name |
label | String | Display label |
type | String | Data type |
control_type | String | UI control |
optional | Boolean | Required field? |
default | Any | Default value |
hint | String | Help text |
sticky | Boolean | Always visible |
extends_schema | Boolean | Triggers schema refresh |
ngIf | String | Conditional visibility |
pick_list | String | Dropdown source |
toggle_field | Hash | Toggle input |
| Type | Description |
|---|---|
string | Text (default) |
integer | Whole numbers |
number | Decimal numbers |
boolean | True/false |
date | Date only |
date_time | Date and time |
timestamp | Unix timestamp |
object | Nested object |
array | List of items |
| Control | Use Case |
|---|---|
text | Single line text |
text-area | Multi-line text |
select | Dropdown |
multiselect | Multiple selection |
number | Number input |
integer | Integer input |
checkbox | Boolean toggle |
password | Masked input |
date | Date picker |
date_time | DateTime picker |
email | Email input |
url | URL input |
phone | Phone input |
workato.log(message) # Debug logging
workato.parse_json(string) # Parse JSON
workato.parse_xml(string) # Parse XML
workato.hmac_sha256(data, key) # HMAC SHA256
workato.jwt_encode(payload, key, alg) # JWT encoding
workato.uuid # Generate UUID
workato.trigger_limit # Current trigger limit
workato.resume_url # Wait-for-resume URL
workato.stream.in(data) # Stream input
workato.stream.out(name, input) # Stream output
Common Ruby methods available in SDK:
split, gsub, match, strip, upcase, downcasemap, select, reject, find, first, last, flattendig, merge, slice, except, each, keys, valuesnow, parse, iso8601, strftimeto_s, to_i, abs, timesFor complete documentation:
references/sdk-reference.md - SDK overviewreferences/sdk-reference__actions.md - Actions referencereferences/sdk-reference__triggers.md - Triggers referencereferences/sdk-reference__connection.md - Connection referencereferences/sdk-reference__connection__authorization.md - Authorization detailsreferences/sdk-reference__schema.md - Field schema referencereferences/sdk-reference__object_definitions.md - Object definitionsreferences/sdk-reference__methods.md - Methods blockreferences/sdk-reference__picklists.md - Pick listsreferences/sdk-reference__http.md - HTTP methodsreferences/sdk-reference__ruby_methods.md - Allowed Ruby methodsreferences/sdk-reference__streams.md - Streaming referencereferences/sdk-reference__test.md - Testing referencereferences/sdk-reference__custom-action.md - Custom action supportreferences/sdk-reference__whitelist-removal.md - Deprecated methodsreferences/guides.md - Guides index