Automations
No-Code Editor
Create complex automations visually using the no-code editor. Drag and drop components to build workflows without writing code.
Editor Interface
Main Layout
- Left Sidebar: Available components (Hooks, Actions, Conditions)
- Central Area: Canvas where you build the automation
- Right Sidebar: Properties and settings of the selected component
- Top Bar: Automation name, status, and controls
Available Components
Hooks (Triggers)
- Crypto Charge Paid: Confirmed crypto payment
- PIX Charge Paid: Paid PIX
- Ramp Completed: On/off-ramp completed
- Scheduler: Periodic execution
- DeFi Position Updated: DeFi position updated
Actions
- Crypto Transfer: Transfer crypto
- Cross Swap: Cross-chain swap
- On-chain Swap: On-chain swap
- Ramp Off-ramp: Convert crypto to fiat
- EVM Wallet Balance: Check balance
- DeFi Operations: DeFi operations
- DeFi Strategy: Deposit, withdraw, and check details
- Numeric Split: Split values
- Data Transformation: Arithmetic operations (sum, subtract, multiply, etc.)
- Workspace Logic: Parallel execution and conditionals
Conditions
- Expression (Dentaku): Advanced conditional logic with arithmetic and boolean expressions
- Compare Values: Simple comparison
- Check Balance: Check balance
How to Create an Automation
Step 1: Add Hook
- Drag a Hook from the left sidebar
- Drop it into the central canvas area
- Configure properties in the right sidebar
Step 2: Add Actions
- Drag an Action from the sidebar
- Connect it to the Hook with a line
- Configure the Action parameters
Step 3: Configure Connections
- Click on the Hook to select it
- Drag the connection line to the Action
- Configure dynamic values
Step 4: Test and Save
- Test the automation with sample data
- Save when satisfied
- Activate to start executing
Connection System
Dynamic Values
Use the Field Selector to connect data between components:
{events.hooks.crypto_charge_paid.amount}
{events.actions.123.to_amount}
{events.triggers.scheduler_456.data.balance}Field Types
wallet: Wallets and addressestoken: Tokens and cryptocurrenciesamount: Numeric valuesnumeric: Numeric fieldsbeneficiary: Beneficiariesany: Any field
Smart Filters
The Field Selector shows only compatible fields:
- Included: Fields of the correct type
- Excluded: Incompatible fields
- Temporal: Only previous events
Practical Examples
1. Simple Auto-Transfer
Hook: crypto.charge.paid
↓
Action: crypto.transfer.new
- Source Wallet: {events.hooks.crypto_charge_paid.wallet_address}
- Destination Wallet: Reserve wallet
- Token: {events.hooks.crypto_charge_paid.token.id}
- Amount: {events.hooks.crypto_charge_paid.amount}2. Cross-Chain Swap
Hook: crypto.charge.paid
↓
Action: cross.swap.new
- Source Token: {events.hooks.crypto_charge_paid.token.id}
- Destination Token: USDC
- Amount: {events.hooks.crypto_charge_paid.amount}
- Destination Address: USDC Wallet3. Distribution with Numeric Split
Hook: crypto.charge.paid
↓
Action: transform.numeric_split
- Source Value: {events.hooks.crypto_charge_paid.amount}
- Allocations:
- 50% → Reserve
- 30% → Investment
- 20% → Expenses4. Balance Monitoring
Hook: scheduler (EvmWallet)
↓
Action: evm_wallet.get_token_balance
- Wallet: Specific wallet
- Token: USDC
↓
Condition: If balance < $1000
↓
Action: Send notificationField Selector
How to Use
- Click on an input field
- Select "Use dynamic value"
- Choose the desired field from the list
- Confirm the selection
Interface
- Field Tree: Organized by event type
- Search: Filter fields by name
- Filters: By field type and compatibility
- Preview: See value before selecting
Tips
- Bold Fields: Most relevant to the type
- Icons: Indicate field type
- Descriptions: Explain what each field contains
Advanced Configuration
Conditions
Add conditional logic to automations:
IF {events.hooks.crypto_charge_paid.amount} > 1000
THEN crypto.transfer.new (VIP wallet)
ELSE
crypto.transfer.new (normal wallet)Multiple Actions
Connect multiple actions to the same hook:
Hook: crypto.charge.paid
├── Action 1: crypto.transfer.new
├── Action 2: cross.swap.new
└── Action 3: send.notificationAction Chains
Connect actions in sequence:
Hook: crypto.charge.paid
↓
Action 1: evm_wallet.get_token_balance
↓
Action 2: cross.swap.new (using balance from Action 1)
↓
Action 3: crypto.transfer.new (using result from Action 2)Validation and Testing
Automatic Validation
- Connections: Checks if fields are compatible
- Types: Confirms correct data types
- Required: Alerts about required fields
- Limits: Checks security limits
Automation Test
- Click on "Test Automation"
- Choose sample data
- Execute step by step
- Verify results
Simulation
- Dummy Data: Use sample data
- Step-by-Step Execution: See each step
- Detailed Logs: Track the process
- Results: See what would happen
Monitoring
Automation Status
- Active: Executing normally
- Paused: Temporarily disabled
- Error: Configuration problem
- Disabled: Not executing
Execution Logs
- Timestamp: When it was executed
- Trigger: What started the execution
- Actions: Which actions were executed
- Result: Success or failure
- Details: Full logs
Metrics
- Executions per Day: How many times executed
- Success Rate: Percentage of successes
- Average Time: Duration of executions
- Last Execution: When executed last time
Troubleshooting
Automation does not execute
- Check if it is active
- Confirm if hook was activated
- Check logs for errors
- Test manually
Field does not appear in selector
- Check if field has
automation_type - Confirm if compatible with type
- Check if event happens before action
- Test with sample data
Connection error
- Check if types are compatible
- Confirm if field exists
- Test with fixed values first
- Check error logs
Slow performance
- Simplify complex automations
- Reduce number of actions
- Optimize conditions
- Monitor executions
Tips and Best Practices
Automation Design
- Start simple: Create basic automations first
- Test frequently: Validate each step
- Use descriptive names: Facilitate maintenance
- Document: Add clear descriptions
Performance
- Avoid loops: Do not create circular dependencies
- Optimize conditions: Use efficient filters
- Monitor executions: Track performance
- Clean automations: Remove unused automations
Security
- Test with small amounts: Validate before using high values
- Configure limits: Set security limits
- Monitor executions: Track regularly
- Have backup: Keep previous versions
Detailed Action Reference
DeFi Positions
add_liquidity
- Description: Adds liquidity to an existing DeFi position.
- Key Parameters:
defi_position_idorposition_reference: Identifier for the target DeFi position.token_a_amount: The amount of the first token to add.token_b_amount: The amount of the second token to add.slippage_tolerance(optional): Allowed slippage percentage.
close_position
- Description: Closes a DeFi position, withdrawing all liquidity and collecting any pending fees.
- Key Parameters:
defi_position_idorposition_reference: Identifier for the target DeFi position.collect_fees(optional, default: true): Specifies whether to also collect pending fees.
collect_fees
- Description: Executes an on-chain transaction to collect the fees earned by a DeFi position.
- Key Parameters:
defi_position_idorposition_reference: Identifier for the target DeFi position.recipient(optional): The address to receive the collected fees. Defaults to the position's wallet.
get_fees_earned
- Description: Retrieves detailed information about the fees earned by a position. This is a read-only action and does not perform a transaction.
- Key Parameters:
defi_position_idorposition_reference: Identifier for the target DeFi position.
- Output Data: Returns amounts for available fees and total collected fees for both tokens.
get_position_data
- Description: Fetches comprehensive on-chain and cached data for a specific DeFi position. This is a read-only action.
- Key Parameters:
defi_position_idorposition_reference: Identifier for the target DeFi position.refresh_cache(optional, default: false): If set totrue, it forces a refresh of the on-chain data.
- Output Data: Includes liquidity, tick range,
is_out_of_rangestatus, token amounts, and fees earned.
DeFi Strategy Positions
deposit
- Description: Deposits a specified amount of assets into a DeFi strategy position.
- Key Parameters:
defi_strategy_position_idorposition_reference: Identifier for the target DeFi strategy position.amountoramount_path: The amount to deposit, specified directly or via a dynamic path.
get_details
- Description: Retrieves the latest details for a DeFi strategy position from the provider's API. This is a read-only action.
- Key Parameters:
defi_strategy_position_idorposition_reference: Identifier for the target DeFi strategy position.
- Output Data: Returns comprehensive details including balances, current value in USD, APY (current, average, inception), profit/loss, and historical transaction data.
withdraw
- Description: Withdraws assets from a DeFi strategy position.
- Key Parameters:
defi_strategy_position_idorposition_reference: Identifier for the target DeFi strategy position.amountoramount_path(optional): The amount to withdraw. If not provided, the action will withdraw the entire available balance.
EVM Wallet
get_native_balance
- Description: Retrieves the native coin balance (e.g., ETH, MATIC) for a specified EVM wallet on a given network. This is a read-only action.
- Key Parameters:
account_network_id: Identifier for the target network.wallet_field: Identifier for the target wallet.
- Output Data: Returns the balance in both
weiand standard format (e.g.,eth), along with network details.
get_token_balance
- Description: Retrieves the balance of a specific ERC20 token for a specified EVM wallet. This is a read-only action.
- Key Parameters:
account_accepted_cryptocurrency_id: Identifier for the target ERC20 token.wallet_field: Identifier for the target wallet.
- Output Data: Returns the raw and formatted token balance, the token's current USD price, and the total USD value of the balance.
Data Transformation
arithmetic_sum
- Description: Calculates the sum of a list of numeric values.
- Key Parameters:
sources: An array where each item defines a value to be added. A source can be afixed_value, apathto a value in the execution state, or anarray_pathto an array of numbers (which will be summed up before being added to the total).
arithmetic_subtract
- Description: Subtracts a series of numbers from a base value.
- Key Parameters:
sources: An array of values. The first element is the base value (minuend), and all subsequent elements are subtracted from it.
arithmetic_multiply
- Description: Calculates the product of a list of numeric values.
- Key Parameters:
sources: An array of values to be multiplied.
arithmetic_divide
- Description: Divides a number sequentially by a list of other numbers.
- Key Parameters:
sources: An array of values. The first element is the dividend, and subsequent elements are the divisors. Includes protection against division by zero.
arithmetic_count
- Description: Counts the total number of items from various sources.
- Key Parameters:
sources: An array of sources. If a source is an array, it counts the number of elements. If it's a single value, it counts as 1.
arithmetic_math_expression
- Description: Evaluates a mathematical string expression using variables from the execution state.
- Key Parameters:
expression: A string containing the mathematical formula (e.g.,"varA * (varB + 10)").variables: An array defining the variables used in the expression and mapping them to fixed values or paths in the execution state.
numeric_split
- Description: Splits a numeric value into multiple parts based on defined allocations.
- Key Parameters:
source_value_path: The path to the numeric value to be split.allocations: An array or object defining how the value should be distributed. Allocations can be of typepercentageorfixed_value.
- Output Data: Returns an object containing the calculated
valuesfor each allocation and the remainingdustamount.
On-Chain Swaps
generate_new
- Description: Executes an on-chain token swap on a decentralized exchange like Uniswap.
- Key Parameters:
wallet_id: The wallet performing the swap.token_in_id: The token to sell.token_out_id: The token to buy.amount_in: The amount of the input token to sell.slippage(optional): The allowed slippage percentage.
Crypto Transfers
generate_new
- Description: Initiates a standard cryptocurrency transfer from one wallet to another.
- Key Parameters:
from_wallet: The source wallet address.to_wallet: The destination wallet address.token: The token to transfer.amount: The amount of the token to transfer.
Ramps
off_ramp.generate_new
- Description: Creates an off-ramp process to convert cryptocurrency into fiat, sending it to a registered beneficiary. The action handles quote generation and schedules monitoring for the ramp's completion.
- Key Parameters:
beneficiary_id: The beneficiary who will receive the fiat currency.amount: The amount of crypto to convert.wallet: The source wallet for the cryptocurrency.input_asset_id: The crypto asset to be sold.output_asset_id: The fiat asset to be received.
Cross-Chain Swaps
generate_new
- Description: Initiates a cross-chain swap, allowing token exchange between different blockchain networks. The action schedules monitoring for the swap's completion.
- Key Parameters:
from_token_id: The source token.to_token_id: The destination token (on a different chain).amount: The amount to swap.to_address: The destination wallet address on the target chain.wallet(optional): The source wallet.
Workspace & Logic
parallel_execute
- Description: Triggers the execution of another workspace in parallel.
- Key Parameters:
workspace_id: The ID of the workspace to execute.pass_data(optional): An object mapping keys to paths in the current execution's state, allowing data to be passed to the new execution.
conditional
- Description: Acts as a decision node in a workflow. It evaluates if its attached triggers were activated based on a defined logic and outputs a boolean result (
condition_pass). - Key Parameters:
trigger_logic: Can beall(all required triggers must be active) orany(at least one required trigger must be active).required_triggers: An array of trigger IDs that this action depends on.
Next steps: Explore the Event Structure to better understand the available data.