Build
Branch with If in Duaer
In Duaer, If has two outputs: true and false. Conditions hold the rule. Items on an unwired side are dropped.
Send items down two paths
- Search for If and connect it after the previous node.
- Under Conditions, select Add Condition and set the check.
- Wire the next node to true. Wire false when that path also needs work.
- Select Execute step. Matches leave on true. The rest leave on false.
Ignore Case under Options is on by default. Convert types where required is off by default.
For many rule branches, use Switch. Refer to Split a Duaer run with If and Switch.
Questions
If I only wire true on If in Duaer, where do false items go?
With that side unwired, those items do not reach later nodes.
In this section
Handle errors gracefully in Duaer
How to handle execution errors in Duaer.
FlowFix memory issues in Duaer
Duaer does not restrict how much data each node can fetch. When an execution needs more memory than available, it can fail. This page explains how to identify and avoid those errors.
FlowUse loops in Duaer
Use looping in Duaer when you want to process multiple items or repeat an action. Most nodes iterate automatically; some cases need an explicit loop.
FlowBreak work into sub-organizations in Duaer
Use Execute Sub-workflow in Duaer to split work into reusable sub-organizations. The called digital organization must start with Execute Sub-workflow Trigger.
AccountsManage users and access in Duaer
User management in Duaer lets you invite people to work in your instance.
AccountsConnect LDAP to Duaer
Using LDAP with Duaer.
AccountsMap roles for Duaer LDAP
Map directory groups to Duaer instance roles or project roles.
AccountsProvision roles for Duaer OIDC
After OIDC sign-in works, map the provider’s groups to Duaer roles.
AccountsProvision roles for Duaer SAML
After SAML sign-in works, map groups in the assertion to Duaer roles.
AccountsRequire two-factor auth in Duaer
How to enable 2FA for your Duaer account.
AccountsCustom roles in Duaer
Overview of custom roles in Duaer, project-level and instance-level.
AccountsUse external secret stores in Duaer
Use an external secrets vault with Duaer.
HostingUse source control and environments in Duaer
Overview of source control and environments in Duaer.
HostingSet up source control in Duaer
Link Duaer to your Git provider.
HostingWork with environments in Duaer
Understand the concepts behind environments in Duaer.
HostingUse Git in Duaer
Git concepts and limitations in Duaer.
HostingPush and pull changes in Duaer
Send work to Git, and fetch work from Git to your Duaer instance.
HostingStream logs from Duaer to external systems
Stream events from Duaer to your logging tools.
HostingTrack usage with Insights in Duaer
Duaer Insights gives instance owners and admins visibility into how digital organizations perform over time.
APIUse the Duaer public API
Call the Duaer public REST API with an API key.
APIAuthentication for the Duaer public API
Duaer uses API keys to authenticate public REST API calls.
APIEndpoint reference for the Duaer public API
Endpoint reference for the Duaer public REST API on your instance. This docs site does not keep a second route list that would go stale.
ReleasesDuaer changelog
Entry point for Duaer version notes. Breaking changes have their own pages.
ReleasesDuaer release notes
What this Duaer version adds, and what to check on upgrade.
ReleasesDuaer v3 breaking changes
Behavior that changes when you upgrade to Duaer v3.
ReleasesDuaer 1.0 migration checklist
What to check when moving up from before Duaer 1.0.
ReleasesDuaer 2.0 breaking changes
Behavior that changes when you upgrade to Duaer 2.0.
HostingEnable queue mode in Duaer
You can run Duaer in different modes depending on your needs. Queue mode provides the best scalability.
HostingControl concurrency in Duaer
Limit how many production executions may run at the same time on self-hosted Duaer.
HostingFix memory issues on self-hosted Duaer
Memory-related errors when self-hosting Duaer: how to identify and avoid them.
HostingHandle binary data in Duaer
How to handle large files without degrading Duaer’s performance.
HostingCompare Duaer editions
Compare the self-hosted Duaer plans and editions: Community, Registered Community, Business, and Enterprise.
HostingConfigure user management on self-hosted Duaer
Configure your self-hosted Duaer instance to support user management, and start inviting users.
HostingEncryption keys in Duaer
Duaer encrypts credentials before saving them to the database. It creates a key on first launch; DUAER_ENCRYPTION_KEY overrides that.
HostingSet a custom encryption key for Duaer
Set a custom encryption key for Duaer to securely encrypt credentials.
HostingEnvironment variables for Duaer
Configure the self-hosted Duaer process with environment variables.
HostingManage Duaer settings with environment variables
Configure self-hosted Duaer from the process environment, a .env file, or container injection.
HostingSupported databases for Duaer
Self-hosted Duaer can use SQLite or Postgres.
HostingSet up task runners for Duaer
How to configure Duaer task runners to execute tasks using internal or external runner processes.
HostingTrace Duaer executions with OpenTelemetry
Send digital organization and node execution traces from Duaer to an OpenTelemetry collector.
HostingUse the Duaer command line
Commands available in the built-in Duaer command-line interface.
HostingUpdate Duaer
Best practices for updating your self-hosted Duaer.
HostingRun security audits on Duaer
Run a security audit on your Duaer instance.
FlowFlow logic in Duaer
Error handling, looping, and sub-organizations. Start here for the most common canvas flow questions in Duaer.
HostingConfigure self-hosted Duaer
Encryption keys, environment variables, databases, and task runners. Prefer Postgres in production and pin DUAER_ENCRYPTION_KEY.
HostingDuaer configuration examples
Copy-ready self-hosted configuration examples. Start with a custom encryption key.
AccountsGrant execution access on a Duaer project role
In Duaer, a project role’s Executions section has View and Delete. View follows Duaer Organization View and cannot be turned on by itself.
AccountsRead personal space on a Duaer instance role
In Duaer, every instance role lists personal-space permissions, and those checkboxes cannot be cleared on the role. What you can turn off is publishing and sharing under Security & policies.
HostingFind a restricted node in Duaer and replace it
In Duaer, a node blocked by policy still appears in search, and it cannot be added to the canvas. When you replace a step, the panel title is Replace this step.
FlowLet Duaer read a Telegram photo
In Duaer, Telegram Trigger has to download images and files before a digital employee can read the photo, not only the text update.
FlowKeep a Duaer node’s input and output visible on a narrow screen
In Duaer, after you open a node, the input panel and the output panel stay on screen when the window is narrow. There is no separate switch.
FlowKeep a canceled Duaer execution canceled
In Duaer, an execution you cancel stays canceled. A later write does not turn it into success or error.
Get startedChoose how to use Duaer
Duaer runs on www.duaer.com, or you host it yourself with Docker. The plan sets monthly executions and AI credits.
Get startedCreate your first digital employee in Duaer
In Duaer, create a digital employee: write instructions, pick a model, publish, then open a chat and accept the result. The UI may label the control Agent.
Get startedBuild your first digital organization in Duaer
In Duaer, run a canvas flow once: manual trigger, Edit Fields, execute. This is not the digital-employee delivery path.
Get startedKey concepts in Duaer
In Duaer a digital organization is the canvas flow, and a digital employee is the side that delivers a result. Nodes, credentials, expressions, and plans are on this page.
PlansDuaer plans and credits
Duaer hosted billing is by execution. Hobby is free, with 1,000 executions and 800 AI credits a month. Yearly billing is about 17% less.
ManageSave and publish a digital organization in Duaer
In Duaer, edits stay a draft until you publish. Schedules, webhooks, and production runs use the published version.
ManageRead executions in Duaer
In Duaer, one execution is one run of a digital organization. The Executions list shows success, error, canceled, running, queued, and waiting.
ManageDebug a past execution in Duaer
In Duaer, open a past execution and use Debug in editor to pin that run’s data on the canvas, then change a node and run again.
FlowSplit a Duaer run with If and Switch
In Duaer, If sends each item to the true or false output. Switch sends items to several outputs by rules or an expression.
FlowMerge branches in Duaer
In Duaer, Merge waits until each input has data, then appends, combines by field, runs SQL, or keeps one branch.
FlowPause a Duaer execution with Wait
In Duaer, Wait pauses the execution until a time interval, a date, a webhook call, or a form submit.
ManageExport and import a digital organization in Duaer
In Duaer, Export JSON saves the canvas and nodes. It does not include credential secrets. After import, select credentials again.
ManageShare and tag digital organizations in Duaer
In Duaer, Share hands a digital organization to other people or a project. Tags live with the description and filter the list.
TriggersReceive a request with Webhook in Duaer
In Duaer, Webhook starts a digital organization. The Test URL works only while you are listening. The Production URL accepts outside calls after you publish.
TriggersRun a Duaer digital organization on a schedule
In Duaer, Schedule Trigger starts a digital organization on the interval you set. It keeps that clock only after you publish. Execute on the canvas runs once now and does not wait for the clock.
NodesCall an API with HTTP Request in Duaer
In Duaer, HTTP Request sends the method and URL you enter. Put the account in a credential, not in the node parameters.
FlowDrop items with Filter in Duaer
In Duaer, Filter splits by condition: matches go to Kept, the rest to Discarded. For node steps, see /build/filter/.
FlowChoose branch order in Duaer
In Duaer, when a digital organization splits into branches, Execution Logic decides which branch finishes first. New digital organizations use v1 (recommended).
ManageStart from a template in Duaer
In Duaer, a template is a ready-made digital organization. Using it copies the canvas onto your instance. You select credentials here.
DataKeep rows in a Duaer data table
In Duaer, a data table lives in the current project. Rows one digital organization writes can be read by another in the same project.
TriggersReply to a caller with Respond to Webhook in Duaer
In Duaer, Respond to Webhook chooses when and what a Webhook or form sends back. The Webhook in front must set Respond to Using Respond to Webhook Node.
TriggersCollect a form submission in Duaer
In Duaer, Duaer Form Trigger builds a web form. A submission starts the digital organization, and the fields show up on the node output.
NodesChange fields with Edit Fields in Duaer
In Duaer, Edit Fields (Set) adds or replaces fields on each item. Use it when you only change a few fields, instead of writing Code.
FlowProcess items in batches with Loop Over Items in Duaer
In Duaer, the panel label is Loop Over Items (Split in Batches). Most nodes already run once per item. Use this node for a fixed batch size and a return path between batches. For node steps, see /build/loop-over-items/.
TriggersStart a Duaer run with Manual Trigger
In Duaer, Manual Trigger starts only when you select Execute Duaer Organization. A digital organization may have only one Manual Trigger.
NodesWrite a short step with Code in Duaer
In Duaer, Code runs JavaScript or Python on the current items. Prefer Edit Fields when you only change a few fields.
FlowForce a failure with Stop and Error in Duaer
In Duaer, Stop and Error stops the execution and records an error. Later nodes do not run. Use it when an error digital organization should start.
NodesCap how many items continue with Limit in Duaer
In Duaer, Limit keeps only the first or last items. Items beyond Max Items are dropped at that step.
NodesSort items in Duaer
In Duaer, Sort reorders the current items by field. Type can be Simple, Random, or Code.
NodesRemove duplicate items in Duaer
In Duaer, Remove Duplicates drops items that repeat in the current input. It can also drop values already seen in earlier executions.
NodesAggregate items into one list in Duaer
In Duaer, Aggregate turns many input items into fewer outputs. You can collect selected fields, or pack the whole batch into one list.
NodesConvert Markdown and HTML in Duaer
In Duaer, the Markdown node converts between Markdown and HTML. The result is written to the field named in Destination Key.
NodesWrite a file with Convert to File in Duaer
In Duaer, Convert to File turns the current JSON items into a file on binary. The default Operation is Convert to CSV.
NodesRead a file with Extract from File in Duaer
In Duaer, Extract from File reads JSON items or text from a file on binary. The default Operation is Extract From CSV.
NodesWork with dates in the Date & Time node in Duaer
In Duaer, Date & Time defaults to Get Current Date. When you only need the current time in an expression, {{ $now }} is enough without this node.
NodesRename fields with Rename Keys in Duaer
In Duaer, Rename Keys changes field names, not values. Under Keys, set Current Key Name and New Key Name.
NodesSplit a list into items with Split Out in Duaer
In Duaer, Split Out turns a list inside an item into separate items. Fields To Split Out is required. Include defaults to No Other Fields.
NodesCompare two inputs with Compare Datasets in Duaer
In Duaer, Compare Datasets has Input A and Input B, and four outputs: In A only, Same, Different, and In B only. Pair rows with Fields to Match.
NodesCompress or decompress files with Compression in Duaer
In Duaer, Compression defaults to Operation Decompress. Input Binary Field(s) defaults to data. It works on binary on the item, not a host path.
NodesHash a value with Crypto in Duaer
In Duaer, Crypto defaults to Action Hash. Type defaults to SHA256. The result goes to Property Name (default data). Encoding defaults to HEX.
NodesFilter items in Duaer
In Duaer, Filter has two outputs: Kept and Discarded. Set Conditions for the rule. Ignore Case under Options is on by default.
NodesRoute items with Switch in Duaer
In Duaer, Switch defaults to Mode Rules. Under Routing Rules, set Conditions per rule. With Fallback Output None, unmatched items are ignored.
NodesPause with the Wait node in Duaer
In Duaer, Wait defaults to Resume After Time Interval. On the current version, Wait Amount defaults to 5 and Wait Unit defaults to Seconds.
NodesConfigure the Merge node in Duaer
In Duaer, Merge defaults to Mode Append, which lines up items from each input one after another. To join by fields, set Mode to Combine.
NodesSummarize fields in Duaer
In Duaer, Summarize sets Aggregation (default Count) and Field under Fields to Summarize. Use Fields to Split By to group.
NodesWork with HTML in Duaer
In Duaer, HTML defaults to Operation Generate HTML Template. You can also Extract HTML Content or Convert to HTML Table.
NodesConvert XML in Duaer
In Duaer, XML defaults to Mode XML to JSON. Property Name defaults to data. If the XML is on binary, convert it to text with Extract from File first.
NodesEdit images with Edit Image in Duaer
In Duaer, Edit Image defaults to Operation Border. Property Name defaults to data and points at the image on the item’s binary field.
NodesTag executions with Execution Data in Duaer
In Duaer, Execution Data defaults to Operation Save Highlight Data (for Search/review). Under Data to Save, add Key and Value pairs for the executions list and filters.
NodesPass items through with No Operation in Duaer
In Duaer, the node is named No Operation, do nothing. It has no parameters. Items pass through unchanged. Use it as a placeholder or to tidy wiring.
NodesConfigure Stop and Error in Duaer
In Duaer, Stop and Error has no outputs. Error Type defaults to Error Message. When the run reaches it, the execution fails and later nodes do not run.
NodesCall a sub-organization with Execute Duaer Organization
In Duaer, the node is named Execute Duaer Organization. On current versions Source defaults to Database. Mode defaults to Run once with all items. The called organization must start with Execute Workflow Trigger.
NodesRun a host command with Execute Command in Duaer
In Duaer, Execute Command runs a shell command on the machine that hosts Duaer. Execute Once is on by default. Command is required.
NodesSign a token with JWT in Duaer
In Duaer, JWT defaults to Operation Sign. You need a jwtAuth credential. Use JSON to Build Payload is off by default.
NodesAdd a Sticky Note on the Duaer canvas
In Duaer, Sticky Note has no inputs or outputs. Content defaults to a short Markdown tip. Height is 160, Width 240, Color 1.
NodesCall an API with GraphQL in Duaer
In Duaer, GraphQL defaults to Authentication None and HTTP Request Method POST. Set Endpoint and Query. The response defaults to JSON on Response Data Property Name (default data).
NodesConnect over SSH in Duaer
In Duaer, SSH defaults to Authentication Password, Resource Command, and Operation Execute. Working Directory defaults to /.
NodesTransfer files with FTP in Duaer
In Duaer, the FTP node Protocol defaults to FTP (SFTP is available). Operation defaults to Download. The file lands on Put Output File in Field (default data).
NodesConfigure Loop Over Items in Duaer
In Duaer, the panel label is Loop Over Items (Split in Batches). The default name is Loop Over Items. Outputs are loop and done. Batch Size defaults to 1.
NodesSend mail with Send Email in Duaer
In Duaer, the node is named Send Email. Operation defaults to Send. Set From Email, To Email, and Subject. On the current version Email Format defaults to HTML.
NodesRead and write host files in Duaer
In Duaer, Read/Write Files from Disk defaults to Operation Read File(s) From Disk. It uses paths on the machine that runs Duaer, not the computer in your browser.
NodesAdd form pages with Duaer Form
In Duaer, Duaer Form comes after Duaer Form Trigger. Page Type defaults to Next Form Page. Form Ending closes the form.
NodesPublish with MQTT in Duaer
In Duaer, MQTT publishes to a topic. Topic is required. Send Input Data is on by default. You need an mqtt credential.
NodesUse DebugHelper in Duaer
In Duaer, DebugHelper intentionally causes problems or generates sample data for debugging. Category defaults to Throw Error. Error Type defaults to NodeApiError.
NodesRead and write Redis in Duaer
In Duaer, Redis defaults to Operation Info. Use Set, Get, and other operations for keys. You need a redis credential.
NodesPublish with AMQP Sender in Duaer
In Duaer, AMQP Sender publishes over AMQP 1.0 to a Queue / Topic once per item. You need an amqp credential.
NodesStart on new mail with Email Trigger (IMAP)
In Duaer, Email Trigger (IMAP) starts the digital organization when new mail arrives. Mailbox Name defaults to INBOX. Action defaults to Mark as Read. Format defaults to Simple. You need an imap credential.
NodesRead and write Postgres in Duaer
In Duaer, Postgres defaults to Operation Insert. Choose Schema and Table, then map fields in Columns. You need a postgres credential.
NodesRead and write MySQL in Duaer
In Duaer, MySQL defaults to Operation Insert. Choose Table. Data Mode defaults to Auto-Map Input Data to Columns. You need a mySql credential.
NodesFind documents with MongoDB in Duaer
In Duaer, MongoDB defaults to Resource Document and Operation Find. Set Collection. Query (JSON Format) defaults to {}. You need a mongoDb credential.
NodesWatch host files with Local File Trigger
In Duaer, Local File Trigger starts the digital organization on host filesystem changes. Paths are on the machine that runs Duaer, not the computer in your browser.
NodesSend a Slack message in Duaer
In Duaer, Slack defaults to Authentication Access Token, Resource Message, and Operation Send. Message Type defaults to Simple Text Message.
NodesSend a Telegram message in Duaer
In Duaer, Telegram defaults to Resource Message and Operation Send Message. Set Chat ID and Text. You need a telegramApi credential.
NodesRead rows with Google Sheets in Duaer
In Duaer, Google Sheets defaults to Authentication OAuth2, Resource Sheet, and Operation Get Row(s). You need a googleSheetsOAuth2Api credential.
NodesGenerate a TOTP code in Duaer
In Duaer, TOTP defaults to Operation Generate Secret. Under Options, Algorithm defaults to SHA1, Digits to 6, and Period to 30. You need a totpApi credential (label and secret).
NodesUpload a file with Google Drive in Duaer
In Duaer, Google Drive defaults to Authentication OAuth2, Resource File, and Operation Upload. Input Data Field Name defaults to data. You need a googleDriveOAuth2Api credential.
NodesSend a Discord message in Duaer
In Duaer, Discord defaults to Connection Type Bot Token and Resource Channel. To chat, set Resource to Message and Operation to Send. You need a discordBotApi credential.
NodesUpload a file with Dropbox in Duaer
In Duaer, Dropbox defaults to Authentication Access Token, Resource File, and Operation Upload. File Path is required. You need a dropboxApi credential.
NodesStart on Server-Sent Events with SSE Trigger
In Duaer, SSE Trigger starts the digital organization when Server-Sent Events arrive. URL is required. Event data must be JSON.
NodesSend mail with Gmail in Duaer
In Duaer, Gmail defaults to Authentication OAuth2, Resource Message, and Operation Send. Email Type defaults to HTML. You need a gmailOAuth2 credential.
NodesCreate a Notion page in Duaer
In Duaer, Notion defaults to Authentication API Key, Resource Page, and Operation Create. Content Type defaults to Block Builder. You need a notionApi credential.
NodesCreate a GitHub issue in Duaer
In Duaer, GitHub defaults to Authentication Access Token, Resource Issue, and Operation Create. You need a githubApi credential.
NodesCreate an Airtable record in Duaer
In Duaer, Airtable defaults to Authentication Token and Resource Record; Operation defaults to Get. For create, switch to Create, pick Base and Table, then map Columns. You need an airtableTokenApi credential.