| Send_Email | Integration | Azure Communication Services | Sends an email through Azure Communication Services. | from (string, required): Sender email address from a verified Azure Communication Services Email domain.; to (string, required): Recipient email address or comma/semicolon-separated addresses.; cc (string, optional): Optional CC email address or comma/semicolon-separated addresses.; bcc (string, optional): Optional BCC email address or comma/semicolon-separated addresses.; subject (string, required): Email subject.; body (string, required): Email body.; bodyContentType (string, optional) |
| Send_SMS | Integration | Azure Communication Services | Sends an SMS message through Azure Communication Services. | from (string, required): Azure Communication Services phone number in E.164 format.; to (string, required): Recipient phone number or comma/semicolon-separated phone numbers in E.164 format.; message (string, required): SMS message content.; enableDeliveryReport (boolean, optional): Whether Azure Communication Services should emit delivery reports.; tag (string, optional): Optional delivery report tag. |
| Archive_Email | Integration | Exchange Mail Account | Moves an Exchange email message to the mailbox Archive folder. | mailbox (string, optional): Optional mailbox/user principal name containing the message. Defaults to the Exchange mailbox configured on the app.; messageId (string, required): Microsoft Graph message ID.; destinationFolderId (string, optional): Optional destination folder ID or well-known folder name. Defaults to archive. |
| Flag_Email | Integration | Exchange Mail Account | Flags an Exchange email message for follow-up. | mailbox (string, optional): Optional mailbox/user principal name containing the message. Defaults to the Exchange mailbox configured on the app.; messageId (string, required): Microsoft Graph message ID.; flagStatus (string, optional): Follow-up flag status.; dueDateTime (string, optional): Optional due date/time in ISO 8601 format.; startDateTime (string, optional): Optional start date/time in ISO 8601 format.; dateTimeZone (string, optional): Time zone for start/due dates. Defaults to UTC. |
| Get_Email_Attachment | Integration | Exchange Mail Account | Gets a single Exchange email file attachment on demand as base64 content. | mailbox (string, optional): Optional mailbox/user principal name containing the message. Defaults to the Exchange mailbox configured on the app.; messageId (string, required): Microsoft Graph message ID.; attachmentId (string, required): Microsoft Graph attachment ID. |
| Get_Email_Details | Integration | Exchange Mail Account | Gets full details for an Exchange email message on demand. | mailbox (string, optional): Optional mailbox/user principal name containing the message. Defaults to the Exchange mailbox configured on the app.; messageId (string, required): Microsoft Graph message ID. |
| List_Email_Attachments | Integration | Exchange Mail Account | Lists attachment metadata for an Exchange email message on demand. | mailbox (string, optional): Optional mailbox/user principal name containing the message. Defaults to the Exchange mailbox configured on the app.; messageId (string, required): Microsoft Graph message ID. |
| Mark_Email_As_Read | Integration | Exchange Mail Account | Marks an Exchange email message as read. | mailbox (string, optional): Optional mailbox/user principal name containing the message. Defaults to the Exchange mailbox configured on the app.; messageId (string, required): Microsoft Graph message ID. |
| Send_Email | Integration | Exchange Mail Account | Sends an Exchange email and can include one generated text attachment. | mailbox (string, optional): Optional mailbox/user principal name to send from. Defaults to the Exchange mailbox configured on the app.; to (string, required): Recipient email address or comma/semicolon-separated addresses.; cc (string, optional): Optional CC email address or comma/semicolon-separated addresses.; bcc (string, optional): Optional BCC email address or comma/semicolon-separated addresses.; subject (string, required): Email subject.; body (string, required): Email body.; bodyContentType (string, optional); attachmentFileName (string, optional): Optional generated attachment file name.; attachmentContent (string, optional): Optional generated text attachment content.; attachmentContentType (string, optional): Optional attachment content type, for example text/csv, application/json, text/xml, or text/plain. |
| Acknowledge_A_Manual_Acceptance_Of_An_Invoice | Dooap | General | Studio reports the action runs it started for an InvoiceManuallyAccepted event before running them, with an empty list when no action matched the event. The accept button of the invoice waits until the reported runs have ended, so report their status through the action status endpoint as usual. Give the acknowledgement time on the same clock as the status dates of the runs. | invoiceId (string, required); manualAcceptanceId (string, required); acknowledgedAt (string, required); actionRuns (array, required); studioTenantId (string, required) |
| Apply_Patch | Context | General | Applies a simple unified diff patch to a text Data File. | path (string, required); patch (string, required); expectedEtag (string, optional) |
| Approve_Invoice | Dooap | General | Approve invoice. | invoiceId (string, required): Invoice ID in GUID format; comment (string, required); userId (string, required): User ID in GUID format; workflowStepId (string, required): Workflow step ID in GUID format |
| Close_Human_Task | Context | General | Appends a final A2UI v1.0 summary to the current human task, marks it completed, and continues the agent run without waiting for human input. | a2ui (array<object>, required): A2UI v1.0 message array as structured JSON. This parameter is required. Include final human-visible summary content only; do not include fields that require a user response. Set "version":"v1.0" on every message and use catalogId https://a2ui.org/specification/v1_0/catalogs/basic/catalog.json. Do not encode this as a JSON string; provide the array directly. Start with a createSurface message (surfaceId human-task) carrying a flat components array containing root, plus dataModel when components bind values with {"@path":"/field"}. Component ids contain only letters, digits, and underscores. Text variant is only body or caption; write headings as Markdown such as "## Summary". For Row and Column layout use justify and align. The component field must be a string naming the catalog type (for example "Text", "Column", "Card", "ChoicePicker"); put every other property (text, child, children, options, value, and so on) as a sibling of id and component, never nested inside it. Do not use a "type" field and do not wrap the definition in an object. Correct: {"id":"title","component":"Text","text":"Hello"}. Wrong: {"id":"title","component":{"type":"Text","text":"Hello"}}. |
| Continue_Human_Task | Context | General | Appends a new A2UI v1.0 submission to the current human task and pauses the current execution until the task is submitted again. Use this for multi-turn human-in-the-loop flows after Create_Human_Task has already created the task. | a2ui (array<object>, required): A2UI v1.0 message array as structured JSON. This parameter is required. The a2ui array must be standalone renderable and must start with a createSurface message before any updateDataModel or updateComponents messages. Set "version":"v1.0" on every message and use catalogId https://a2ui.org/specification/v1_0/catalogs/basic/catalog.json; prefer one createSurface with surfaceId human-task carrying dataModel (initial values for bound paths) and the components. Do not encode this as a JSON string; provide the array directly. Include all human-visible instructions and the next interactive inputs here; Human Tasks do not render separate free-form text. Continue_Human_Task does not inherit the previous surface; include createSurface every time. Use the same A2UI v1.0 rules as Create_Human_Task: component ids contain only letters, digits, and underscores; bind data with {"@path":"/field"} and write checks with {"@call":"name","args":{...}} (never the v0.9 forms {"path":...} or {"call":...}); Text variant is only body or caption, so write headings as Markdown such as "## Your move"; Row and Column use justify and align; DateTimeInput uses enableDate and/or enableTime. For TicTacToe-style turns, include the current board state and a ChoicePicker bound to a string-array path such as {"@path":"/move"}, initialized to [] in dataModel. The components must form a flat components array with root. The component field must be a string naming the catalog type (for example "Text", "Column", "Card", "ChoicePicker"); put every other property (text, child, children, options, value, and so on) as a sibling of id and component, never nested inside it. Do not use a "type" field and do not wrap the definition in an object. Correct: {"id":"title","component":"Text","text":"Hello"}. Wrong: {"id":"title","component":{"type":"Text","text":"Hello"}}.; submitLabel (string, optional): Optional label for the Human Task page submit button for this turn, such as Approve, Next, Send, or Submit task. Use null for the default label. |
| Convert_Excel_To_CSV | Context | General | Converts a single sheet of an .xlsx/.xlsm/.xltx workbook into a CSV runtime file. Resolve the workbook via runtimeFile (or aliases contentFile/file). The returned runtimeFile can be passed to file-aware tools such as Write_File or Write_Blob. | runtimeFile (string, optional): Runtime file reference to the source workbook (.xlsx, .xlsm, or .xltx). Accepts a runtime file object, latest, runtimeFile:<id>, or file:<id>.; contentFile (string, optional): Alias for runtimeFile.; file (string, optional): Alias for runtimeFile.; sheetName (string, optional): Sheet name to convert. Defaults to the first sheet when omitted.; delimiter (string, optional): CSV delimiter. Defaults to a comma. Use \t, tab, or TAB for a tab-delimited file.; includeHeaders (boolean, optional): Whether to treat the first row as headers and include them in the output. Defaults to true.; outputFileName (string, optional): Optional output CSV file name. The .csv extension is added if omitted. Defaults to the source workbook name with a .csv extension. |
| Convert_To_PDF | Context | General | Converts a file in the run context into a PDF runtime file, choosing the conversion from the detected file type (extension, content type or file signature), so you do not need to know in advance whether an attachment is a PDF, Word document, spreadsheet, presentation, image or text. Resolve the source via runtimeFile (or aliases contentFile/file); pass 'latest' or omit it to use the most recently added file in the run context, for example an email attachment or a file loaded by a Read_Data_File input. Files that are already PDF are passed through unchanged as a new PDF runtime file. Word (.docx) and Excel (.xlsx) files are converted with LibreOffice when the environment provides it (full fidelity, including headers, footers, images and the workbook's own print setup) and otherwise with Studio's built-in layout engine, which keeps headings, text formatting, lists, tables, embedded images and page breaks and renders workbooks as one table per worksheet; the sheets, showSheetNames, maxRowsPerSheet and culture parameters apply to workbooks rendered by the built-in engine and select it automatically. HTML, Markdown and plain-text files are rendered with the built-in engine like Render_Document_To_PDF. PNG and JPEG images are placed on a page, scaled to fit. Every other format (PowerPoint .pptx/.ppt, legacy .doc/.xls, OpenDocument .odt/.ods/.odp, RTF, CSV, EPUB, Visio, TIFF, SVG and the other formats LibreOffice can open) requires the LibreOffice conversion service and fails with a clear message where it is not available. Unsupported file types (for example ZIP or JSON) are rejected. The result reports sourceFormat (detected extension), conversion (passthrough, word, excel, document, image or libreoffice) and the engine used. The returned runtimeFile can be passed to file-aware tools such as Write_File, Write_Blob or Send_Gateway_Email, or read by a following step via the Read_Context_File input with file 'latest'. | runtimeFile (string, optional): Runtime file reference to the source file of any supported type. Accepts a runtime file object, latest, runtimeFile:<id>, or file:<id>. Defaults to the most recently added file in the run context.; contentFile (string, optional): Alias for runtimeFile.; file (string, optional): Alias for runtimeFile.; engine (string, optional): Conversion engine. 'auto' (default) uses LibreOffice when the environment provides it and otherwise Studio's built-in renderer; 'libreoffice' requires it and fails otherwise; 'builtin' forces the built-in renderer, which supports Word, Excel, HTML, Markdown, plain text and PNG/JPEG images only. PDF sources ignore the engine.; fileName (string, optional): Output PDF file name. The .pdf extension is added if omitted. Defaults to the source file name with a .pdf extension.; pageSize (string, optional): Overrides the page size (built-in engine only; LibreOffice keeps the document's own page setup).; orientation (string, optional): Overrides the page orientation. Honoured by both engines.; margin (object, optional): Overrides page margins in millimeters (built-in engine only).; fontFamily (string, optional): PDF font family for the built-in engine. 'auto' (default) picks a face matching the source document. Times New Roman and Serif are aliases for STIX Two Text; Arial, Helvetica and Sans Serif are aliases for Source Sans Pro.; sheets (array | string, optional): Excel workbooks only: worksheets to render, as a list (or comma-separated string) of sheet names or 1-based positions, e.g. ["Summary","2"]. Defaults to every visible sheet. Selects the built-in engine.; showSheetNames (boolean, optional): Excel workbooks only: print each sheet's name as a heading above its table (built-in engine). Defaults to true.; maxRowsPerSheet (integer, optional): Excel workbooks only: maximum number of rows to render per sheet; the remaining rows are summarized in a note. Selects the built-in engine.; culture (string, optional): Excel workbooks only: culture for number and date formatting, e.g. 'en-US', 'fi-FI' or 'de-DE'. Defaults to invariant. Selects the built-in engine. |
| Copy_Coding_Lines | Dooap | General | Copies coding lines from one or more source invoices to a target invoice. Both ledger and project coding lines are supported. The coding lines can be from the same invoice or from different invoices. New coding line IDs will be generated for the copied lines, and they will be appended to the end of the existing coding lines on the target invoice. All properties of the coding lines are copied including: - Dimensions and their values - Amounts (gross, net, tax) - Tax groups - Transaction text - Accrual information (for ledger lines) - Project details (for project lines) - Intercompany information | invoiceId (string, required); codingLineIds (array<string>, required) |
| Copy_Coding_Lines_From_Invoices | Dooap | General | Copies all coding lines from one or more source invoices to a target invoice. Source invoices are processed in the same order they are provided in InvoiceIds. If AppendCodingLines is true (default), the copied lines will be appended to the existing coding lines. If AppendCodingLines is false, existing coding lines will be deleted before copying the new ones. | invoiceId (string, required); invoiceIds (array<string>, required); appendCodingLines (boolean, required) |
| Copy_Invoice_Workflow | Dooap | General | Copies the workflow structure from a source invoice to a target invoice. The target invoice workflow is replaced entirely. The source invoice's used preset is preserved when possible, and the copied workflow is reconciled against the target invoice's coding dimensions. | invoiceId (string, required); sourceInvoiceId (string, required) |
| Create_Asset_Coding_Line | Dooap | General | Create a new asset coding line with optional pre-populated fields(NULL values are ignored) including fixed asset number, transaction type, amounts, tax groups, transaction text, and intercompany. All fields are optional. | invoiceId (string, required); fixedAssetNumber (string, required); transactionType (string, required); salesTaxGroup (string, required); itemSalesTaxGroup (string, required); amount (number, required); netAmount (number, required); taxAmount (number, required); transactionText (string, required); interCompany (string, required) |
| Create_File | Context | General | Creates a new tenant Data File. | path (string, required); content (string, optional); contentBase64 (string, optional); contentType (string, optional); overwrite (boolean, optional) |
| Create_Folder | Context | General | Creates an empty Data Files folder. | folder (string, required) |
| Create_Human_Task | Context | General | Creates a pending human task with an A2UI v1.0 UI and pauses the current execution until the task is submitted. Assigning the task to an email address sends a notification with a direct verification link. | title (string, required): Short task title shown in the Human Tasks page and task selector.; description (string, required): Optional email description included in the notification sent to the assignee. Put interactive task content in a2ui.; assignedTo (string, required): User email or assignee display label. If this is an email address, Studio sends a notification and the assignee can complete the task by verifying a code sent to the same address. Use null when there is no specific assignee.; a2ui (array<object>, required): A2UI v1.0 message array as structured JSON. This parameter is required. Put all task instructions, context, and inputs in this A2UI message array because Human Tasks do not render a separate free-form response field. Do not encode this as a JSON string; provide the array directly. The a2ui array must be standalone renderable and must start with a createSurface message before any updateDataModel or updateComponents messages. Set "version":"v1.0" on every message. Preferred pattern: one createSurface message with surfaceId human-task, catalogId https://a2ui.org/specification/v1_0/catalogs/basic/catalog.json, dataModel holding the initial value of every bound path, and a flat components array containing id root. Separate updateDataModel (surfaceId, path, value; value is required and null deletes the key) and updateComponents (surfaceId, components) messages may follow it. Component ids contain only letters, digits, and underscores (po_number, not po-number). Bind data with {"@path":"/field"} and call functions with {"@call":"name","args":{...}} without returnType; the v0.9 forms {"path":...} and {"call":...} are rejected. Card requires child (a component id). Column and Row require children (an array of component ids, or the list template {"componentId":"item","path":"/items"}); for layout use justify start|end|center|spaceBetween|spaceAround|spaceEvenly|stretch and align start|center|end|stretch. Text requires text and renders simple Markdown (bold, italic, line breaks, https links); variant is only body or caption, so write headings as Markdown such as "## Invoice approval". ChoicePicker requires options [{label,value}] and value; bind value to a string-array path such as {"@path":"/choice"} initialized to [] in dataModel, also for mutuallyExclusive choices (for radio buttons use variant mutuallyExclusive and displayStyle checkbox). CheckBox requires a boolean binding; initialize each CheckBox path to false, or initialize the parent object to {} when using child paths such as /move/r1c1. Do not initialize a parent path to [] and then bind children with object keys. For TicTacToe-style single-cell choices, prefer ChoicePicker bound to /move initialized as [] over separate CheckBox components. TextField requires label and supports value (string path), variant shortText|longText|number|obscured, and placeholder. DateTimeInput requires value (string path initialized to "") and enableDate and/or enableTime set to true; it has no type property. Validate inputs with checks such as [{"condition":{"@call":"required","args":{"value":{"@path":"/field"}}},"message":"Enter a value."}] using required, regex (value, pattern), length (value, min, max), numeric (value, min, max), email, and and/or/not to combine them; the submit button stays disabled while a check fails. TextField validationRegexp does not exist in v1.0. DropDown is a Dooap Studio extension with the same options/value contract as ChoicePicker (string-array path initialized to []) that renders as a compact select; prefer DropDown over ChoicePicker when there are many (5+) options. DropDown supports options, value, label, variant mutuallyExclusive|multipleSelection, placeholder, and helperText. FileLink requires fileId; use files[N] placeholders for attached files, e.g. {"id":"invoice_file","component":"FileLink","fileId":"files[0]","label":"Open invoice"}. FileLink supports an optional showPreview boolean (alias preview) that, when true, renders an inline preview of the linked file (PDF, image, spreadsheet, JSON, CSV, or text) directly below the link. FileUpload lets the human assignee upload one or more files; bind FileUpload.value to a string-array path such as {"@path":"/uploadedFileIds"} initialized to [], and the resuming agent run will receive each uploaded file as an InputFile (most recent is resolvable as "latest", any specific upload as runtimeFile:<id>). FileUpload supports label, helperText, accept (HTML accept attribute), multiple, maxFileSizeBytes, and maxFiles; the server enforces a 25 MB per-file cap and a 20-file per-task cap regardless of those props. The Human Task page has its own submit button, so Button components are rarely needed. Example: [{"version":"v1.0","createSurface":{"surfaceId":"human-task","catalogId":"https://a2ui.org/specification/v1_0/catalogs/basic/catalog.json","dataModel":{"decision":[],"comment":""},"components":[{"id":"root","component":"Card","child":"content"},{"id":"content","component":"Column","children":["title","instructions","decision","comment"]},{"id":"title","component":"Text","text":"## Invoice approval"},{"id":"instructions","component":"Text","text":"Review the invoice and choose a decision."},{"id":"decision","component":"ChoicePicker","label":"Decision","variant":"mutuallyExclusive","displayStyle":"checkbox","options":[{"label":"Approve","value":"Approve"},{"label":"Reject","value":"Reject"}],"value":{"@path":"/decision"},"checks":[{"condition":{"@call":"required","args":{"value":{"@path":"/decision"}}},"message":"Choose a decision."}]},{"id":"comment","component":"TextField","label":"Comment","variant":"longText","value":{"@path":"/comment"}}]}}]. The component field must be a string naming the catalog type (for example "Text", "Column", "Card", "ChoicePicker"); put every other property (text, child, children, options, value, and so on) as a sibling of id and component, never nested inside it. Do not use a "type" field and do not wrap the definition in an object. Correct: {"id":"title","component":"Text","text":"Hello"}. Wrong: {"id":"title","component":{"type":"Text","text":"Hello"}}.; files (array, required): Optional array of files to attach to the human task and surface to the human via FileLink components in the a2ui parameter. Each entry is a RuntimeFileReference. Shortcut string forms: "latest" (or "$latest") selects the most recent runtime file from the current execution context; "runtimeFile:<fileId>" or "file:<fileId>" selects a specific runtime file by id. Object form: {"runtimeFile":"latest"} or {"runtimeFile":"<fileId>"}, optionally including "fileName" or "contentType" overrides that control how the file is displayed in the Human Task. Reference attached files from FileLink components in a2ui using the placeholder {"fileId":"files[N]"} where N is the zero-based index of the file in this array.; submitLabel (string, required): Optional label for the Human Task page submit button for this task, such as Approve, Next, Send, or Submit task. Use null for the default label.; expirationHours (number, required): Optional number of hours after which the task automatically expires if not completed. On expiry the action run resumes automatically and the step output's humanTaskStatus becomes "expired" (it is "completed" when a human submits), so a following Switch step can route on expiration. Use null for no expiration. Example: 48.; notificationHours (number, required): Optional number of hours after which a reminder email is sent to the assignee if the task is still pending (sent at most once). Only applies when assignedTo is an email address. Use null for no reminder. Example: 24.; headerImage (string, required): Optional Data Files path to an image (PNG, JPEG, GIF, WebP, or SVG, up to 1 MB) embedded in the notification email header in place of the "Dooap Studio" wordmark. Only applies when assignedTo is an email address. Use null for the default text header. Example: branding/logo.png. |
| Delete_Asset_Coding_Lines | Dooap | General | Delete one or more asset coding lines. Provide either a single coding line ID in the route path, or a list of coding line IDs in the request body, or both. | invoiceId (string, required); codingLineId (string, required); codingLineIds (array, required) |
| Delete_Data_Table_Rows | Context | General | Deletes one or more rows from a tenant Data Table by row id. tableId accepts the Data Table ID or its exact name. rowIds must be an array of row UUID strings. | tableId (string, required): Data Table ID (GUID) or exact Data Table name containing rows to delete.; rowIds (array<string>, required): Row UUIDs to delete. |
| Delete_Files | Context | General | Deletes Data Files and folders. | paths (array<string>, optional); folders (array<string>, optional) |
| Delete_Invoice_Metadata | Dooap | General | Remove a specific metadata key-value pair from an invoice. | invoiceid (string, required); key (string, required) |
| Delete_Invoice_Misc_Charges | Dooap | General | Delete one or more miscellaneous charges from an invoice by providing their ids | invoiceid (string, required); miscChargeIds (array<string>, required) |
| Delete_Matched_PO_Lines_From_Invoice | Dooap | General | Deletes one or more matched purchase order lines from an invoice. Purchase order line numbers are provided as a comma-separated list in the route. | invoiceId (string, required); purchaseOrderLineNumbers (string, required) |
| Delete_Product_Receipt | Dooap | General | Deletes matched product receipt lines from an invoice purchase order line. The endpoint uses path parameters for invoiceId and purchaseOrderLineNumber. Optional filtering is provided in the DELETE request body. If no request body is provided, all matched product receipt lines are removed. If productReceiptId is provided in the request body, all matched lines for that product receipt are removed. If both productReceiptId and productReceiptLineId are provided in the request body, only that single matched product receipt line is removed. The purchase order line remains on the invoice even when no matched product receipt lines remain. | invoiceId (string, required); purchaseOrderLineNumber (integer, required); productReceiptId (integer, required): Optional request body field. Filters deletion to one product receipt. If omitted, all matched product receipt lines on the purchase order line are removed.; productReceiptLineId (integer, required): Optional request body field. Requires productReceiptId. Filters deletion to one specific product receipt line. |
| Download_Invoice_Attachment | Dooap | General | Downloads an invoice attachment by invoice id and file name. | invoiceId (string, required); fileName (string, required) |
| Extract_Embedded_Files | Context | General | Extracts the files embedded in a PDF, XML or ZIP file in the run context into runtime files that later steps can use. PDF: embedded files and attachments, including the invoice XML (factur-x.xml) of a Factur-X / ZUGFeRD e-invoice. XML: base64 attachments of XRechnung / Peppol e-invoices in UBL (EmbeddedDocumentBinaryObject) or CII (AttachmentBinaryObject) syntax, typically the invoice PDF. ZIP: the files in the archive. Resolve the source via runtimeFile (or aliases contentFile/file); defaults to the most recently added PDF, XML or ZIP file. The result names the e-invoice parts the same way whether a PDF or an XML arrived: invoiceData (the invoice XML), invoiceImage (the invoice PDF) and attachments (the other files), each with a runtimeFile reference; for an ordinary file isEInvoice is false and these parts are null or empty, which is not an error, so a Filter or Switch step can route e-invoices and other documents differently. When the invoice XML carries base64 attachments, invoiceDataWithoutAttachments is a copy with the payloads removed: give that copy, not the original, to an Agent step that maps the invoice. eInvoice reports the standard (XRechnung, Factur-X/ZUGFeRD, Peppol BIS Billing), syntax (UBL or CII), invoice number and profile. Set maxDepth to 2 or 3 to open nested containers, for example a ZUGFeRD PDF inside a ZIP archive. Extracted files are added to the run context, so 'latest' points at the last extracted file afterwards; pass the returned runtimeFile objects (for example invoiceImage.runtimeFile) to later steps instead. | runtimeFile (string, optional): Runtime file reference to the source PDF, XML or ZIP file. Accepts a runtime file object, latest, runtimeFile:<id>, or file:<id>. Defaults to the most recently added PDF, XML or ZIP file in the run context.; contentFile (string, optional): Alias for runtimeFile.; file (string, optional): Alias for runtimeFile.; maxDepth (integer, optional): How many container levels to open. 1 (default) extracts the files directly inside the source; 2 also opens extracted PDF, XML and ZIP files, for example a ZUGFeRD PDF inside a ZIP archive.; createXmlWithoutAttachments (boolean, optional): When an XML file carries base64 attachments, also create a copy with the payloads replaced by comments (returned as invoiceDataWithoutAttachments for the invoice XML), so a language model can map the invoice without reading the encoded files. Defaults to true. |
| Extract_PDF_Pages | Context | General | Creates a smaller PDF runtime file from selected pages of a PDF in the run context (for example the first 10 pages of a 150-page document). Resolve the source via runtimeFile (or aliases contentFile/file); defaults to the most recently added PDF. Pages use OCR-style selection like '1-10', '1,2,3', or '1,4-8'; the keyword 'last' selects the document's last page (for example '1-3,last'); pages beyond the end of the document are skipped without an error. A following step can read the result via the Read_Context_File input with file 'latest'. | runtimeFile (string, optional): Runtime file reference to the source PDF. Accepts a runtime file object, latest, runtimeFile:<id>, or file:<id>. Defaults to the most recently added PDF in the run context.; contentFile (string, optional): Alias for runtimeFile.; file (string, optional): Alias for runtimeFile.; pages (string, optional): Pages to extract using 1-based page numbers, e.g. '1-10', '1,2,3', or '1,4-8'. The keyword 'last' selects the document's last page, e.g. '1-3,last'. Defaults to '1-10'.; range (string, optional): Alias for pages.; fileName (string, optional): Output PDF file name. The .pdf extension is added if omitted. Defaults to the source file name with a -pages-<selection> suffix. |
| Get_Asset_Coding_Lines_Of_An_Invoice | Dooap | General | Get asset coding lines of an invoice by invoice id | invoiceId (string, required) |
| Get_A_Contract_By_Contract_Id | Dooap | General | Returns a single contract of the contracts module with its header data, the name of its workflow preset and the comments added to it. Requires the contracts module or invoice preview permission and access to the company of the contract. A contract in a company the user has no access to is reported as not found. | contractId (string, required) |
| Get_Gateway_Email_Attachment | Context | General | Loads an attachment of an email received through a Gateway Mailbox into the run as a runtime file, so OCR steps, agents, and file tools can use it. In runs started by the Email Received trigger the email defaults to the triggering one (whose attachments are already available as run input files); provide inboundEmailId to load attachments of a different received email. When the email has several file attachments, provide attachmentName (images embedded in the email body, such as signature logos, are listed with isInline true and are skipped when exactly one file attachment exists). A following step can read the result via the Read_Context_File input with file 'latest'. | inboundEmailId (string, optional): Id of the received email (GUID). Defaults to the email that triggered this run (triggerPayload.inboundEmailId) when started by the Email Received trigger.; emailId (string, optional): Alias for inboundEmailId.; attachmentName (string, optional): File name of the attachment to load (case-insensitive). Required when the email has more than one attachment; the error message lists the available names.; fileName (string, optional): Alias for attachmentName. |
| Get_Invoice_Additional_Header_Information | Dooap | General | Retrieve all additional header information key-value pairs for an invoice by invoice id | invoiceid (string, required) |
| Get_Invoice_Attachments | Dooap | General | Returns attachment metadata for an invoice, including attachment id, file name, content type, and download URL. | invoiceId (string, required) |
| Get_Invoice_Contracts | Dooap | General | Returns the contracts currently matched to the invoice, the same list the "Contracts" section of the invoice shows in the user interface. Anyone who can view the invoice may read its contracts; contract module permissions are not required. Use the contract matching endpoint to change the list. | invoiceId (string, required) |
| Get_Invoice_Details | Dooap | General | Get a single invoice by InvoiceId | invoiceId (string, required) |
| Get_Invoice_History | Dooap | General | Get all history log entries of an invoice by invoice id | invoiceId (string, required) |
| Get_Invoice_Ledger_Coding_Lines | Dooap | General | Get ledger coding lines of an invoice by invoice id | invoiceid (string, required) |
| Get_Invoice_Metadata | Dooap | General | Retrieve all metadata key-value pairs for an invoice by invoice id | invoiceid (string, required) |
| Get_Invoice_Misc_Charges | Dooap | General | Get all miscellaneous charges of an invoice by invoice id. | invoiceid (string, required) |
| Get_Invoice_Project_Coding_Lines | Dooap | General | Get project coding lines of an invoice by invoice id | invoiceId (string, required) |
| Get_Invoice_Purchase_Order_Accounting_Distributions | Dooap | General | Retrieves purchase order accounting distributions associated with an invoice. Results can be filtered by purchase order number using the purchaseOrderNumber query parameter. Tax accounting distribution lines are excluded to match purchase order line response behavior. | invoiceId (string, required); purchaseOrderNumber (string, required) |
| Get_Invoice_Purchase_Order_Lines | Dooap | General | Retrieves all purchase order lines associated with an invoice, along with purchase order totals. This includes matched quantities, pricing, tax information, and accounting distributions for each line. | invoiceid (string, required) |
| Get_invoice_source_xml | Dooap | General | Get invoice source XML from Dooap | invoice_id (string, required): Invoice id (GUID) |
| Get_Invoice_Validation | Dooap | General | Runs invoice validation for the specified invoice and returns flat lists of validation errors and warnings. | invoiceId (string, required) |
| Get_Invoice_Workflow | Dooap | General | Retrieves the current invoice workflow, split details, and preset context when the workflow is based on a preset. | invoiceId (string, required) |
| Get_Misc_Charge_Codes | Dooap | General | Retrieves a list of misc charge codes for the specified company. Required Parameters: - Company code (only misc charge codes belonging to that company are returned) Response: Returns all misc charge codes configured for the company, including: - Misc charge code identifier - Module type (e.g., PO, Invoice) - Description - Tax item group | company (string, required) |
| Get_Purchase_Agreements | Dooap | General | Returns the identifier of the purchase agreement currently matched to the invoice and the purchase agreements that can be matched to it: the same list the purchase agreement selection dialog shows in the user interface, i.e. the effective agreements of the invoice company and vendor that have not expired at the posting date of the invoice. Purchase agreements are imported from the ERP; use the purchase agreement matching endpoint to match one of them to the invoice. Matching requires purchase agreement matching to be enabled for the tenant. | invoiceId (string, required) |
| Get_Query_Result_Facets | Dooap | General | Returns facets for query | amount (array, required); date (array, required); facets (array, required); invoiceIds (array, required); pageNumber (integer, required); searchString (string, required); sortBy (array, required); targetedSearchField (string, required) |
| Get_Sales_Tax_Groups_And_Their_Item_Sales_Tax_Groups_For_A_Company | Dooap | General | Retrieves the sales tax groups of the specified company. Each sales tax group carries its code and name together with the item sales tax groups (code and sales tax name) available for it. Required parameters: - company: company code (only sales tax groups belonging to that company are returned) Optional parameters: - salesTaxGroup: sales tax group code. When given, only that sales tax group and its item sales tax groups are returned. The match is case-insensitive. An unknown company or sales tax group code results in an empty salesTaxGroups list. | company (string, required); salesTaxGroup (string, required) |
| Get_Similar_Invoices | Dooap | General | Get a list of similar invoices based on vector similarity. Company and vendor are derived from the source invoice, and only invoices with status Transferred or Paid are considered. Returns top K similar invoice IDs with similarity scores. Date filters use CreatedDate (yyyyMMdd) metadata. TopK defaults to 5, values above 100 are capped to 100, and values less than or equal to 0 return an empty result set. | invoiceId (string, required); topK (integer, required); startDate (string, required); endDate (string, required) |
| Get_The_PDF_Image_Of_An_Invoice | Dooap | General | Get the PDf image of an invoice by invoice id | invoiceId (string, required) |
| Get_The_Raw_OCR_Data_Of_An_Invoice | Dooap | General | Get the raw OCR data of an invoice by invoice id | invoiceId (string, required) |
| Get_Vendor | Dooap | General | Retrieves a single vendor by its unique identifier | vendorId (string, required) |
| Import_Pdf_Invoice | Dooap | General | Imports one PDF invoice synchronously using multipart/form-data with the file in the 'file' field and returns the created invoice id. | body (object, required) |
| Insert_Data_Table_Rows | Context | General | Inserts rows into a tenant Data Table. tableId accepts the Data Table ID or its exact name. Each rows item is a flat object whose keys are column names from the table schema. Do not wrap fields in a data object. Example: { tableId: 'Companies', rows: [{ company_name: 'Acme', amount: 100 }] }. | tableId (string, required): Data Table ID (GUID) or exact Data Table name to insert rows into.; rows (array<object>, required): Rows to insert. Each item must be a flat column-name to value object matching the Data Table schema. Do not wrap fields in a data object. |
| List_Workflow_Previous_Users | Dooap | General | Lists the users and user groups that handled the invoice before the active step of the acting user, the same list the return to user dialog offers in the user interface. The latest handler is marked as the default. Use the return to user endpoint to return the invoice to one of them. The list is resolved for the user given in UserId, impersonated by the API user, or for the API user itself when UserId is omitted. | invoiceId (string, required); userId (string, required) |
| Load_Skill | Context | General | Loads a specific AI skill by its context key or ID. Returns the skill content including instructions. | contextKey (string, optional): The context key of the skill to load.; skillId (string, optional): The ID of the skill to load (alternative to contextKey).; includeFrontmatter (boolean, optional): Whether to include YAML frontmatter. Default is true. |
| Match_A_Purchase_Agreement_To_An_Invoice | Dooap | General | Matches the given purchase agreement to the invoice the same way the purchase agreement selection dialog does in the user interface. The agreement is resolved within the company of the invoice and must belong to the vendor of the invoice; otherwise the request fails with 400 and nothing is changed. Matching replaces the previously matched agreement, if any, and creates one matching line per line of the agreement: a quantity-committed line is pre-matched with the quantity remaining on the agreement after the other invoices in Dooap, and a volume-committed line starts with zero quantity and price for the handler to fill in. The invoice type is changed to the purchase order based invoice type of the company when it is not one already. The accounting distributions of the lines are created from the dimensions of the agreement lines. An invoice can have either purchase orders or a purchase agreement matched, not both: an invoice with purchase orders is rejected with 400, and while an agreement is matched the purchase order matching and line fetching endpoints reject the invoice. Remove the agreement with the delete endpoint first. Requires purchase agreement matching to be enabled for the tenant. A read-only, paid or in-transfer invoice returns 409. Use the purchase order lines endpoints to read and edit the matched lines afterwards; agreement lines carry isPurchaseAgreementLine, an empty purchaseOrderNumber and the agreement line record id as purchaseOrderLineNumber. | invoiceId (string, required); purchaseAgreementId (string, required) |
| Match_Invoice_Contracts | Dooap | General | Matches the given contracts to the invoice the same way the contract selection dialog does in the user interface. Contracts are given by number and/or id and are resolved within the company of the invoice; a contract that is not found there fails the whole request with 400. The given set replaces the current matching: contracts already matched but not in the request are removed, and an empty request removes every contract from the invoice. Read the current set with the invoice contracts endpoint first when adding or removing a single contract. Matching copies the header values of the last added contract (by contract number) onto the invoice, assigns the workflow preset of that contract when it has one, recreates the coding lines from the contract lines and recalculates the available amounts of the contracts. A contract that is not active or whose validity does not cover the invoice date is rejected with 400 and nothing is changed. When the invoice type does not support contracts, the invoice type is changed to the contract invoice type of the company (SetContractInvoiceType, default true); set it to false to reject such invoices instead. Requires the contracts module to be enabled for the tenant. A read-only, paid or in-transfer invoice returns 409. | invoiceId (string, required); contractIds (array<string>, required); contractNumbers (array<string>, required); setContractInvoiceType (boolean, required) |
| Post_Archive_Invoices | Dooap | General | Archives a batch of invoices. | comment (string, required); invoiceIds (array<string>, required) |
| Post_Coding_Prediction | Dooap | General | Triggers the machine learning coding prediction for an invoice and assigns the coding lines from the best prediction when its score exceeds the tenant's configured minimum score for automatic assignment. Intended to be called after the invoice's vendor has been set or changed, for example by Studio. The prediction is only assigned when all of the following hold: - Coding prediction and automatic assignment are enabled in the tenant settings - Coding prediction is enabled for the invoice's company - Prediction assignment is allowed for the invoice's workflow state - The best prediction's score exceeds the tenant's minimum score setting When a prediction is assigned, the invoice's existing ledger coding lines are replaced with the predicted ones. The response indicates whether a prediction was assigned, the score of the best prediction (when available), and whether the invoice's workflow changed. The Result field explains the outcome: - PredictionAssigned: the best prediction was assigned to the invoice - AutomaticCodingPredictionNotEnabled: automatic coding prediction is not enabled in the tenant settings - NoPredictionsFound: no predictions were available for the invoice - PredictionScoreBelowMinimum: the best prediction's score did not exceed the tenant's minimum score | invoiceId (string, required) |
| Post_comment | Dooap | General | Post new comment to an invoice by invoice id | invoiceId (string, required); comment (string, required) |
| Post_Custom_Validations | Dooap | General | Replaces the custom validation messages previously sent by the same studio action for the invoice. An empty message list clears them. The messages are shown to Dooap users in the workflow phases each message targets, until acknowledged. Each message's severity is one of Warning or Error. phases is a list of the workflow phases the message targets, each sent as a separate string value (not a combined value): AccountsPayable, Review, Approve or TransferToPayment. | invoiceId (string, required); messages (array<object>, required) |
| Post_Fetch_Purchase_Order_Lines | Dooap | General | Fetches the purchase order lines from the ERP onto the invoice and rebuilds the matching lines, the same way the "Fetch lines" action does in the user interface. With an empty request body the purchase orders currently attached to the invoice and the product receipts currently matched to it are used, so the endpoint refreshes the invoice from the ERP without changing what is attached. Give PurchaseOrderNumbers and/or ProductReceiptIds to fetch a different set; use the invoice matching endpoint instead when the goal is to attach or detach purchase orders. The existing matching lines are always rebuilt: matching lines that are not locked are recreated from fresh ERP data, and a locked three-way matching line is kept only when its product receipt is in the used set and is not cancelled. Because MatchFullyMatchedProductReceipts defaults to false, fully matched product receipts are omitted from the ERP fetch and their matching lines are not recreated. Fetching also refreshes the misc charges, the tax distribution and the invoice header values taken from the purchase order (cash discount, due date, terms of payment, method of payment), and it resolves the assignees of "fetch from PO" workflow steps. If the vendor's default invoice type is non-PO, fetching is skipped: the endpoint returns 200 with MatchingSucceeded=false and an explanatory ErrorMessage, and the invoice type is not changed. A read-only, paid or in-transfer invoice returns 409. | invoiceId (string, optional); lastSelectedPurchaseOrderNumber (string, optional); matchAllQuantities (boolean, optional); matchFullyMatchedProductReceipts (boolean, optional); productReceiptIds (array<integer>, optional); purchaseOrderNumbers (array<string>, optional); setWaitingForPrStatus (boolean, optional) |
| Post_Import_EInvoice | Dooap | General | Imports one invoice synchronously using multipart/form-data with the PDF file in the 'pdf' field and the invoice data as a string in the 'data' text field. The invoice data string is either TEAPPS XML or JSON following the Dooap invoice import schema (all fields optional); JSON is mapped to TEAPPS XML before import. A negative totalAmount denotes a credit note. Returns the created invoice id. When coding from XML is enabled for the company or vendor, every line with a grossAmount becomes a coding line; the line's accountReference (dimension values separated by ';', main account first) and project fields set the coding dimensions. The invoiceTypeCode, workflowPreset, customField1-3 and line itemSalesTaxGroup values are written to the invoice XML and take effect only where the tenant is configured to read them from XML: an invoice type of the company with a matching XML segment value (HEADER/INVOICE_TYPE), the WORKFLOW_FROM_XML additional header field reading INVOICE_RECIPIENT/CUSTOMER_INFORMATION/CONTACT_INFORMATION/CONTACT_PERSON with workflow from XML enabled, custom field XML paths FREE_TEXT1-3 under HEADER, and the coding line XML path DEFAULT_ROW_POSTING/ITEM_SALES_TAX_GROUP for the item sales tax code. A non-empty securityClass imports the invoice as security classified. The vendor vendorAccount (PAYEE/CUSTOMER_INFORMATION/CUSTOMER_ID) and the receiver vatNumber and address fields (RECEIVER/CUSTOMER_INFORMATION/VAT_NUMBER and ADDRESS) take part in vendor and company recognition exactly like the corresponding TEAPPS XML elements. Invoice data JSON with all supported fields: json { "invoiceNumber": "INV-2026-001", "invoiceDate": "2026-07-15", "dueDate": "2026-08-14", "currencyCode": "EUR", "totalAmount": 124.00, "netAmount": 100.00, "vatAmount": 24.00, "referenceNumber": "RF18539007547034", "contractNumber": "CONTRACT-42", "purchaseOrderNumbers": ["PO-1", "PO-2"], "sender": "invoices@testvendor.example", "invoiceTypeCode": "INVOICE", "workflowPreset": "Default workflow", "securityClass": "3", "customField1": "Cost center memo", "customField2": "Department 42", "customField3": "Internal reference", "vendor": { "name": "Test Vendor Oy", "vendorAccount": "VEND-1", "organizationNumber": "0112305-3", "vatNumber": "FI01123053", "address": "Aleksis Kiven katu 9", "postalCode": "00020", "city": "Helsinki", "countryCode": "FI", "iban": "FI4515593000000114", "bankAccountNumber": "155930-114", "swift": "NDEAFIHH" }, "receiver": { "name": "Dooap Inc", "organizationNumber": "1625174-4", "vatNumber": "FI16251744", "address": "Keilaranta 1", "postalCode": "02150", "city": "Espoo", "countryCode": "FI", "eInvoiceAddress": "003716251744" }, "lines": [ { "itemId": "SKU-1", "description": "Test item", "quantity": 2, "unit": "pcs", "unitPrice": 50.00, "netAmount": 100.00, "grossAmount": 124.00, "vatRate": 24, "vatAmount": 24.00, "text": "Row free text", "accountReference": "60155;002;BusinessUnit", "interCompany": "USMF", "project": "PRJ-1", "projectActivityNumber": "ACT-1", "projectCategory": "CAT-1", "itemSalesTaxGroup": "ALL" } ], "vatSummary": [ { "rate": 24, "baseAmount": 100.00, "vatAmount": 24.00 } ] } Minimal invoice data — every field is optional and missing values fall back to import defaults: json { "invoiceNumber": "INV-MIN-1", "invoiceDate": "2026-01-02", "currencyCode": "USD", "totalAmount": 10, "vendor": { "name": "Minimal Vendor" } } | data (string, required): Invoice data as a string: TEAPPS XML or JSON following the Dooap invoice import schema.; body (object, required) |
| Post_Invoice_Attachment | Dooap | General | Uploads one attachment to an invoice using multipart/form-data with the file in the 'file' field. | invoiceId (string, required); body (object, required) |
| Post_Invoice_Misc_Charge | Dooap | General | Creates new miscellaneous charges when miscChargeId is missing or empty, and updates existing charges when miscChargeId is provided. The request fails if any non-empty miscChargeId does not belong to the invoice. | invoiceId (string, required); miscCharges (array<object>, required) |
| Post_Invoice_Query_By_Additional_Header_Information | Dooap | General | Returns invoices that have an additional header information entry matching the given key and value, ordered by created timestamp (newest first). By default a case-insensitive partial (contains) match is used; set exactMatch to true for an exact value match. Results are limited to the caller's accessible companies and, by default, to invoice statuses 5 (Transferred) and 7 (Paid). Page size defaults to 5 and is capped at 50. | key (string, required); value (string, required); exactMatch (boolean, required); pageSize (integer, required); pageNumber (integer, required); statuses (array, required) |
| Post_Ledger_Coding_Lines_Batch | Dooap | General | Deletes and upserts ledger coding lines for one invoice in a single atomic request. Delete targets are handled first and can be identified by codingLineId or orderByIndex. Upserts are then matched by codingLineId first or orderByIndex second; when no existing line matches, a new line is created. Use codingString to send dimension values in account structure order, for example 600120;;008. Empty codingString segments are skipped, so they do not clear existing dimensions. Delete targets that do not match an existing line are ignored. On success the endpoint returns an empty 200 OK response. | invoiceId (string, required); upserts (array<object>, required); deleteCodingLineIds (array<object>, required) |
| Post_Project_Coding_Lines_Batch | Dooap | General | Deletes and upserts project coding lines for one invoice in a single atomic request. Delete targets are handled first and can be identified by codingLineId, orderByIndex, or both. Upserts are then matched by codingLineId first and orderByIndex second; when no existing line matches, a new line is created. Use codingString to send dimension values in account structure order, for example 600120;;008. Empty codingString segments are skipped, so they do not clear existing dimensions. Delete targets that do not match an existing line are ignored. On success the endpoint returns an empty 200 OK response. | invoiceId (string, required); upserts (array<object>, required); deleteCodingLineIds (array<object>, required) |
| Post_Query_Csv_Export | Dooap | General | Returns 200 OK with CSV file, or 204 No Content if no results | amount (array<object>, required); date (array<object>, required); facets (array<object>, required); invoiceIds (array, required); pageNumber (integer, required); searchString (string, required); sortBy (array<object>, required); targetedSearchField (string, required) |
| Post_Start_Invoice_Workflow | Dooap | General | POST /api/v1/documents/invoices/{invoiceId}/workflow/start | invoiceId (string, required); comment (string, required) |
| Put_Invoice_Status | Dooap | General | Updates the invoice status. For example "status": "WaitingForPr" | invoiceId (string, required); status (string, required) |
| Query_Companies | Dooap | General | Retrieves a list of companies with optional filtering capabilities: - Filter by company code (partial match) - Search by company name or code - Include or exclude disabled companies (excludes disabled by default) All text filters are case-insensitive and support partial matching. | searchText (string, required); includeDisabled (boolean, required) |
| Query_Contracts | Dooap | General | Queries the contracts of a company the same way the contract selection dialog of an invoice does in the user interface. By default only active contracts whose end date is today or later are returned. Set IncludeExpired to also get inactive contracts and contracts that have already ended. Give the vendor account of the invoice to get the contracts of that vendor together with the contracts that are not restricted to any vendor; set IncludeContractsWithoutVendor to false to leave the latter out. Company, VendorAccount and ContractNumber match values starting with the given text. Requires the contracts module or invoice preview permission and access to the company. | company (string, required); vendorAccount (string, required); includeContractsWithoutVendor (boolean, required); contractNumber (string, required); includeExpired (boolean, required); skip (integer, required); take (integer, required) |
| Query_Invoices | Dooap | General | Returns all found invoices with given query criteria and additional metadata. For searching with invoice number, voucher number, journal number, purchase order (PO) number field targetedSearchField should be called. Searching for Vendor name, Vendor number, Invoice type, Company use facets with same name. | amount (array<object>, required); date (array<object>, required); facets (array<object>, required); invoiceIds (array, required); pageNumber (integer, required); searchString (string, required); sortBy (array<object>, required); targetedSearchField (string, required) |
| Query_Invoice_Projects | Dooap | General | Retrieves projects from the same company as the invoice. The optional searchText parameter performs a case-insensitive partial match against project id, project name, and project manager. Pagination is controlled with skip and take. Take defaults to 50 and cannot exceed 100. | invoiceId (string, required); searchText (string, required); skip (integer, required); take (integer, required) |
| Query_Open_Purchase_Orders | Dooap | General | Query open purchase orders based on company and vendor account. Returns purchase orders with status 'Received', 'Open order', or 'Backorder'. | company (string, required); vendorAccount (string, required); purchaseOrderNumber (string, required); deliveryDateFrom (string, required); deliveryDateTo (string, required); skip (integer, required); take (integer, required) |
| Query_Product_Receipts | Dooap | General | Query product receipts (packing slips) based on company and vendor account. Optionally filters by purchase order and includes/excludes cancelled receipts. | company (string, required); vendorAccount (string, required); purchaseOrderNumber (string, required); productReceiptName (string, required); deliveryDateFrom (string, required); deliveryDateTo (string, required); includeCancelled (boolean, required); skip (integer, required); take (integer, required) |
| Query_Users | Dooap | General | Retrieves users either by exact id or by weighted active name and email search. | userId (string, required); searchText (string, required); take (integer, required) |
| Query_User_Groups | Dooap | General | Retrieves active user groups by exact name or company, or a single user group by id. | userGroupId (string, required); userGroupName (string, required); companyCode (string, required) |
| Query_Vendors | Dooap | General | Retrieves a paginated list of vendors with intelligent search capabilities: Required Parameters: - Company code (only vendors for that company are returned) Search Algorithm: The searchText parameter uses a sophisticated weighted scoring system that searches across: 1. Vendor Account Number (highest priority for exact/partial matches) 2. Vendor Name (high priority for exact/partial matches) 3. Address fields (if enabled): Street, City, State, ZipCode Search Behavior: - Results are ranked by relevance score (exact matches first, then partial matches) - Case-sensitive matching - Empty searchText returns all vendors (ordered by account number) - Address search may be disabled based on tenant settings Pagination: - Default: 50 items per page - Maximum: 1000 items per page - Response includes pageNumber, pageSize, and totalCount | company (string, required): Company code, for example USDE; searchText (string, required) |
| Query_Workflow_Presets | Dooap | General | Retrieves workflow presets for the current tenant, optionally filtered by company code. | companyCode (string, optional) |
| Raise_Error | Context | General | Deliberately fails the current action run with a clear, specific error message. Use this when the step determines the run cannot continue (for example, required data is missing or a validation rule fails). The provided message becomes the action run error message, is included in failure notification emails, and is passed to error actions as in other failures. | message (string, required): The error message to fail the run with. Be specific and actionable; this text is shown as the action run error and passed to error actions and failure notifications. |
| Read_Context_File | Context | General | Returns the content of a file in the run context in a form the model can read, so an Agent step can analyze a file it downloaded with a tool (for example an Excel attachment returned by a download tool) or received from an earlier step. Resolve the file via runtimeFile (or aliases file/contentFile): the runtimeFile object returned by a download tool, latest, runtimeFile:<id> or file:<id>; defaults to the most recently added file in the run. Excel workbooks (.xlsx/.xlsm/.xltx) return the rows of one sheet as JSON (sheetName, hasHeaders, maxRows, like Read_Excel_Sheet). Word documents (.docx) return their text with headings, lists and tables. PDF files with a text layer return Markdown; pages selects the pages to read, for example 1-3,last. HTML returns its visible text; CSV, JSON, XML, Markdown, YAML and plain-text files return their text as is. Long text is cut at maxCharacters (default 200000) with isTruncated true. Images, scanned PDFs, ZIP archives and other binary formats are not an error: readable is false and reason explains it. To let the model see an image or a scanned PDF, give the file to a following OCR step, or to an Agent step through a Read_Context_File input, which attaches images and PDF pages as images. | runtimeFile (string, optional): Runtime file reference to the file to read. Accepts a runtime file object (for example the runtimeFile returned by a download tool), latest, runtimeFile:<id>, or file:<id>. Defaults to the most recently added file in the run context.; file (string, optional): Alias for runtimeFile.; contentFile (string, optional): Alias for runtimeFile.; sheetName (string, optional): Excel only: the sheet to read. Defaults to the first sheet.; hasHeaders (boolean, optional): Excel only: whether the first row holds column headers. When true (default), rows are objects keyed by header; when false, rows are arrays of cell values.; maxRows (integer, optional): Excel only: maximum number of data rows to return. Defaults to 1000; isTruncated is true when more rows exist.; pages (string, optional): PDF only: pages to read using 1-based page numbers, for example 1-3, 1,4-8 or 1-3,last. Defaults to all pages.; maxCharacters (integer, optional): Maximum number of characters of text to return for Word, PDF, HTML and text files. Defaults to 200000; isTruncated is true when the content was cut. |
| Read_Excel_Sheet | Context | General | Reads a single sheet of an .xlsx/.xlsm/.xltx workbook and returns its rows as inline JSON in the tool result. Resolve the workbook via runtimeFile (or aliases contentFile/file). Use maxRows to bound returned rows; the response sets isTruncated when more rows exist. | runtimeFile (string, optional): Runtime file reference to the source workbook. Accepts a runtime file object, latest, runtimeFile:<id>, or file:<id>.; contentFile (string, optional): Alias for runtimeFile.; file (string, optional): Alias for runtimeFile.; sheetName (string, optional): Sheet name to read. Defaults to the first sheet when omitted.; hasHeaders (boolean, optional): Whether the first row contains column headers. When true, rows are returned as objects keyed by unique header names; when false, rows are returned as arrays of cell values.; maxRows (integer, optional): Maximum number of data rows to return. Defaults to 1000. The response sets isTruncated=true when more rows exist. |
| Read_File | Context | General | Reads a tenant Data File by path. | path (string, required): Data File path. |
| Read_Partial_File | Context | General | Reads selected line range from a text Data File. | path (string, required); startLine (integer, required); endLine (integer, required) |
| Remove_The_Purchase_Agreement_From_An_Invoice | Dooap | General | Removes the purchase agreement matched to the invoice together with its matching lines and their accounting distributions, the same way clearing the selected purchase agreement does in the user interface. The invoice type is not changed. Succeeds without changes when no agreement is matched. Remove the agreement before matching purchase orders to the invoice: an invoice can have either purchase orders or a purchase agreement matched, not both. A read-only, paid or in-transfer invoice returns 409. | invoiceId (string, required) |
| Render_Document_To_PDF | Context | General | Renders an HTML or Markdown document to a PDF runtime file. Use table-based HTML and CSS2.1-compatible styling; remote images and external resources are disabled by default. The returned runtimeFile can be passed to file-aware tools such as Write_Blob. | html (string, optional): HTML document or fragment to render. Supports HTML4/CSS2.1-style layouts; use table-based invoice templates instead of flexbox or grid. Inline tags <strong>, <b>, <em>, <i>, <u>, and <br> are honored; mixed inline styles render on a single visual line and do not split mid-line. Table column widths can be set with <colgroup><col style="width: ..."></colgroup> or first-row th/td width styles/attributes; otherwise columns auto-fit to content.; markdown (string, optional): Markdown document to convert to HTML before rendering. Raw HTML embedded in Markdown is disabled.; htmlRuntimeFile (object, optional): RuntimeFileReference for a UTF-8 text file containing HTML.; markdownRuntimeFile (object, optional): RuntimeFileReference for a UTF-8 text file containing Markdown.; css (string, optional): Optional CSS to inject into the document. Supported properties: font-size (px, pt, em, rem, %), font-weight, font-style, font-family, color, text-align, word-break, overflow-wrap, and table column width (%, px, pt, mm, cm, in) on col/th/td elements. Table cells auto word-break to keep wide content inside the cell.; fileName (string, optional): Output PDF file name. The .pdf extension is added if omitted.; pageSize (string, optional): Output PDF page size. Square sizes (A5 Square 148×148mm, A4 Square 210×210mm, A3 Square 297×297mm) ignore orientation.; orientation (string, optional): Output PDF orientation.; fontFamily (string, optional): PDF font family. Times New Roman and Serif are aliases for STIX Two Text. Arial, Helvetica, and Sans Serif are aliases for Source Sans Pro.; margin (object, optional): Page margins in millimeters. |
| Respond_To_Api_Request | Context | General | Composes the HTTP response for the API Endpoint request that started this run: status code, headers, and a JSON, text, or binary (base64) body. Only available in runs started by the API Request trigger through an API Endpoint gateway — manual runs, tool tests, and actions started via Trigger Action have no pending HTTP response. The response is sent to the caller when the run finishes; without this tool the endpoint returns 200 OK with the run id. When the endpoint declares a response body schema (available to the run as the apiResponseBodySchema input parameter), successful (2xx) JSON bodies must conform to it: a non-conforming body fails this call with the violations and the expected schema so you can correct the body and call again. Non-2xx and binary responses are not validated. | statusCode (integer, optional): HTTP status code between 100 and 599. Defaults to 200.; contentType (string, optional): Content-Type of the response body. Defaults to application/json for text bodies and application/octet-stream for base64 bodies.; body (string, optional): Response body. JSON or plain text when bodyEncoding is 'text'; base64-encoded bytes when bodyEncoding is 'base64'. Empty when omitted.; bodyEncoding (string, optional): How body is encoded. Use 'base64' for binary responses such as PDFs or images. Defaults to 'text'.; headers (object, optional): Optional additional response headers. Content-Length, Content-Type and hop-by-hop headers are ignored; set contentType instead. |
| Return_An_Invoice_To_AP | Dooap | General | Returns the invoice to the AP step of its workflow the same way the return to AP action does in the user interface: the whole workflow is reset, the comment is added to the invoice, a history entry is written and the AP handlers are notified. The return acts as the user given in UserId, impersonated by the API user, or as the API user itself when UserId is omitted. The acting user must have AP access, hold an active step of the invoice workflow, or have transfer to payment access when the invoice waits for transfer; otherwise the request is rejected with 400. A read-only, paid or in-transfer invoice returns 409. | invoiceId (string, required); comment (string, required); userId (string, required) |
| Return_An_Invoice_To_The_Previous_Workflow_Step | Dooap | General | Returns the invoice to the step before the active step of the acting user the same way the return to previous action does in the user interface: the previous step and the steps after it are reopened, skipped escalation steps are dropped, the comment is added to the invoice, a history entry is written and the reopened handlers are notified. When the previous step is the AP step, the whole workflow is reset. The return acts as the user given in UserId, impersonated by the API user, or as the API user itself when UserId is omitted. The acting user must have AP access, hold an active step of the invoice workflow, or have transfer to payment access when the invoice waits for transfer; otherwise the request is rejected with 400. An invoice whose workflow has no step before the active one, such as an invoice still in AP, is rejected with 400 and nothing is changed. A read-only, paid or in-transfer invoice returns 409. | invoiceId (string, required); comment (string, required); userId (string, required) |
| Return_Workflow_To_Previous_Handler | Dooap | General | Returns the invoice to the latest handled step of the given user or user group the same way the return to user action does in the user interface: that step and the steps after it are reopened, skipped escalation steps are dropped, the comment is added to the invoice, a history entry is written and the reopened handlers are notified. When the target step is the AP step, the whole workflow is reset. The users and user groups the invoice can be returned to are listed by the return users endpoint. A target that has not handled the invoice is rejected with 400 and nothing is changed. The return acts as the user given in UserId, impersonated by the API user, or as the API user itself when UserId is omitted. The acting user must have AP access, hold an active step of the invoice workflow, or have transfer to payment access when the invoice waits for transfer; otherwise the request is rejected with 400. A read-only, paid or in-transfer invoice returns 409. | invoiceId (string, required); comment (string, required); userId (string, required); targetUserGroupId (string, required); targetUserId (string, required) |
| Review_Invoice | Dooap | General | Add review for invoice. | invoiceId (string, required): Invoice ID in GUID format; comment (string, required); userId (string, required): User ID in GUID format; workflowStepId (string, required): Workflow step ID in GUID format |
| Search_Data_Table | Context | General | Searches a tenant Data Table with structured filters and paging. tableId accepts the Data Table ID or its exact name. Filters use { column, operator, value } where value matches the column type. orderBy is { column, descending }. Returns one page of at most 100 rows. top defaults to 50 and is clamped to 1-100; larger values do not return more rows. A page may contain fewer rows than requested. To retrieve all matching rows, repeat the same search with the returned continuationToken until it is empty. | tableId (string, required): Data Table ID (GUID) or exact Data Table name to search.; filters (array<object>, optional): Optional filters. Each item is { column, operator, value }; value should match the Data Table column type.; orderBy (object, optional): Optional sort object, for example { column: 'createdUtc', descending: true }.; top (integer, optional): Maximum rows per page, 1-100 (default 50). Values above 100 are clamped to 100. A page may contain fewer rows; use continuationToken to retrieve remaining results.; continuationToken (string, optional): Continuation token from the previous result. Repeat the same search with this token until the returned token is empty to retrieve all matching rows. |
| Search_Files | Context | General | Searches text Data Files with a simple grep-style pattern. | folder (string, optional); pattern (string, required); recursive (boolean, optional); top (integer, optional) |
| Search_Skills | Context | General | Searches for AI skills by query, name, description, or tags. Returns a list of matching skills with their context keys. | query (string, required): Search query for skill name, description, or content.; tags (string, required): Comma-separated tags to filter by.; maxResults (integer, required): Maximum number of results to return. Default is 10. |
| Send_Gateway_Email | Context | General | Sends an email from a tenant Gateway Mailbox via Mailgun. The mailbox must be enabled and have 'Allow sending' turned on in Gateways > Mailboxes. In runs started by the Email Received trigger the sending mailbox defaults to the mailbox that received the triggering email, so replies need no mailbox parameter. Attachments reference runtime files already present in the run (e.g. loaded by Get_Gateway_Email_Attachment or produced by earlier steps). | mailbox (string, optional): Gateway mailbox to send from: full address (e.g. invoices-k7m2q9@mail-devtest.dooap.net), mailbox id (GUID), or exact mailbox name. Defaults to the mailbox that received the triggering email (triggerPayload.recipient) in runs started by the Email Received trigger.; to (string, required): Recipient email address or comma/semicolon-separated addresses.; cc (string, optional): Optional CC email address or comma/semicolon-separated addresses.; bcc (string, optional): Optional BCC email address or comma/semicolon-separated addresses.; subject (string, required): Email subject.; body (string, required): Email body.; bodyContentType (string, optional): Whether body is plain text or HTML.; attachments (array, optional): Optional attachments as runtime file references. Shortcut strings: "latest" selects the most recent runtime file; "runtimeFile:<fileId>" or "file:<fileId>" selects a specific one. Object form {"runtimeFile":"latest"} may include "fileName" and "contentType" overrides. Total message size must stay under 25 MB. |
| Start_Auto_AP_for_invoice | Dooap | General | Triggers Auto AP processing for a specific invoice. | invoiceId (string, required) |
| Transfer_Invoices | Dooap | General | Creates an outbound transfer batch for invoices and sends the batch to payment. When autoPost is supplied, the value is applied before transfer validation. When autoPost is omitted, the current invoice value from the database is used. | invoices (array<object>, required) |
| Update_Asset_Coding_Line | Dooap | General | Update an existing asset coding line. Only the provided fields are updated (NULL values are ignored), including fixed asset number, transaction type, amounts, tax groups, transaction text, and intercompany. | invoiceId (string, required); codingLineId (string, required); fixedAssetNumber (string, required); transactionType (string, required); salesTaxGroup (string, required); itemSalesTaxGroup (string, required); amount (number, required); netAmount (number, required); taxAmount (number, required); transactionText (string, required); interCompany (string, required) |
| Update_Conversation_History | 0 | General | Saves conversation history to storage after step execution. The context key identifies the unique conversation (e.g., channel ID, user ID, session ID). | None |
| Update_Data_Table_Rows | Context | General | Updates existing rows in a tenant Data Table. tableId accepts the Data Table ID or its exact name. Each rows item must be { id: '<row uuid>', data: { '<columnName>': <value> } }. Only include changed columns in data. | tableId (string, required): Data Table ID (GUID) or exact Data Table name containing rows to update.; rows (array<object>, required): Rows to update. Each item must contain id and a data object with flat changed column values. |
| Update_Invoice_Additional_Header_Information | Dooap | General | Update or add additional header information for an invoice. Supports both single key-value pair and multiple key-value pairs. | invoiceId (string, required); key (string, required); value (string, required); additionalHeaderInformation (object, required) |
| Update_Invoice_Company | Dooap | General | Update the company code on an invoice. This may trigger workflow changes and duplicate detection. | invoiceId (string, required); companyCode (string, required) |
| Update_invoice_header | Dooap | General | Update one or more header values on an invoice. Null values are ignored, empty strings or any content will update the corresponding header. | invoiceId (string, required); headers (object, required) |
| Update_Invoice_Match | Dooap | General | Matches the specified purchase orders and product receipts to an invoice. This operation creates associations between the invoice and the provided purchase orders/product receipts, enabling the system to track which purchase orders and product receipts are linked to the invoice for matching and verification purposes. | invoiceid (string, required); purchaseOrderNumbers (array<string>, required); productReceiptIds (array<integer>, required); lastSelectedPurchaseOrderNumber (string, required); isReset (boolean, required); matchAllQuantities (boolean, required); matchFullyMatchedProductReceipts (boolean, required) |
| Update_Invoice_Metadata | Dooap | General | Update or add metadata for an invoice. Supports both single key-value pair and multiple key-value pairs. | invoiceid (string, required); key (string, required); value (string, required); metadata (object, required) |
| Update_Invoice_Priority | Dooap | General | Mark or unmark an invoice as priority. | invoiceId (string, required); isPriority (boolean, required) |
| Update_Invoice_Type | Dooap | General | Changes invoice type for the selected invoice. Provide either InvoiceTypeId, or both Company and InvoiceTypeName. Do not provide both identifier forms in the same request. | invoiceId (string, required); company (string, required): Required when using invoiceTypeName; null when using invoiceTypeId; invoiceTypeId (string, required): Invoice type GUID; null when using company + invoiceTypeName; invoiceTypeName (string, required): Required when using company; null when using invoiceTypeId |
| Update_Invoice_Vendor | Dooap | General | Update the vendor account on an invoice. This may trigger workflow changes, duplicate detection, and coding line updates. | invoiceId (string, required); vendorAccount (string, required) |
| Update_Invoice_Workflow_from_Skeleton | Dooap | General | Replaces the editable upcoming part of an invoice workflow using a workflow skeleton. The skeleton is a comma-separated list of workflow steps. Each step must contain 8 slash-separated values in this order: UserId/UserGroupId/StepType/FetchFromOrderer/FetchFromRequester/OptionalAmount/SplitId/Order. StepType must be one of: 0 = AP, 1 = Review, 2 = Approve. Use 00000000-0000-0000-0000-000000000000 when a user or user group is not set. FetchFromOrderer and FetchFromRequester must be 0 or 1. | invoiceId (string, required); skeleton (string, required) |
| Update_Invoice_Workflow_Preset | Dooap | General | Assign a workflow preset to an invoice by preset id or preset name. | invoiceId (string, required); presetId (string, required); presetName (string, required) |
| Update_Item_Sales_Tax_Group | Dooap | General | Updates the item sales tax group for a specific purchase order line on an invoice. This operation recalculates the tax amounts and returns updated totals for the purchase order. | invoiceId (string, required); purchaseOrderLineNumber (integer, required); value (string, required); transactionId (integer, required) |
| Update_Matched_Unit_Price | Dooap | General | Updates the matched unit price for a specific purchase order line on an invoice. This operation sets the unit price matching value and returns updated totals for the purchase order. Only used for matching price adjustments. Always set quantity to 1 (placeholder) as this will not affect the invoice line quantity. | invoiceId (string, required); purchaseOrderLineNumber (integer, required); matchedQuantity (number, required); matchedQuantityFromSuggestion (boolean, required); matchedUnitPrice (number, required); matchedUnitPriceFromSuggestion (boolean, required); transactionId (integer, required) |
| Update_MatchingLines_Batch | Dooap | General | Updates matched quantity, matched unit price, sales tax group, item sales tax group, and sales tax amount for one or more purchase order lines on an invoice. Omitted or null values are left unchanged. The endpoint is fail-fast and stops at the first invalid or failing line update. | invoiceId (string, required); lines (array<object>, required) |
| Update_Metadata | Context | General | Adds custom metadata fields to the action run for later searching. Pass field-value pairs as parameters. For example: {"invoiceNumber": "INV-001", "vendorId": "V123"} | None |
| Update_Sales_Tax_Amount | Dooap | General | Updates the sales tax amount for a specific purchase order line on an invoice. This operation sets the tax amount to the specified value and returns updated totals for the purchase order. | invoiceId (string, required); purchaseOrderLineNumber (integer, required); value (string, required); transactionId (integer, required) |
| Write_Excel_Sheet | Context | General | Creates a new single-sheet .xlsx runtime file from CSV input. Provide either csvContent (string) or csvRuntimeFile (runtime file reference). The returned runtimeFile can be passed to file-aware tools such as Write_File or Write_Blob. | csvContent (string, optional): Inline CSV content to write. Use this for small CSVs known at call time.; csvRuntimeFile (string, optional): Runtime file reference to a UTF-8 CSV file to import. Accepts a runtime file object, latest, runtimeFile:<id>, or file:<id>. Aliases: csvFile, runtimeFile, contentFile, file.; csvFile (string, optional): Alias for csvRuntimeFile.; runtimeFile (string, optional): Alias for csvRuntimeFile.; contentFile (string, optional): Alias for csvRuntimeFile.; file (string, optional): Alias for csvRuntimeFile.; sheetName (string, optional): Sheet name for the new workbook. Defaults to Sheet1. Truncated to 31 characters and stripped of : \ / ? * [ ] characters.; delimiter (string, optional): CSV delimiter of the input. Defaults to a comma. Use \t, tab, or TAB for tab-delimited input.; hasHeaders (boolean, optional): Whether the first CSV row contains column headers. Headers are written to the first sheet row when true.; outputFileName (string, optional): Output workbook file name. The .xlsx extension is added if omitted. Defaults to workbook.xlsx. |
| Write_File | Context | General | Writes text, base64 content, or a runtime file to a tenant Data File. | path (string, required): Destination Data File path inside the tenant Data Files container, for example reports/output.pdf. Required even when writing a runtime file.; content (string, optional): UTF-8 text content to write. This may also be a runtime file shortcut such as latest or runtimeFile:<id>.; contentBase64 (string, optional): Base64-encoded binary content to write. Use this for binary files when you are not passing runtimeFile.; runtimeFile (string, optional): Runtime file reference to write, such as latest, runtimeFile:<id>, file:<id>, or a runtime file object returned by a previous input or tool.; contentFile (string, optional): Alias for runtimeFile. Use when a previous step returned the file as a contentFile value.; file (string, optional): Alias for runtimeFile. Use when a previous step returned the file as a file value.; contentType (string, optional): MIME type to store on the Data File. Defaults to the runtime file content type, or is guessed from path when omitted.; overwrite (boolean, optional): Whether to overwrite an existing Data File at path. |
| Delete_Blob | Integration | Storage Account | Deletes a blob from an Azure Blob Storage container, for example to remove a processed trigger blob after Write_Blob has archived it to another storage account. When it deletes the blob that started the run, it deletes only the version the trigger detected. | blobName (string, optional): Optional name of the blob to delete. Defaults to triggerPayload.blobName.; storageAccountName (string, optional): Optional storage account override. Defaults to triggerPayload.storageAccountName, then the Storage Account name configured on the app.; containerName (string, optional): Optional container override. Defaults to triggerPayload.containerName.; etag (string, optional): Optional ETag of the blob version to delete, such as the etag returned by Read_Blob. A blob that has changed since is not deleted. Defaults to triggerPayload.etag when deleting the blob that started the run. Use * to delete whichever version is current. |
| Move_Blob | Integration | Storage Account | Moves or renames a blob within the same Azure Blob Storage container, for example to archive a processed trigger blob. | destinationBlobName (string, required): Destination blob name inside the same container, for example archive/{{input.triggerPayload.fileName}}.; sourceBlobName (string, optional): Optional source blob name. Defaults to triggerPayload.blobName.; storageAccountName (string, optional): Optional storage account override. Defaults to triggerPayload.storageAccountName, then the Storage Account name configured on the app.; containerName (string, optional): Optional container override. Defaults to triggerPayload.containerName.; overwrite (boolean, optional): Whether to overwrite an existing destination blob. |
| Move_File_Share_File | Integration | Storage Account | Moves or renames a file within the same Azure Files file share, for example to archive a processed trigger file. | destinationFilePath (string, required): Destination path inside the same file share, for example archive/{{input.triggerPayload.fileName}}.; sourceFilePath (string, optional): Optional source file path. Defaults to triggerPayload.filePath.; storageAccountName (string, optional): Optional storage account override. Defaults to triggerPayload.storageAccountName, then the Storage Account name configured on the app.; fileShareName (string, optional): Optional file share override. Defaults to triggerPayload.fileShareName.; overwrite (boolean, optional): Whether to overwrite an existing destination file. |
| Write_Blob | Integration | Storage Account | Writes text or binary content to an Azure Blob Storage container, for example to create an output blob from a workflow. | storageAccountName (string, optional): Optional storage account override. Defaults to triggerPayload.storageAccountName when available, then the Storage Account name configured on the app.; containerName (string, optional): Optional container override. Defaults to triggerPayload.containerName when available.; folder (string, optional): Optional virtual folder path inside the container.; fileName (string, optional): Name of the blob to create or replace.; blobName (string, optional): Optional full blob name inside the container. Use instead of folder plus fileName.; contentType (string, optional): MIME type to store on the blob, for example text/plain, application/json, or application/pdf.; content (string, optional): Text content to write as UTF-8.; contentBase64 (string, optional): Base64-encoded binary content. Use this for non-text blobs.; runtimeFile (string, optional): Runtime file reference to write, such as latest, runtimeFile:<id>, or a runtime file object from a previous input/tool result.; overwrite (boolean, optional): Whether to overwrite an existing blob. |
| Write_File_Share_File | Integration | Storage Account | Writes text or binary content to an Azure Files file share, for example to create an output file from a workflow. | storageAccountName (string, optional): Optional storage account override. Defaults to triggerPayload.storageAccountName when available, then the Storage Account name configured on the app.; fileShareName (string, optional): Optional file share override. Defaults to triggerPayload.fileShareName when available.; folder (string, optional): Optional folder path inside the file share. Intermediate directories are created automatically.; fileName (string, optional): Name of the file to create or replace.; filePath (string, optional): Optional full path inside the file share. Use instead of folder plus fileName.; contentType (string, optional): MIME type to store on the file, for example text/plain, application/json, or application/pdf.; content (string, optional): Text content to write as UTF-8.; contentBase64 (string, optional): Base64-encoded binary content. Use this for non-text files.; runtimeFile (string, optional): Runtime file reference to write, such as latest, runtimeFile:<id>, or a runtime file object from a previous input/tool result.; overwrite (boolean, optional): Whether to overwrite an existing file. |