How AMN Healthcare is taking an ROI-first approach to AI agents and agentic automation
Find answers to your queries and learn more about our products
Granola
Unify IntegrationsUse the Granola connector to capture and summarize meeting notes with AI. Integrating your application with Granola lets you use these operations in an automation. It exposes 3 actions, listed below. Add the connector from the Connections area, authenticate, then select its operations in the automation builder. Capabilities: actions, knowledge (RAG). Authentication Before you begin, make sure you have the following information: Connection Name: Choose a meaningful name for your connection. This name helps you identify the connection within your application or integration settings. Authentication Type: The authentication method for this connector is defined in the connection setup. Select the connector in the Connections area to see the fields it requires. Actions Action Name Description Get note Retrieves a single Granola meeting note by ID. List folders Lists accessible folders in Granola with pagination. List notes Lists accessible meeting notes in Granola. Overview The Granola API provides programmatic access to your workspace's meeting notes and related data through a RESTful interface, enabling integration with existing tools and custom workflows. API Key Access Scopes API keys support two access scopes: Scope Access Personal notes Notes you own, notes directly shared with you, notes in private folders shared with you Public notes Notes visible to everyone in the workspace, notes in the Team space Obtaining an API Key Open the Granola desktop app Navigate to Settings → Connectors → API keys Click Create new key Select the note access scopes for the key Click Generate API Key On Enterprise plans, workspace admins must enable API key access scopes in Settings → Workspace → General → API access for members . Revoking an API Key Go to Settings → Connectors → API keys Find the key and click Revoke Confirm in the dialog Once revoked, the key is permanently disabled and cannot be restored. Updating an API Key Go to Settings → Connectors → API keys Find the key and click Edit Select the desired note access scopes Click Save changes Quick Start List notes created in the past week: curl "https://public-api.granola.ai/v1/notes?created_after=$(date -u -v-7d +%Y-%m-%dT%H:%M:%SZ)" \ -H "Authorization: Bearer grn_YOUR_API_KEY" Retrieve a specific note with its transcript: curl "https://public-api.granola.ai/v1/notes/not_1d3tmYTlCICgjy?include=transcript" \ -H "Authorization: Bearer grn_YOUR_API_KEY" Transcript Format macOS transcripts include speaker.source as either "microphone" or "speaker". iOS transcripts return speaker.source = "microphone" with optional diarization_label values (Speaker A/B/etc). The API only returns notes with generated AI summaries and transcripts. Processing notes return 404. Rate Limits Metric Limit Burst capacity 25 requests in 5 seconds Sustained rate 5 requests/second (300/minute) Exceeding limits returns a 429 Too Many Requests response.
Chargebee
Unify IntegrationsUse the Chargebee connector to manage subscriptions and recurring billing. Integrating your application with Chargebee lets you use these operations in an automation. It exposes 11 actions, listed below. Add the connector from the Connections area, authenticate, then select its operations in the automation builder. Capabilities: actions. Authentication Before you begin, make sure you have the following information: Connection Name: Choose a meaningful name for your connection. This name helps you identify the connection within your application or integration settings. Authentication Type: The authentication method for this connector is defined in the connection setup. Select the connector in the Connections area to see the fields it requires. Obtaining Your API Key Login into your Chargebee account. Navigate to Settings, then click Configure Chargebee. Click on API Keys and Events, then open the API Keys tab. Click Add API Key. Select a key type (Full-Access Key for general use, or Read-Only Key if you only need read access) and give it a name. Click Create Key to generate the key. Copy the generated API key and store it securely for further authentication purposes. Actions Action Name Description Assign a payment role Assigns a payment role to a payment source in Chargebee Cancel subscription Cancels the specified subscription in Chargebee Create a customer Creates a new customer in Chargebee Download invoice PDF Downloads invoice as a PDF in Chargebee Get hierarchy for a customer Retrieves the full or partial account hierarchy for a customer in Chargebee Get subscriptions Returns a list of all subscriptions in Chargebee Link a customer Links a customer to an account hierarchy in Chargebee Retrieves a list of customers Retrieves a list of all customers in Chargebee Retrieves the credit card Retrieves the credit card for a customer id in Chargebee Unlink a customer Unlinks a customer from its parent account in Chargebee Update a customer Updates the customer resource in Chargebee
Media new
Unify AutomationsThe Excel node's media operation lets you embed an image into a specific location on a spreadsheet sheet — useful for inserting logos, charts exported as images, QR codes, or other visual assets into automated reports before they are stored or distributed. Overview Insert image into Excel sheet takes an image — supplied either as Base64 text or as a file object — and places it on a named sheet of an Excel workbook. You control where the image is anchored (after the last row, after the last column, or at a specific cell) and how it is sized (its original size, a scale factor, or a span across a number of columns and rows). The image is embedded in the workbook file itself, so it travels with the file when it is stored or sent. This operation works on XLSX or XLS files; use the Format Conversion operations to convert a workbook into one of those formats beforehand if needed. Operations Operation Description Key inputs Insert image into Excel sheet Embeds an image (provided as Base64 text or a file object) into a sheet of an Excel workbook. The image is anchored using the chosen Anchor Mode and sized using the chosen Sizing Mode. File, File Type, Sheet name, Image Input Type, Image Mimetype, Anchor Mode, Sizing Mode Input Field Type Required Description File File reference Yes The Excel workbook into which the image will be embedded. Must be in XLSX or XLS format (set via File Type). File Type Enum Yes Type/extension of the Excel file: XLSX or XLS. Defaults to XLSX. Sheet name String No Name of the sheet to insert the image into. If left empty, the first sheet is used. If the named sheet is not found, a new sheet with that name is created. Image Input Type Enum Yes How the image is provided: Base64 (a Base64-encoded string) or File Object (a UnifyApps file object). Defaults to Base64 . Base64 Image String Yes — when Image Input Type is Base64 The Base64-encoded image to embed. Input File File reference Yes — when Image Input Type is File Object UnifyApps file object containing the image to embed. Image Mimetype Enum Yes Mimetype of the image: PNG or JPEG. Defaults to PNG. Anchor Mode Enum Yes Where to place the image: After last row (column A, in the row right after the last row with data), After last column (row 1, in the column right after the last column with data), or Specific cell (uses the Anchor Row and Anchor Column you provide). Defaults to After last row . Anchor Row Integer Yes — when Anchor Mode is Specific cell Row index (0-based) for the top-left corner of the image. Anchor Column String Yes — when Anchor Mode is Specific cell Column letter for the top-left corner of the image (e.g. A, B, AA). Sizing Mode Enum Yes Original size keeps the native image size, Scale factor applies a multiplier (Scale Factor), and Span N x M cells fits the image inside a number of columns and rows (Span Columns, Span Rows). Defaults to Original size . Scale Factor Number Yes — when Sizing Mode is Scale factor Multiplier applied to the original image size (1.0 = 100%). Span Columns Integer Yes — when Sizing Mode is Span N x M cells Number of columns the image should span. Span Rows Integer Yes — when Sizing Mode is Span N x M cells Number of rows the image should span. Replace existing image at anchor Boolean No If enabled, removes any image already anchored at the same cell before inserting the new one. Only effective for XLSX; XLS files keep existing pictures regardless of this setting. Defaults to true (enabled). Output Returns a single Success boolean confirming whether the image was inserted — the action does not return a new file object. Notes Image insertion requires the workbook to be in XLSX or XLS format (set via File Type). If the source file is XLSB, use Convert Excel file format to convert it to XLSX or XLS before inserting the image. The image is anchored according to the chosen Anchor Mode — after the last row, after the last column, or at a specific cell (set via Anchor Row and Anchor Column). If rows or columns above or t
Razorpay
Unify IntegrationsIntegrating your application with Razorpay enables seamless online payment processing by supporting multiple payment methods such as cards, UPI, and net banking within a single platform. Razorpay helps automate payment collection, manage transactions, and ensure secure and reliable payment experiences, allowing businesses to streamline their financial operations efficiently. Authentication: Connecting your application with Razorpay enables smooth payment collection, real-time transaction tracking, and automated billing processes across multiple payment channels. Before you begin, ensure you have the following information: Connection Name : Choose a meaningful name for your connection. This name helps you identify the connection within your application or integration settings. It could be something descriptive like "MyAppRazorpayIntegration". Basic Based : Log in to your Dashboard using your credentials. Go to Account & Settings. Open API Keys under Website and App Settings. Click on Generate Key to create an API key. Copy the generated key ID, key secret and use it for further authentication purposes. Actions: Action Name Description Create a standard payment link Creates a standard payment link in Razorpay Create order Creates a new order in Razorpay Create payout links using contact details Creates a payout link using contact details in Razorpay Fetch all settlements Fetches all settlements from your Razorpay account Fetch settlement Fetches settlement reconciliation details in Razorpay Get order by ID Fetches the details of a specific order by its ID in Razorpay Get payout link status Gets the status of a payout link in Razorpay Initiate refund Initiates a refund for an order in Razorpay List all orders Lists all orders in Razorpay List payments of order Fetches all payments of an order from Razorpay Update order Updates the notes of an existing order in Razorpay Triggers : Trigger Name Description On payment Triggers when a payment is successfully made in Razorpay
Grafana
Unify IntegrationsUse the Grafana connector to visualize metrics and operational data. Integrating your application with Grafana lets you use these operations in an automation. It exposes 6 actions, listed below. Add the connector from the Connections area, authenticate, then select its operations in the automation builder. Capabilities: actions. Authentication Before you begin, make sure you have the following information: Connection Name: Choose a meaningful name for your connection. This name helps you identify the connection within your application or integration settings. Authentication Type: The authentication method for this connector is defined in the connection setup. Select the connector in the Connections area to see the fields it requires. Obtaining Your Service Account Token Log in to your Grafana instance and click Administration in the left-hand menu. Go to Users and access , then select Service accounts . Click Add service account . Enter a display name and click Create . Open the service account you just created, then click Add service account token . Enter a name for the token and click Generate token . Copy the generated token and store it securely — Grafana will not show it again. Actions Action Name Description Delete datasource Deletes a datasource in Grafana Delete folder Deletes a folder using UID in Grafana Get cache configuration of data source Gets cache configuration of a data source in Grafana List folders Lists folders in Grafana Update cache for data source Updates cache for a data source in Grafana Update folder Updates a folder using UID in Grafana
Automation Anywhere
Unify IntegrationsUse the Automation Anywhere connector to automate repetitive business processes. Integrating your application with Automation Anywhere lets you use these operations in an automation. It exposes 8 actions, listed below. Add the connector from the Connections area, authenticate, then select its operations in the automation builder. Capabilities: actions. Authentication Before you begin, make sure you have the following information: Connection Name: Choose a meaningful name for your connection. This name helps you identify the connection within your application or integration settings. Authentication Type: Automation Anywhere supports Credentials authentication. Obtaining Your API Key Log in to your Automation Anywhere Control Room. Make sure your user role has the Generate API-Key permission. If it doesn't, have an Admin open Administration , then Roles , enable Generate API-Key under the API section for your role, and assign it to your user. Click your username in the bottom-left corner of the Control Room, then select My Settings . Click Generate API-Key in the top-right corner of the page. If a key already exists, confirm the regeneration prompt. This invalidates the previous key and any integrations using it. Copy the generated API key and store it securely. You'll use it together with your Control Room username to authenticate. Authentication & setup Automation Anywhere provides multiple authentication methods for accessing Control Room APIs, including username/API key and JWT token-based authentication. Username and API Key Authentication The recommended approach for programmatic API requests. Step 1: Get Your Credentials Username: Your Automation Anywhere account username API Key: A 40-character string (available in your account settings) Important: Escape backslashes in the API key by replacing \ with \\ Step 2: Use the Credentials Include your username and API key in your API requests. Avoid using passwords in plain-text format to improve security. Token-Based Authentication Authentication API is used to generate, validate, and manage JSON Web Tokens (JWT) that are required for authorization in all Enterprise Control Room APIs. Refresh Tokens A refresh token allows you to get a new token without needing to collect and authenticate credentials every time a token expires. OAuth Services All API calls must contain either: An authentication token from the Authentication API (generates JWT), or A bearer token from OAuth services Actions Action Name Description Add or update a queue member Adds or updates a queue member in Automation Anywhere Add role as a queue consumer Adds role as a queue consumer in Automation Anywhere Add role as a queue participant Adds role as a queue participant in Automation Anywhere Create a work item model Creates a work item model for processing in a queue in Automation Anywhere Deploy bot Deploys attended or unattended or headless automations in Automation Anywhere Get queue Retrieves a specific queue by ID in Automation Anywhere Get work item model Retrieves a specific work item model by ID in Automation Anywhere Start bot migration Migrates bots (TaskBots and MetaBots) created using the Enterprise Client version 10 and 11 to Automation 360 in Automation Anywhere About the API Automation Anywhere provides the following API categories: Authentication API: Generate and manage JWT tokens Device API: Manage devices and bots Control Room APIs: Enterprise automation and orchestration Cloud Control Room APIs: Cloud-based automation management API Task Real-Time Endpoint: Real-time task execution These APIs enable programmatic automation, bot management, monitoring, and integration with external systems. Official documentation https://docs.automationanywhere.com/bundle/enterprise-v2019/page/auth-api-supported.html
Google OIDC Configuration
Governance1. Configure Identity Provider in UnifyApps Follow the steps below to establish a Single Sign-On (SSO) connection using OpenID between UnifyApps and Google Cloud Platform STEP 1 · Open Identity Provider Settings Navigate to your specific environment in UnifyApps and go to: Platform Tools → Security → Identity Providers . STEP 2 · Select OpenID & Copy Callback URL Select OpenID from the Identity Provider dropdown menu. Locate the Callback URL generated and copy it to your clipboard. STEP 3 · Configure the Scope and Attribute Mapping Add the required authentication scopes to specify the level of data access granted to UnifyApps. Next, fill out the Default Attribute Mapping to properly pair Azure user claims with UnifyApps user profiles. Scopes - Scopes Select Scope 1 openid Scope 2 profile Scope 3 email Default Attribute Mapping - Field Value Username JSON Path /email Email JSON Path /email 2. Generate Credentials in Google Cloud STEP 4 · Navigate to APIs & Services Log into the Google Cloud Console , select your organization's project, and navigate to the navigation menu: APIs & Services → Credentials . STEP 5 · Create OAuth 2.0 Credentials If you haven't already configured your OAuth consent screen, complete that step first. Then, click Create Credentials at the top of the page and select OAuth client ID . Set the Application type to Web application . STEP 6 · Configure Authorized Redirect URIs Scroll down to the Authorized redirect URIs section. Click Add URI and paste the Callback URL . Click Save . Sample Redirect URL : https://orbit.uat.unifyapps.com/auth/sso/OPEN_ID/complete-login 3. Complete Setup in UnifyApps STEP 7 · Link Credentials to UnifyApps A dialog box will appear in Google Cloud displaying your newly created Client ID and Client Secret . Copy the Client Secret value. STEP 8 · Save and Finalize Return to your open UnifyApps Identity Provider setup page. Paste the copied value directly into the Client Secret Key field, fill out any remaining standard Google OpenID endpoints, and save your configurations.
Clone Record - New
Unify AutomationsClone Record creates an exact copy of an existing record in a UnifyApps Storage object, assigning the copy a new system-generated ID while leaving the original unchanged. Overview The Clone Record action duplicates a record identified by its ID. All field values are copied exactly from the source record into the new record; the original record is not modified in any way. The cloned record receives a new, unique system-generated ID. Use Clone Record to duplicate a template record, carry forward a previous entry's full data set, or branch a workflow from a known good state — then apply changes to the copy with a follow-up Update Record step. Input Field Description Required Object The Storage object (table) containing the record to clone. * Record ID The ID of the record to copy. * Output The newly created record — an exact copy of the source — with its own system-generated record ID and all field values copied from the original. Use the returned ID in downstream steps to reference or modify the clone. Notes Keep the following in mind when using Clone Record. The cloned record receives a new system-generated ID; the original record's ID is preserved and unchanged. All stored field values are copied exactly from the source; no fields are excluded or transformed by default. The original record is not modified in any way by a clone operation — it remains exactly as it was. After cloning, use Update Record on the new record's ID to modify specific fields on the copy without affecting the original. Downstream steps should reference whichever record ID they need — the original or the new clone — explicitly, since both exist after the step runs. Clone Record is most useful as a two-step pattern: clone a source record to create a copy, then update the copy's specific fields. This keeps the original intact as a reference or template.
Min Value
Unify DataChoose surviving values using minimum-value logic.
Overview The Minimum Value strategy is the precise inverse of the Maximum Value rule. It is a deterministic survivorship logic designed to identify and preserve the smallest data point found among duplicate records. This strategy is particularly valuable when "less" signifies "better," "earlier," or "higher priority." By filtering out higher values, UnifyApps ensures that your Golden Record reflects the most conservative estimate, the earliest historical event, or the highest rank (lowest integer) available in your data ecosystem. The Logic: Lowest Wins When configured, the system evaluates the target field across all conflicting records within a match group. Selection Criteria: As defined in the configuration panel, the system will "Select the lowest value among duplicates". Behavior by Data Type: Numeric Data: It selects the smallest number (e.g., comparison between $150 and $120 results in $120 ). Date/Time Data: It selects the earliest chronological timestamp (e.g., determining the "First Created Date"). Configuration Options Similar to other quantitative strategies, Minimum Value is most effective when applied granularly: Primary Strategy You can assign this as the main rule for specific fields via the Custom Strategy configuration. This is ideal for fields where the lowest value represents the "truth" or the desired business state (like a queue position). Fallback Strategy It serves as an effective tie-breaker in Fallback Strategies. If a primary rule (like "Source System") fails because a high-priority source is missing data, the Minimum Value rule can ensure that a valid, conservative value is picked from the remaining sources rather than leaving the field empty.
Google SAML Configuration
GovernanceComplete guide to configure Google SAML SSO integration with UnifyApps.
This guide outlines configuring Google as a SAML 2.0 Identity Provider (IDP) for Single Sign-On (SSO) with UnifyApps. You will need administrator access to your Google organization. The configuration process involves three main stages: Step 1: Initial Configuration on UnifyApps In this section, you will start the SAML configuration process on UnifyApps and obtain the necessary URLs that Okta will require. 1. Access Identity Provider Settings: Navigate to Platform Tools . Select Security from the platform tools menu. Under the Identity Providers section, click on + New Identity Provider 2. Basic Details & Service Provider Information: Provider Name: Enter a name for this identity provider. Identity Provider: Select Google from the dropdown. Button Text: Enter "Continue with Google." Important: Note the following URLs. You will need these for Google Admin Console in Step 2. Assertion Consumer Service URL (ACS URL): This is the endpoint on UnifyApps where Google will send the SAML assertion. (Example: https://demo.uat.unifyapps.com/auth/sso/SAML/complete-login ) Service Provider Entity ID (SP Entity ID): This is the unique identifier for UnifyApps as the Service Provider. (Example: https://demo.uat.unifyapps.com/sso/saml ) 3. Prepare for Metadata & Define Attributes: For "Do you have your identity provider metadata content?", you'll select Yes and paste Google's metadata later (Step 3). Review the Default Attributes section ( emailAttributeStatement , firstNameAttributeStatement , lastNameAttributeStatement , etc.) — these are the attribute names you'll map on the Google side. Note: Keep the UnifyApps configuration page open. You'll return to it after configuring Google. Do not save changes yet. Step 2: Configuring the SAML Application in Google Admin Console 1. Create a New Custom SAML App: Log in to the Google Admin console. Navigate to Apps → Web and mobile apps → Add app → Add custom SAML app. 2. App Details: Name the app as per your requirement (e.g., "Demo App") and click Continue. 3. Google Identity Provider Details: Leave the Google IdP details as default and click Continue. 4. Service Provider Details: Paste the ACS URL and Entity ID (copied from the UnifyApps configuration in Step 1) into the corresponding fields here. Check the Signed response box. Click Continue. 5. Attribute Mapping: Map the following: emailAttributeStatement → Primary email firstNameAttributeStatement → First name lastNameAttributeStatement → Last name Click Finish. 6. Configure User Access: The service status defaults to OFF for everyone . Select ON for everyone and click Save. 7. Obtain Google Identity Provider Metadata: Click Download Metadata to save Google's SAML metadata XML file. Step 3: Finalizing Configuration in UnifyApps 1. Paste Google Metadata: Return to the UnifyApps IDP configuration page. Open the downloaded metadata file, copy its entire contents, and paste it into the Metadata Content field. 2. Enable Provisioning: Turn on JIT Provisioning and click Save. 3. Activate the IDP: Turn on the Google SAML toggle and click Save.
Salesforce
Unify IntegrationsSalesforce is a cloud-based software suite for customer relationship management
Using Salesforce streamlines managing customer relationships and sales processes. It helps track customer interactions, manage sales deals, and analyze data for better decisions.Salesforce ensures your customer data is protected with strong security. It's a tool for boosting sales efficiency and keeping customer information organized and safe. Integrating your application with Salesforce allows you to leverage Salesforce's extensive CRM capabilities. Authentication Before you begin, make sure you have the following information: Connection Name : Assign a descriptive name for this connection. This name is essential as it helps identify this specific Salesforce connection within UnifyWorkflow. Domain : This information directs your application to connect to the correct Salesforce instance. If your Salesforce instance URL is https://mycompany.my.salesforce.com , then your domain is mycompany.my.salesforce.com . Authentication Type : There are two options for authenticating the connection to your salesforce account - OAuth & JWT Token . OAuth After entering the Domain of your company, click Authorise . It will redirect you to the login page of Salesforce, from where you can login to your Salesforce account to directly authorize and connect your salesforce account in UnifyApps. Salesforce JWT Token Step 1: Create a Private Key and Digital Cert Authorizing an org with the org login jwt command requires a digital certificate and the private key used to sign the certificate. You can use your own private key and certificate issued by a certification authority. Alternatively, you can use OpenSSL to create a key and a self-signed digital certificate. Using a private key and certificate is optional when you authorize an org by logging into a browser. This process produces two files: server.key —The private key. You specify this file when you authorize an org with the org login jwt command. server.crt —The digital certificate. You upload this file when you create the required connected app. Open a terminal (macOS and Linux) or command prompt (Windows). If necessary, install OpenSSL on your computer. To check whether OpenSSL is installed on your computer, run the which command on macOS or Linux or the where command on Windows. Create a directory for storing the generated files, and change to the directory. Generate a private key, and store it in a file called server.key You can delete the server.pass.key file because you no longer need it. Generate a certificate signing request using the server.key file. Store the certificate signing request in a file called server.csr . Enter information about your company when prompted. Generate a self-signed digital certificate from the server.key and server.csr files. Store the certificate in a file called server.crt . Step 2 : Create a External Client App Salesforce CLI requires a external client app in the org that you're authorizing. A external client app is a framework that enables an external application, in this case Salesforce CLI, to integrate with Salesforce using APIs and standard protocols, such as OAuth. We provide a default external client app when you authorize an org with the org login web command . For extra security, you can create your own external client app in your org using Setup and configure it with the settings of your choice. You're required to create a connected app when authorizing the org with the org login jwt command. Log in to your org. From Setup , enter App Manager in the Quick Find box, then select App Manager . In the top-right corner, click New External Client App . Update the basic information as needed, such as the connected app name and your email address. Select Enable OAuth Settings . For the callback URL, enter http://localhost:1717/OauthRedirect . fIf port 1717 (the default) is already in use on your local machine, specify an available one instead. Then update your sfdx-project.json file by setting the oauthLocalPort property to the new port. For example, if yo
Zoho Invoice
Unify IntegrationsIntegrating your application with Zoho Invoice enables seamless invoicing, payment tracking, and customer management. It allows businesses to automate billing workflows, generate professional invoices, monitor payment statuses, and streamline financial operations efficiently. Authentication: Connecting your application with Zoho Invoice enables smooth invoice creation, real-time tracking, and automated financial workflows. Before you begin, ensure you have the following information : Connection Name: Choose a meaningful name for your connection. This helps you identify it within your application or integration settings (e.g., "MyAppZohoInvoiceIntegration"). Domain : Select your Zoho domain. Organization ID : Your Zoho Invoice organization ID. OAuth-Based Authentication: Zoho Invoice uses OAuth 2.0 for secure authentication. Go to the Zoho Developer Console. Create a new client. Choose Server-based Applications. Provide required details (Client Name, Redirect URI, etc.). After creation, note the following: Client ID Client Secret Generate a Grant Token using the authorization URL. Exchange the grant token for: Access Token Refresh Token Use the access token in API requests for authentication. Actions Action Name Descriptions Add task Add a task in Zoho Invoice Create contact Creates a contact in Zoho Invoice Create expense Create a expense in Zoho Invoice Create invoice Creates an invoice in Zoho Invoice Create project Creates a project in Zoho Invoice Delete contact Delete a contact in Zoho invoice Delete invoice Delete an invoice in Zoho invoice Delete project Delete a project in Zoho invoice Delete task Delete a task in Zoho invoice Get contact details Get the contact details in Zoho Invoice Get expense Get expenses in Zoho Invoice Get expenses in Zoho Invoice Get an invoice details in Zoho Invoice Get project details Get the project details in Zoho Invoice Get task details Get the task details in Zoho Invoice List expenses List expenses from Zoho Invoice List Invoices List invoices in Zoho Invoice Update contact Updates a contact in Zoho Invoice Update expense Update expense in Zoho Invoice Update invoice Updates an invoice in Zoho Invoice Update project Updates a project in Zoho Invoice Update task Updates a task in Zoho Invoice
Using repeatable
Unify ApplicationsDisplays dynamic lists/grids by repeating a component template for each data item. Takes an array of objects as input and creates multiple instances of the design. Essential for product catalogs, user lists, feeds. Configure data source, layout (list/grid)
The Repeatable component is a powerful tool for displaying dynamic lists or grids of data within your application. It works by taking a component or a group of components you design (a template) and repeating it for each item in a given data source. This is essential for building common UI patterns like product catalogs, user lists, task lists, comment threads, news feeds, and any other interface that needs to display a variable number of similar items. Key Properties / Configuration (Content Tab) The Content tab is where you connect your data and configure the core behavior of the Repeatable component. Data Source: This is the most important property. It requires an array of objects to function. Each object in the array will represent one instance of the repeated content on the screen. You can either bind this to a data source that returns data in the correct format (e.g., from an API call or a Unify Data Object). Or, you can manually enter a static array for prototyping, for example: {{ [{"id":"1","name":"Item 1"},{"id":"2","name":"Item 2"}] }} Primary Key: What it is: The name of a field in your data source objects that contains a unique identifier for each item (e.g., id, email, product_sku ). In the example above, id would be the primary key. Why it's needed: This allows the platform to efficiently track, update, and manage interactions for each individual item in the list, especially when items are selected or changed. Auto Select: What it is: This setting determines if an item should be automatically selected when the list first loads. Options: None : No item is selected by default. First Item : The first item from your data source is automatically selected. Last Item : The last item from your data source is automatically selected. Why it's useful: Ideal for creating master-detail layouts where selecting an item in the list displays its details in another part of the page. Auto-selecting the first item can populate the detail view on page load. Collect Child States: What it is: A toggle switch to gather information from components inside your repeated items. Why it's useful: Turn this ON if you have input components (like text fields, toggles, or dropdowns) within your repeatable template and you need to collect the values from all instances at once (e.g., submitting a form that contains a list of items with quantities). When off, the component is more performant as it doesn't track these individual states. Other Properties Add-ons: Configure additional functionalities like search or filtering for the list. Interactions: Define actions that can be triggered by events on the Repeatable component itself, such as On Row Clicked. Permissions: Standard Unify Applications feature to control the visibility of the entire component based on user roles. Binding Data to Child Components To make the Repeatable component useful, you need to display the data for each item. Any component you place inside the Repeatable (your " template ") gets access to a special currentItem object. currentItem: This object represents the data for a single item in the Data Source array for that specific instance. How to use it: You can bind the properties of currentItem to the components inside the Repeatable. For example, if your template has a Text component, you could set its value to {{currentItem.name}} to display the name of each item from your data source. Working with Selected Items A powerful feature of the Repeatable component is its ability to track which item a user has selected. This is the key to building interactive, master-detail interfaces.The component does this by exposing a special property called selectedItem. This property is an object that holds all the data for the currently selected row (e.g., {"id": "user-01", "name": "Alice"} ). When a user clicks on an item in the list, the Repeatable component triggers an On Select Item event. By navigating to the Interactions tab for your Repeatable component and adding an action to this
Screen & Chat by Unifyapps new
Unify AutomationsThe Screen and Chat nodes are the two built-in human-interaction primitives in UnifyApps Automations. Screen pauses a run to collect structured input from a person; Chat posts a message into a live chat surface. Both are lightweight ways to bring a human into a workflow — one for blocking input, one for non-blocking messaging. Overview Node Purpose Blocks the run? Screen Shows a UI form to a user and waits for their submission before the automation continues. Yes — the automation pauses until the user submits. Chat Posts a message into a chat conversation (user or topic). No — the automation continues after sending. Screen Node The Screen node is the human-in-the-loop primitive . It shows a UI screen (a form) to a specific user and the automation waits for that user to submit the form before resuming. The submitted values are available to all subsequent steps in the run. Use it for approvals, missing-detail collection, or any decision that genuinely requires a human before the workflow can proceed. Input Field Description Screen The UI screen (form) to display to the user. Defined in the app builder and referenced here by name or ID. User The user who will see and submit the form. Expected fields The form fields whose submitted values the automation will use in subsequent steps. Defines what the node's output contains. Output: The values submitted by the user for each expected field. These are available to all downstream steps in the automation run. The automation is suspended until the user submits. If the user never submits, the run remains paused. Configure a timeout or fallback path if unattended runs must eventually complete. Chat Node The Chat node posts a message into the platform's built-in chat or messaging surface — addressed to a user or a conversation topic. It is lighter-weight than the Notification node: it contributes to an ongoing conversation rather than raising a formal alert. Use Chat when you are driving or participating in a chat thread; use Notification when you need to formally alert people and optionally send them somewhere to act. Input Field Description Recipient / Conversation The user or conversation topic to post the message into. Message The text content of the message to send. Output: Confirmation that the message was posted. The automation continues immediately after sending. Choosing Between Screen, Chat, and Notification Scenario Recommended node You need a person to approve or fill in a form before the run continues. Screen You want to post a message into a live chat or assistant conversation. Chat You need to alert one or more people and optionally give them a direct action to take. Notification Notes Keep the following in mind when using the Screen and Chat nodes: The Screen node suspends the automation run until the target user submits the form. Runs waiting on a Screen node count against your concurrent-run limits during that pause. The Chat node is non-blocking: the automation moves to the next step immediately after posting the message, regardless of whether the recipient reads it. The Chat node targets the platform's built-in messaging surface. It does not post to external chat systems (for example, Slack or Teams) — use a connector node for those. The Screen node's expected fields must match the fields defined on the referenced screen; mismatches cause the node to fail at runtime. Choose Screen, Chat, or Notification based on whether you need blocking human input, a conversational message, or a formal alert with an optional action.
Encryption
Unify DataSecure your data with powerful encryption
AES ( Advanced Encryption Standard ) is a symmetric encryption algorithm widely used to secure data . It encrypts data using the same key for both encrypting and decrypting, making it essential to keep the key secret. This guide will walk you through using AES encryption and decryption transformations to protect sensitive data, such as PII (Personally Identifiable Information). AES Encryption AES encryption allows you to secure any field with a 256-bit encryption key. Steps to Apply Encryption AES Encryption Key : This is the 256-bit encryption key required to encrypt the data. Example : 6b71RouelDY2xLFfy1x0oYXq3oUDkfuc. Initialization Vector (IV) : An IV is a 128-bit value used with the encryption key to enhance security. Example : d4QaIQMb8RbOG5ai. Testing Encryption After applying the encryption transformation, test it to ensure it is working correctly. You should compare the encrypted output with expected values to verify the encryption process. Example: Encrypting a customer's social security number before storing it in a database: Input : Sample String Encrypted Output : enhTmMxQS+2o1Oi1nvnpxA== AES Decryption AES decryption uses the same symmetric algorithm to convert encrypted data back to its original form. Steps to Apply Decryption AES Decryption Key : Enter the 256-bit encryption key used for encryption. Example : 6b71RouelDY2xLFfy1x0oYXq3oUDkfuc. Initialization Vector (IV) : Provide the same 128-bit IV used during encryption. Example : d4QaIQMb8RbOG5ai. Testing Decryption After applying the decryption transformation, test it to ensure it is working correctly. You should compare the decrypted output with the original data to verify the decryption process. Example: Decrypting a customer's social security number to verify identity: Encrypted Input : enhTmMxQS+2o1Oi1nvnpxA== Decrypted Output : 123-45-6789 Best Practices Key Management : Implement a secure key management system to handle encryption keys. This may involve using key management services (KMS) provided by cloud providers. Regular Audits : Regularly audit your encryption and decryption processes to ensure they comply with security standards and best practices.
Runtime Connection Switching - New
Unify AutomationsOverview Runtime Connection Switching allows a single automation to execute against different external service connections depending on which connection is specified when the automation is called. Instead of building one automation per connection, you build one automation and route each invocation to the appropriate connection at runtime. A common use case is a multi-tenant integration: an inventory sync automation that must operate against 50 different Shopify stores, each with its own credentials, can be written once and called 50 times — each time passing a different store's connection ID — rather than duplicating the automation for every store. Requirements Runtime Connection Switching is only available on automations with a Callable trigger type. The feature cannot be enabled on automations triggered by scheduled, webhook, or event-based triggers. Setup Set a Callable trigger — Open the automation and configure the trigger as Callable. This makes the automation invocable by other automations or via the Call Another Automation node.Callable trigger selection on the automation trigger panel Choose a default connection — In the automation's connection configuration, select the connection to use when no runtime override is provided. This acts as the fallback for any invocation that does not specify an override. Enable Runtime user connections — Toggle on the "Runtime user connections" option in the automation's advanced settings. This activates the connection override capability for the automation. Configure Connection overrides — Define the mapping between override identifiers and their target connections. Each override entry maps a runtime-provided connection ID to the specific connector configuration to use.Connection overrides configuration interface Retrieving Connection IDs To pass the correct connection ID at runtime, use the Standard Entities — Get Connection Details action in a parent automation to look up the connection ID for a given store, tenant, or account. The returned connection ID can then be passed as the override value when calling the child automation. This pattern enables fully data-driven connection routing: store connection identifiers in a database or configuration record, retrieve them dynamically, and pass them to the automation — with no hardcoded connection references in the workflow logic. Example: Multi-Store Inventory Sync An e-commerce company manages inventory across 50 Shopify stores. The process: A parent automation retrieves the list of all stores and their connection IDs from a Standard Entities record. A Loop node iterates over the store list. On each iteration, Call Another Automation invokes the inventory sync automation, passing the current store's connection ID as the runtime override. The inventory sync automation executes against the specified store's Shopify connection, syncing stock levels and pricing. Note: The automation must have a Callable trigger for runtime connection switching to work. Attempting to enable it on other trigger types will have no effect.
Maven - New
Unify AutomationsThe Maven node resolves and downloads Java dependencies from a Maven repository inside an automation. Use it when a workflow needs to pull specific JAR files — for a Code node, a build pipeline, or downstream processing — without running a full build tool locally. Overview Given a set of Maven coordinates (group ID, artifact ID, version), the node resolves the full dependency tree, downloads all required JARs, and makes them available for subsequent steps. License information is included in the download output, so compliance checks can be done in the same automation. Repository Sources By default, the node resolves dependencies from Maven Central . To use a private or internal repository — a Nexus or Artifactory instance, for example — configure a Maven connection and select it in the node. The node will resolve from the private repository first, falling back to Maven Central if a dependency is not found there. Dependency Options Transitive dependencies — by default, the node downloads the full dependency tree (the artifact you specified, plus everything it depends on). To download only the directly declared artifacts without their transitive dependencies, enable the exclude-transitives option. License information — the download result includes the license metadata for each resolved artifact. Use this in a downstream step to flag or block artifacts with licenses that conflict with your project's requirements. Note: Resolving a large dependency tree can take time, especially over a slow or rate-limited registry connection. If the automation is time-sensitive, narrow the dependency set or exclude transitives where the calling code manages them directly. Output The node returns the resolved JAR files and their associated license data. Pass the JARs to a Code node or a subsequent build step that expects them on a classpath. The license output can be passed to a condition or a notification step for compliance gating. Notes Keep these practices in mind when using the Maven node: Use exact version numbers rather than version ranges — ranges can resolve to different artifacts on different runs, making the automation non-deterministic. Configure a private Maven connection before referencing internal artifacts — the node will not infer credentials from the environment. Review the license output before deploying automations in environments with strict open-source compliance requirements. Exclude transitive dependencies when the calling code manages them directly — this keeps the download set small and avoids version conflicts. Pinning versions and supplying explicit connections ensures the Maven node resolves consistently across every run.
Delay
Unify AutomationsThe Delay Node in UnifyApps enables precise workflow timing by pausing actions until a specific date or for a set duration, enhancing control and scheduling flexibility.
Overview The Delay Node in UnifyApps is designed to manage timing within automation workflows by introducing pauses at key steps. It provides precise control over scheduling with options to delay actions until a specific date and time or for a set duration between actions. Use Case Example Schedule Delay Until- Scheduled Customer Follow-Ups When a lead reaches a certain stage in a sales pipeline, the automation can use Schedule Delay Until to follow up on a specific date, ensuring timely outreach and engagement. Set Delay Duration - Staggered Marketing Campaign Launch For a marketing campaign, use Set Delay Duration in the automation to introduce timed gaps between campaign rollouts across channels, simultaneously optimising reach without overwhelming audiences. Actions in Delay Schedule Delay Until The " Schedule Delay Until " action pauses an automation sequence until a specified date and time, enabling actions to occur precisely when needed. This is ideal for time-bound tasks that require specific future scheduling. Set Delay Duration The " Set Delay Duration " action introduces a fixed interval between actions in automation, allowing for controlled pauses between sequential steps. This is beneficial when actions need gradual timing rather than instant execution. Notes The Delay Node by UnifyApps provides essential actions for managing timing within automation workflows, enabling users to introduce precise delays between tasks. To make the most of these functionalities, keep in mind the following best practices: Schedule delays thoughtfully to enhance user experience. Utilise duration settings for optimal pacing in automation. Implement error handling to maintain workflow integrity. Monitor for potential timing conflicts in complex sequences. By effectively leveraging the Delay Node, users can create more responsive and organised workflows tailored to their operational needs.
Manual Field Creation
Unify DataOverview While importing fields from external sources is efficient for bulk schema generation, Manual Field Creation offers the highest level of granular control over your data model. This method is essential when defining custom business logic, creating internal identifiers, or establishing fields that do not exist in any upstream source system. Through the New Field configuration panel, you can explicitly define every attribute of a data point, from its data type to its security properties and search behaviors. The Configuration Process To initiate this process, navigate to the Fields tab of your Entity and click the + Add Field button. The configuration is divided into two strategic sections: Basic Details This section defines the core identity and structural format of the field. Key: The unique, machine-readable identifier for the field (e.g., customer_id ). This key is used in API calls and internal references. Display Label: The human-readable name that appears in the user interface and reports (e.g., "Customer ID"). Description: An optional field to document the purpose of the data point for other developers or data stewards. Field Type: Specifies the data format. Common options include String , Integer , Date , and Boolean . Default Value: Allows you to set a static value that will be automatically populated if the incoming data record is null or missing this attribute. 2. Additional Settings These settings control how the UnifyApps platform indexes, validates, and secures the data stored in this field. Filterable: Enables this field to be used as a filter criteria in dashboards and queries (e.g., "Show all records where Status = Active"). Searchable: Indexes the field for full-text search, allowing users to find records by typing values contained within this field. Hashable: Applies a cryptographic hash to the data. This is often used for high-performance matching algorithms where exact text comparison is costly. Sortable: Allows lists and reports to be ordered in ascending or descending order based on the values in this field. Primary Key: Designates this field as the unique identifier for the record. Every Entity must have at least one Primary Key to ensure data integrity. Is Required: Enforces a validation rule that prevents records from being saved if this field is empty. Secure Field: Encrypts the data at rest. This is critical for handling Sensitive Personal Information (SPI) or Personally Identifiable Information (PII) to ensure compliance with privacy regulations.
Automation Management - New
Unify AutomationsThe Standard Entities node lets automations manage other automations and pipelines programmatically — create, deploy, and clone automations, and cancel or inspect ongoing runs. Use these operations to build "platform that manages itself" flows, automated deployment pipelines, and operational automations that act on the platform's own execution layer. Overview Automation Management in the Standard Entities node gives an automation the ability to act on the automation layer of the platform — publishing versions, duplicating configurations, and monitoring or canceling active runs. Because these operations affect production behavior directly, understanding their versioning and approval behavior is essential before use. Two distinct deployment paths exist, and choosing the wrong one can bypass governance controls. Creating, Saving, and Cloning Automations The node supports several operations for establishing and maintaining automation configurations: Create Automation — provisions a new automation, in either of two input modes: Static , where you supply just a name and description; or Dynamic , where you supply a full workflow definition object up front. Output: the new automation's ID, name, and description. Save Automation — saves an updated workflow definition onto an existing automation. Input: the automation to update and its updated workflow definition. Output: Success (boolean). Upsert Automation — creates a new automation or updates an existing one from a single workflow definition object, in one step. Output: the full saved automation object, including its ID, nodes, edges, settings, and version. Update Automation Details — updates only the name, description, or tags of an automation, without touching its underlying workflow definition. Input: the automation, a Fields to Update selection (Name, Description, Tags), and the corresponding values. Output: Success (boolean). Clone Automation — duplicates an existing automation, producing a new copy with its own independent identity. Input: the automation to clone, a name for the clone, and whether to share the clone with the same users as the original. Output: the cloned automation's ID and name. Use this to create variants, templates, or copies across environments. Create Automation, Save Automation, and Upsert Automation all end up producing or modifying a saved (undeployed) workflow definition — Create Automation is for provisioning a brand-new automation, Save Automation and Upsert Automation are for updating one that already exists. Pausing, Unpausing, and Deleting Automations Modify Automation performs a lifecycle operation on an existing automation, without touching its saved definition. Input: Select Workflow, and an Operation Type of Pause , Unpause , or Delete . Output: Success (boolean). Pause stops the automation from processing new triggers while keeping its definition and deployment intact. Unpause resumes a paused automation. Delete removes the automation from the platform. Deploying Automations The Standard Entities node offers two ways to publish an automation, with different scopes: Deploy Automation publishes the last saved version of a single automation. Input: Select Workflow. Output: the Workflow Definition ID and the new, auto-incremented Deployed Workflow Version. Deploy Entity is the more general deploy action — it can deploy any entity, including an automation, and adds options that Deploy Automation does not have: Deploy Child Entities (a boolean that also deploys entities the target depends on), a Deployment Tag , and free-text Deployment Notes to document why the deployment happened. Output: the deployed entity, including its version and deployment state (who deployed it and when). Both deploy paths share the same governance behavior: Deploying returns a new auto-incremented version number — each deploy bumps the version. There is no approval gate on either operation. The new version goes live immediately. If your deployment process requires an appr