Automations
Automations allow you to create workflows that execute actions automatically based on events occurring on the platform. It's like having a digital assistant taking care of your repetitive operations.
🎯 What are Automations
Basic Concept
- Hooks (Triggers): Events that start an automation (e.g., PIX received, crypto charge paid).
- Actions: What happens when the hook is activated (e.g., transfer crypto, swap).
- Workspaces: Where you organize your automations by project or function.
Practical Example
Scenario: "When receiving a crypto payment, automatically transfer to another wallet."
- Hook:
crypto.charge.paid(payment confirmed) - Action:
crypto.transfer.new(transfer to specific wallet)
🏗️ Workspaces
What are Workspaces
Workspaces are workspaces where you group related automations. For example:
- "Automatic Conversions" - For auto-converting currencies
- "Notifications" - For email/webhook alerts
- "Rebalancing" - To maintain portfolio proportions
How to Create a Workspace
Step 1: Create Workspace
- Automations → Workspaces
- Click on New Workspace
- Define:
- Name: Workspace identification
- Description: Purpose
- Status: Active or inactive
Step 2: Configure Automation
Inside the workspace, configure:
- Triggers: When to execute
- Actions: What to execute
- Conditions: Additional rules
⚡ Hooks (Triggers)
Available Hook Types
💰 Financial Hooks
crypto.charge.paid: When a crypto payment is confirmedpix.charge.paid: When a PIX payment is maderamp.on_ramp.completed: When on-ramp is completedramp.off_ramp.completed: When off-ramp is completed
🔗 Blockchain Hooks
evm_wallet.transfer: When there is a transfer between EVM walletsonchain.swap.completed: When on-chain swap is completedcross.swap.completed: When cross-chain swap is completed
⏰ Time Hooks (Scheduler)
scheduler: Periodic execution based on resources- EvmWallet: Monitors EVM wallets
- DefiPosition: Monitors DeFi positions
📊 DeFi Hooks
defi.position.updated: When DeFi position is updateddefi.strategy.position.updated: When DeFi strategy changes
Configuring Hooks
Example: Crypto Charge Paid
Hook: crypto.charge.paid
- Token: USDC
- Minimum Amount: $100
- Network: Polygon
- Wallet: Specific or any
Example: Scheduler for EvmWallet
Hook: scheduler
- Resource: EvmWallet
- Frequency: Every 1 hour
- Network: Ethereum, Polygon, BSC
- Monitor: Balances and transactions
🎬 Actions
Available Action Types
💱 Financial Actions
crypto.transfer.new: Transfer crypto between walletscross.swap.new: Perform cross-chain swaponchain.swap.new: Perform on-chain swapramp.off_ramp.new: Convert crypto to fiatramp.on_ramp.new: Convert fiat to crypto
🔍 Query Actions
evm_wallet.get_native_balance: Query native balanceevm_wallet.get_token_balance: Query token balancedefi_position.get_fees_earned: Query earned feesdefi_strategy_position.get_details: Get position details
🔄 DeFi Actions
defi_strategy_position.deposit: Deposit into strategydefi_strategy_position.withdraw: Withdraw from strategydefi_position.collect_fees: Collect accumulated fees
🧮 Transformation Actions
transform.numeric_split: Split value into multiple allocationsconditional: Execute action based on condition
Configuring Actions
Example: Crypto Transfer
Action: crypto.transfer.new
- Source Wallet: {events.hooks.crypto_charge_paid.wallet_address}
- Destination Wallet: Specific wallet
- Token: {events.hooks.crypto_charge_paid.token.id}
- Amount: {events.hooks.crypto_charge_paid.amount}
Example: Cross Swap
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: Specific wallet
Example: Numeric Split
Action: transform.numeric_split
- Source Value: {events.hooks.crypto_charge_paid.amount}
- Allocations:
- 50% → Reserve
- 30% → Investment
- 20% → Expenses
🔧 Advanced Configuration
Additional Conditions
Add conditional logic to automations:
IF/THEN/ELSE
IF pix_value > 1000
THEN convert_to_usdc(50%)
AND send_email("Large value received")
ELSE
convert_to_usdc(100%)
Multiple Conditions
IF (day_of_week == "monday") AND (value > 500)
THEN execute_action()
Dynamic Values
Use dynamic paths in automations:
{events.hooks.crypto_charge_paid.amount}- Payment amount{events.hooks.crypto_charge_paid.token.id}- Token ID{events.hooks.crypto_charge_paid.wallet_address}- Wallet address{events.actions.123.to_amount}- Result of previous action
Security Limits
Configure limits to protect your automations:
- Maximum amount per execution
- Maximum number of executions per day
- Automatic pause after failures
📊 Executions
Monitoring Executions
Track all executions in Automations → Executions:
- Status: Success, failure, pending
- Timestamp: When it was executed
- Trigger: What started the execution
- Actions: Which actions were executed
- Logs: Execution details
Execution Status
- 🟢 Success: Executed without issues
- 🟡 Pending: Waiting for confirmation
- 🔴 Failure: Error in execution
- ⏸️ Canceled: Manually canceled
- 🔄 Reprocessing: Automatic retry
💡 Common Use Cases
1. Simple Auto-Transfer
Objective: Transfer received crypto to a specific wallet
Workspace: "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. Automatic Cross-Chain Swap
Objective: Convert received token to USDC on another network
Workspace: "Auto Convert USDC"
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 wallet
3. Automatic Distribution
Objective: Split receipt into multiple allocations
Workspace: "Automatic Distribution"
Hook: crypto.charge.paid
Action: transform.numeric_split
- Source Value: {events.hooks.crypto_charge_paid.amount}
- Allocations:
- 50% → Reserve
- 30% → Investment
- 20% → Expenses
4. Balance Monitoring
Objective: Check wallet balance periodically
Workspace: "Balance Monitor"
Hook: scheduler (EvmWallet)
Action: evm_wallet.get_token_balance
- Wallet: Specific wallet
- Token: USDC
- Conditional Action: If balance < $1000, send alert
5. DeFi Auto-Compound
Objective: Reinvest fees automatically
Workspace: "Auto Compound"
Hook: scheduler (DefiPosition)
Action: defi_position.collect_fees
- Position: {events.hooks.scheduler.position_id}
- Reinvest: Yes
- Strategy: Auto compound
🛡️ Security and Best Practices
Secure Configuration
- Test with small amounts first
- Configure maximum limits per execution
- Use multiple confirmations for high values
- Monitor executions regularly
Redundancy
- Don't put everything in one automation
- Have manual backup for critical operations
- Configure alerts for failures
- Review settings periodically
Recommended Limits
- Maximum amount per execution: 10% of your portfolio
- Executions per day: Maximum 20
- Pause after: 3 consecutive failures
🆘 Troubleshooting
Automation did not execute
- Check if it is active in the workspace
- Confirm if trigger was actually activated
- Check logs for specific errors
- Manually test the trigger
Execution failed
- Read error logs in the Executions section
- Check for sufficient balances for actions
- Confirm trigger/action settings
- Test with smaller parameters
Slow performance
- Simplify complex automations
- Reduce frequency of checks
- Group related actions
- Archive unused workspaces
Next steps: Use the No-Code Editor to create your automations or explore the Event Structure to understand the available data.