Zoho Inventory

Automation

Automation allows you to create a set of rules for modules of Zoho Inventory based on which appropriate actions would be performed. A good example would be the case where a congratulatory e-mail is sent automatically to the team members when a Sales Order is made for over 1000 USD.

Note: When you setup webhooks and connect it to external web service providers, your contacts’ details (name, phone number, address and email address) will be shared with the URL you want to notify. For example, if you setup a webhook connecting to an SMS service provider, your contacts’ phone number will be shared with them.

Workflow Scenarios

Workflow Rules

You can automate tasks such as sending emails, updating fields, and triggering webhooks or custom functions by creating workflow rules in Zoho Inventory. The workflow rule executes automatically once the conditions are met.

Scenario: John wants to automatically send a thank-you email with discount coupons to customers after they make a purchase. For this, he sets up a workflow rule in Zoho Inventory so that whenever a customer completes their payment, the rule triggers the email alert, and an email is sent automatically, saving time and effort for John.

Create a New Workflow Rule

To create a new workflow rule:

Note: Execute the workflow when and Execute when the record is fields will only appear when the Action Type is set to Edited or Edited or Created.

Now, once you’ve created the workflow rule, whenever an action occurs that matches the trigger you set in the workflow rule, the rule will execute, and the specified action will take place.

Note: You can create up to 10 criteria for one workflow, and within each criterion, you can add up to 10 criteria.

Other Actions in Workflow Rules

Change the Order of Workflow Rules

If you want to view specific workflow rules at the top of the List View page or in a specific order, you can reorder them. Here’s how:

Edit a Workflow Rule

Clone a Workflow Rule

If you need a new workflow rule with the same details present in an existing workflow rule, you can clone the existing rule. Here’s how:

Mark a Workflow Rule As Inactive

If you won’t be using a workflow rule for a while but want to keep it for future use, you can mark it as inactive instead of deleting it. To mark it as inactive:

Configure Notification Preferences for Workflow Rules

Insight:

  • You can trigger a workflow alert up to 500 times per day.
  • Admins will also receive in-app notifications when any workflow action crosses the specified threshold.

You can set daily limits for workflow alert triggers and add email recipients to get notified when the daily threshold is reached. You can also configure how you receive failure log notifications when a workflow rule fails. To configure:

Delete a Workflow Rule

In the popup, click Yes to confirm.


Workflow Actions

Setting up a new email alert

A workflow rule consists of actions that comprises of Email Alerts, Field Updates and Webhooks that play an essential role in executing a task. To set up an email alert in Zoho Inventory, navigate to Settings > Automation and click on + New Workflow. After this, make sure you’ve selected the Email Alert tab.

Note: This feature is available only for selective pricing plans.

Accessing the Workflow page

Name your workflow

workflow name

FieldDescription
Workflow Rule NameGive a unique name for the workflow rule.
ModuleSelect the module for which you wish to create a workflow.
DescriptionGive a small description for your workflow rule.

Choose when to trigger the email

when trigger workflow

You can choose when to trigger the workflow based on the parameters you select in the following fields.

Workflow Type

There are two types of workflows:

workflow type

Event Based: If the workflow is Event Based, then the workflow is triggered when a module is:

When a module is Edited or Created or Edited, additional fields appear.

when to trigger

FieldDescription
Execute the workflow whenThere are 3 options to choose from
-When any field is updated.
-When any selected field is updated.
-When all selected field are updated.
If you select When any selected field is updated or When all selected fields are updated in the drop down, an additional box will appear where you can select any 3 fields of the module.
Just Once or Everytime?Just Once- The workflow would be executed when the criteria is met for the first time.
Everytime- The workflow would be executed everytime the criteria is met.

Date Based: If the workflow is Date Based, additional fields appear.

when trigger date based

FieldDescription
Date of ExecutionSelect the workflow to be triggered on any number of days before or after Order Date, Shipment Date or Created Time from the drop down.
date based execution
Execution TimeYou may choose the exact time of execution by selecting the corresponding hh or mm .
Execution CycleYou may choose the frequency of triggering a workflow by choosing Once, Monthly or Yearly from the drop down.
execution cycle

Advanced Filters

Clicking on Apply advanced filters allows you to set one or more conditions based on which the action will be executed.

Filter The Trigger

FieldDescription
ConditionThe filter will be triggered based on the criteria you set. You can also add multiple criteria by clicking on + Add Criteria based on which the workflow rule will be executed.
Trigger Condition
The condition for the next criteria may be AND or OR depending on whether you wish to include both or either one of the criteria. Also, you can change the criteria pattern as you want by selecting Change Criteria.
Field AttributesThe field is used to select an attribute from the list that broadly covers the terms that are related to the module.
Module List
RulesSelect the rules based on which the system should filter the trigger. If the field has alphanumeric values, the rules are,
Text Rules
If the field has only numerical values, then the rules are,
Numeric Rules
Value FieldEnter the value of the attribute for which the filter must be applied.

Editing Criteria Pattern:

You can edit the criteria pattern to suit your requirements by selecting Change Criteria. The editor allows you to define a pattern of your choice using simple AND/OR logic. For example, if you wish to trigger the workflow rule When Sales Order date is 20th July 2016 AND Reference Number is 54321 OR Status isn’t Confirmed,

Change Criteria

The pattern is ((1 AND 2) OR 3). If you feel the criteria pattern does not match your requirement, you can edit it to be (1 AND (2 OR 3)).

Change Criteria Pattern

Click Save to continue.

Note: You can have a maximum of 10 criteria for each Workflow Rule.

Setting up the Email Template

Once the rules have been set, the email alert can be set up. You can customize the alert to suit your business needs and program it to act immediately or at a particular time.

Actions

FieldDescription
Email RecipientsEnter the email address of the person who is meant to receive the email alert.
Additional RecipientsAdditional email addresses, if any, can be mentioned here.
FromThe email address from where this email is sent can be defined here.
SubjectThe subject of the email alert.

Immediate Trigger:

Immediate Trigger

If the When to Trigger option is set as Immediate, then the email alert is sent immediately after the conditions defined in the workflow are met.

Time Based Trigger: If you wish to schedule the email for a particular time, set When to Trigger option as Time Based.

Time Based Action

FieldDescription
Execution TimeEnter the desired number of Days/Hours before or after,
-Rule Trigger Date
-Order Date
-Shipment Date
-Created Time
-Modified Time

Finally, click Save to create the Email Alert workflow to implement it for the modules in Zoho Inventory.


Setting up a new Field Update

A workflow rule consists of actions that comprises of Email Alerts, Field Updates and Webhooks that play an essential role in executing a task. To set up a field update in Zoho Inventory, navigate to Settings > Automation and click on + New Workflow. After this, make sure you have selected the Field Update tab.

Note: This feature is available only for selective pricing plans.

Accessing the Workflow page

Name your workflow

workflow name

FieldDescription
Workflow Rule NameGive a unique name for the workflow rule.
ModuleSelect the module for which you wish to create a workflow.
DescriptionGive a small description for your workflow rule.

Choose when to trigger the Field Update

when trigger workflow

You can choose when to trigger the workflow based on the parameters you select in the following fields.

Workflow Type

There are two types of workflows:

workflow type

Event Based: If the workflow is Event Based, then the workflow is triggered when a module is:

When a module is Edited or Created or Edited, additional fields appear.

when to trigger

FieldDescription
Execute the workflow whenThere are 3 options to choose from
-When any field is updated.
-When any selected field is updated.
-When all selected field are updated.
If you select When any selected field is updated or When all selected fields are updated in the drop down, an additional box will appear where you can select any 3 fields of the module.
Just Once or Everytime?Just Once- The workflow would be executed when the criteria is met for the first time.
Everytime- The workflow would be executed everytime the criteria is met.

Date Based: If the workflow is Date Based, additional fields appear.

when trigger date based

FieldDescription
Date of ExecutionSelect the workflow to be triggered on any number of days before or after Order Date, Shipment Date or Created Time from the drop down.
date based execution
Execution TimeYou may choose the exact time of execution by selecting the corresponding hh or mm .
Execution CycleYou may choose the frequency of triggering a workflow by choosing Once, Monthly or Yearly from the drop down.
execution cycle

Advanced Filters

Clicking on Apply advanced filters allows you to set one or more conditions based on which the action will be executed.

Filter The Trigger

FieldDescription
ConditionThe filter will be triggered based on the criteria you set. You can also add multiple criteria by clicking on + Add Criteria based on which the workflow rule will be executed.
Trigger Condition
The condition for the next criteria may be AND or OR depending on whether you wish to include both or either one of the criteria. Also, you can change the criteria pattern as you want by selecting Change Criteria.
Field AttributesThe field is used to select an attribute from the list that broadly covers the terms that are related to the module.
Module List
RulesSelect the rules based on which the system should filter the trigger. If the field has alphanumeric values, the rules are,
Text Rules
If the field has only numerical values, then the rules are,
Numeric Rules
Value FieldEnter the value of the attribute for which the filter must be applied.

Editing Criteria Pattern:

You can edit the criteria pattern to suit your requirements by selecting Change Criteria. The editor allows you to define a pattern of your choice using simple AND/OR logic. For example, if you wish to trigger the workflow rule When Sales Order date is 20th July 2016 AND Reference Number is 54321 OR Status isn’t Confirmed,

Change Criteria

The pattern is ((1 AND 2) OR 3). If you feel the criteria pattern does not match your requirement, you can edit it to be (1 AND (2 OR 3)).

Change Criteria Pattern

Click Save to continue.

Note: You can have a maximum of 10 criteria for each Workflow Rule.

Setting up the Field Update

Once the rules have been set, the field update can be set up. You can customize the update to suit your business needs and program it to act immediately or at a particular time.

Actions

Select the field which you wish to update from the dropdown list.

Immediate Trigger:

Immediate Trigger

If the When to Trigger option is set as Immediate, then the email alert is sent immediately after the conditions defined in the workflow are met.

Time Based Trigger: If you wish to schedule the email for a particular time, set When to Trigger option as Time Based.

Time Based Action

FieldDescription
Execution TimeEnter the desired number of Days/Hours before or after,
-Rule Trigger Date
-Order Date
-Shipment Date
-Created Time
-Modified Time

Finally, click Save to create the Field Update workflow and implement it for the modules in Zoho Inventory.


Webhooks

Webhooks facilitate communication with third-party applications by sending instant web notifications every time an event occurs in Zoho Inventory. With Webhooks, you can configure both HTTP & HTTPS URLs and associate them in workflow rules to automate the entire notification process.

For example, you can associate your Zoho Inventory account with an SMS provider with a webhook to thank your customer by sending a message automatically if the total amount paid exceeds $1000. For general information about webhooks, please refer to webhooks.org.

To set up a webhook, navigate to Settings > Automation and click on + New Workflow. In the subsequent page, select the Webhook tab.

Note: This feature is available only for selective pricing plans.

New Webhook

Name your workflow

workflow name

FieldDescription
Workflow Rule NameGive a unique name for the workflow rule.
ModuleSelect the module for which you wish to create a workflow.
DescriptionGive a small description for your workflow rule.

Choose when to trigger the webhook

when trigger workflow

You can choose when to trigger the workflow based on the parameters you select in the following fields.

Workflow types

There are two types of workflows:

workflow type

Event Based: If the workflow is Event Based, then the workflow is triggered when a module is:

When a module is Edited or Created or Edited, additional fields appear.

when to trigger

FieldDescription
Execute the workflow whenThere are 3 options to choose from
-When any field is updated.
-When any selected field is updated.
-When all selected field are updated.
If you select When any selected field is updated or When all selected fields are updated in the drop down, an additional box will appear where you can select any 3 fields of the module.
Just Once or Everytime?Just Once- The workflow would be executed when the criteria is met for the first time.
Everytime- The workflow would be executed everytime the criteria is met.

Date Based: If the workflow is Date Based, additional fields appear.

when trigger date based

FieldDescription
Date of ExecutionSelect the workflow to be triggered on any number of days before or after Order Date, Shipment Date or Created Time from the drop down.
date based execution
Execution TimeYou may choose the exact time of execution by selecting the corresponding hh or mm .
Execution CycleYou may choose the frequency of triggering a workflow by choosing Once, Monthly or Yearly from the drop down.
execution cycle

Advanced Filters

Clicking on Apply advanced filters allows you to set one or more conditions based on which the action will be executed.

Filter The Trigger

FieldDescription
ConditionThe filter will be triggered based on the criteria you set. You can also add multiple criteria by clicking on + Add Criteria based on which the workflow rule will be executed.
Trigger Condition
The condition for the next criteria may be AND or OR depending on whether you wish to include both or either one of the criteria. Also, you can change the criteria pattern as you want by selecting Change Criteria.
Field AttributesThe field is used to select an attribute from the list that broadly covers the terms that are related to the module.
Module List
RulesSelect the rules based on which the system should filter the trigger. If the field has alphanumeric values, the rules are,
Text Rules
If the field has only numerical values, then the rules are,
Numeric Rules
Value FieldEnter the value of the attribute for which the filter must be applied.

Editing Criteria Pattern:

You can edit the criteria pattern to suit your requirements by selecting Change Criteria. The editor allows you to define a pattern of your choice using simple AND/OR logic. For example, if you wish to trigger the workflow rule When Sales Order date is 20th July 2016 AND Reference Number is 54321 OR Status isn’t Confirmed,

Change Criteria

The pattern is ((1 AND 2) OR 3). If you feel the criteria pattern does not match your requirement, you can edit it to be (1 AND (2 OR 3)).

Change Criteria Pattern

Click Save to continue.

Note: You can have a maximum of 10 criteria for each Workflow Rule.

Setting up the Webhook trigger

Once the rules have been set, the webhook can be set up. You can customize the update to suit your business needs and program it to act immediately or at a particular time.

Webhook Setup

FieldDescription
URL to notifyEnter the URL of the external service provider’s API. For example, if you want Zoho Inventory to add or change data in Zoho CRM, the URL would be https://crm.zoho.com/crm.
MethodSpecify the function you want to call at the external service:
POST: Requests that data sent must be considered as new.
PUT: Requests that data sent should be considered as a modified version of the one already present.
DELETE: Requests that the data must be deleted.
Custom ParametersYou can add custom parameters. in the webhook such as Auth Token, Security Token, API Key etc. based on which the URL will be appended. Enter the required parameter under Parameter Name and the corresponding value under Parameter Value. If you wish to add multiple parameters, select + Add Custom Parameters.
Entity ParametersAppend All Parameters- Select this option to send all parameters from Zoho Inventory to the external service.
Append Selected Parameters- Select this option to send selected parameters from Zoho Inventory to the external service.
URL PreviewThe URL generated for this webhook will be displayed here.

Custom Parameters

If you wish to specify any custom parameters like your API Key, Auth token etc., you can make use of the custom parameters option.

Custom Parameters

HTTP Headers

If you wish to specify any HTTP headers in your webhook, you can check the INCLUDE HTTP HEADERS option.

HTTP Headers

Entity Parameters

There are two options available while communicating data with a third party application, namely,

Entity Parameter

FieldDescription
Parameter NameEnter the name of the parameter that you wish to append and select the module in the corresponding box.
Parameter ValueSelect the desired parameter from the drop down.

Note: You can add multiple entity parameters by selecting +Add Entity Parameter. You can add a maximum of 10 entity parameters.

User Defined Parameters

If you wish to add user defined parameters while accessing an external service, select the box Add User Defined Parameters.

User Defined Parameters

FieldDescription
Parameter NameEnter the name of the parameter which you wish to update.
Value DescriptionSelect a module of Zoho Inventory from the first drop down and select the corresponding parameter from the drop down of the adjacent box. This will generate the placeholder string for that parameter.
You can enter the custom code in different formats. For example, if you wish to send a JSON or XML string with parameter values from a Sales Order, you can use the user defined parameters and placeholders format.
If you wish to include the placeholder in the string, select Insert Placeholder.

Click on Save to create a webhook. You can now select one of the many webhooks created to connect with an external service provider when a workflow rule is triggered.


Custom Functions

Custom functions in Zoho Inventory allows you to write small pieces of code to automate your business processes. Be it providing a special discount on your customers’ invoice, or adding a late fee when an invoice becomes overdue, all you have to do is write a piece of code using Deluge script for a workflow rule and automation of the process will be taken care of.

Note: This feature is available only for selective pricing plans.

What is Deluge?

Deluge is an online scripting language integrated with Zoho Creator. It enables users to add logic to the application, incrementally, making it more powerful and robust.

To know about Deluge, refer the Deluge Reference Guide.

If you wish to learn Deluge by writing code samples, click here.

Creating and Executing a Custom function

To create a custom function,

New Custom function button

Custom function form

Now, whenever the criteria is met, the workflow rule with the custom function will be triggered.

Default fields

As of now, custom functions support Invoices, Sales Orders, Purchase Orders and Bills.

These modules will have the following fields from which you can get the necessary parameters for your custom function.

invoice

The invoice map supports the following fields:

Key FieldsDescription
due_dateInvoice due date
payment_expected_dateExpected payment date for the invoice
reference_numberReference number of the invoice
customer_idCustomer ID
customer_nameName of the customer who is assigned to the invoice
currency_idCurrency ID
currency_codeCurrency code
currency_symbolCurrency symbol
exchange_rateExchange rate involved in the invoice
discount_amountDiscount amount involved in the invoice
discountDiscount involved in the invoice
shipping_chargeShipping charge entered in the invoice
adjustmentAdjustments
sub_totalSub total of the invoice
tax_totalTotal tax amount in the invoice
totalTotal amount
balanceBalance
price_precisionNumber of Decimal places
billing_addressBilling address of the customer
shipping_addressShipping address of the customer
notesNotes
termsTerms and conditions
custom_fieldsInvoice custom fields
salesperson_idID of the salesperson

Sample map:

{
	"total": "0.0",
	"payment_terms": "0",
	"terms": “Checking”,
	"price_precision": "2",
	"payment_expected_date": "2016-06-31”,
	"date": "2016-06-30",
	"shipping_address": {
		"zip": "94588",
		"country": "USA",
		"address": "4910 Hopyard Rd",
		"city": "Pleasanton",
		"state": "CA",
		"fax": "Fax Number"
	},
	"balance": "0.0",
	"adjustment": "0.0",
	"currency_symbol": "Rs.",
	"salesperson_id": “7605000000336089”,
	"currency_code": "INR",
	"shipping_charge": "0.0",
	"custom_fields": [
		{
			"customfield_id": "7605000000336081",
			"is_active": true,
			"show_in_all_pdf": false,
			"value_formatted": "INV-8",
			"data_type": "autonumber",
			"index": 1,
			"label": "AutoNumber",
			"show_on_pdf": false,
			"value": "INV-8"
		},
		{
			"customfield_id": "7605000000351027",
			"is_active": true,
			"show_in_all_pdf": true,
			"value_formatted": "01 Aug 2016",
			"data_type": "date",
			"index": 2,
			"label": "Date",
			"show_on_pdf": true,
			"value": "2016-08-01"
		}
	],
	"currency_id": "7605000000000099",
	"exchange_rate": "1.0",
	"status": "draft",
	"sub_total": "12000.0",
	"customer_name": “Customer”,
	"invoice_number": "INV-000087",
	"discount_amount": "12000.0",
	"discount": "100.00%",
	"tax_total": "0.0",
	"reference_number": “checking”,
	"due_date": "2016-06-30",
	"invoice_id": "7605000000369043",
	"notes": "Thanks for your business.",
	"customer_id": "7605000000258011",
	"billing_address": {
		"zip": "94588",
		"country": "USA",
		"address": "4910 Hopyard Rd",
		"city": "Pleasanton",
		"state": "CA",
		"fax": "Fax Number"
	}
}
sales order
Key FieldsDescription
dateSales Order date
tax_totalTotal tax amount in the sales order
zcrm_potential_idID of the potential in Zoho CRM
discount_amountDiscount amount involved in the sales order
salesorder_idSales order ID
discountDiscount
shipment_dateDate on which shipment is made
billing_addressBilling address of the customer
line_itemsLine items
currency_codeCurrency code
totalTotal amount
delivery_method_idDelivery method ID
termsTerms and conditions
delivery_methodMethod of delivery
shipping_addressShipping address of the customer
exchange_rateExchange rate involved in the sales order
currency_symbolCurrency symbol
custom_fieldsSales order custom fields
estimate_idEstimate ID
reference_numberReference number of the sales order
salesperson_nameName of the salesperson involved
salesperson_idID of the salesperson involved
shipping_chargeShipping charge entered in the sales order
salesorder_numberYour sales order number
sub_totalSub total of the sales order
zcrm_potential_nameName of the potential in Zoho CRM
adjustmentAdjustments made
customer_nameName of the customer who is assigned to the sales order
customer_idID of the customer who is assigned to the sales order
currency_idCurrency ID
statusStatus of your sales order

Sample map:

{
	"date": "2016-05-23",
	"tax_total": "0.0",
	"zcrm_potential_id": "",
	"discount_amount": "1200.0",
	"salesorder_id": "7605000000295003",
	"discount": "10.00%",
	"shipment_date": "2016-05-23",
	"billing_address": {
		"zip": "94588",
		"country": "USA",
		"address": "4910 Hopyard Rd",
		"city": "Pleasanton",
		"state": "CA",
		"fax": "Fax Number"
	},
	"line_items": [
		{
			"bcy_rate": 12000,
			"line_item_id": "7605000000295011",
			"quantity": 1,
			"item_id": "7605000000259147",
			"tax_name": "",
			"description": "",
			"discount": 0,
			"item_total": 12000,
			"item_custom_fields": [
			],
			"tax_id": "",
			"is_invoiced": true,
			"item_order": 0,
			"tags": [
			],
			"stock_on_hand": "",
			"unit": "",
			"rate": 12000,
			"tax_type": "tax",
			"name": "Moto",
			"tax_percentage": 0
		}
	],
	"currency_code": "INR",
	"total": "10820.0",
	"delivery_method_id": "7605000000461053",
	"terms": "Terms & Conditions",
	"delivery_method": "Door Delivery",
	"shipping_address": {
		"zip": "",
		"country": "",
		"address": "",
		"city": "",
		"state": "",
		"fax": ""
	},
	"exchange_rate": "1.0",
	"currency_symbol": "Rs.",
	"custom_fields": [
		{
			"customfield_id": "7605000000321009",
			"is_active": true,
			"show_in_all_pdf": true,
			"value_formatted": "Text",
			"data_type": "string",
			"index": 1,
			"label": "Text",
			"show_on_pdf": true,
			"value": "Text"
		}
	],
	"estimate_id": "7605000000405047",
	"reference_number": "Reference",
	"salesperson_name": "Arun",
	"salesperson_id": "7605000000135003",
	"shipping_charge": "10.0",
	"salesorder_number": "SO-00002",
	"sub_total": "12000.0",
	"zcrm_potential_name": "",
	"adjustment": "10.0",
	"customer_name": "Arun",
	"customer_id": "7605000000101007",
	"currency_id": "7605000000000099",
	"status": "invoiced"
}
purchase order

The purchase order map supports the following fields:

Key FieldsDescription
dateDate of the purchase order
delivery_addressDelivery address
tax_totalTotal tax amount in the purchase order
delivery_org_address_idID of delivery org address
purchaseorder_idPurchase order ID
expected_delivery_dateExpected delivery date
billing_addressBilling address of purchase order
line_itemsLine items in the purchase order
currency_codeCurrency code
totalTotal of the purchase order
delivery_customer_idDelivery customer ID
exchange_rateExchange rate involved in the purchase order
currency_symbolCurrency symbol
custom_fieldsPurchase order custom fields
ship_via_idID of mode of shipping
vendor_nameName of the vendor
reference_numberReference number of your purchase order
purchaseorder_numberPurchase order number
delivery_dateDelivery date
vendor_idVendor ID
sub_totalSub-total of the purchase order
ship_viaMeans of shipping
attentionAttention
crm_owner_idID of Zoho CRM owner
currency_idCurrency ID
statusStatus

Sample map:

{
	"date": "2016-07-11",
	"delivery_address": {
		"zip": "94588",
		"country": "USA",
		"address": "4910 Hopyard Rd",
		"city": "Pleasanton",
		"state": "CA",
		"fax": "Fax Number"
	},
	"tax_total": "0.0",
	"delivery_org_address_id": "7605000000054013",
	"purchaseorder_id": "7605000000378500",
	"expected_delivery_date": "",
	"billing_address": {
		"zip": "94588",
		"country": "USA",
		"address": "4910 Hopyard Rd",
		"city": "Pleasanton",
		"state": "CA",
		"fax": "Fax Number"
	},
	"line_items": [
		{
			"bcy_rate": 1000,
			"line_item_id": "7605000000378504",
			"quantity": 1,
			"item_id": "7605000000298021",
			"tax_name": "",
			"description": "",
			"item_total": 1000,
			"tax_id": "",
			"item_order": 0,
			"tags": [

			],
			"unit": "No",
			"account_id": "7605000000000403",
			"rate": 1000,
			"tax_type": "tax",
			"account_name": "Advertising And Marketing",
			"name": "Moto G Turbo Edition",
			"tax_percentage": 0
		}
	],
	"currency_code": "INR",
	"total": "1000.0",
	"delivery_customer_id": "",
	"exchange_rate": "1.0",
	"currency_symbol": "Rs.",
	"custom_fields": "[]",
	"ship_via_id": "7605000000461053",
	"vendor_name": "Mr. Vendor",
	"reference_number": "Reference",
	"purchaseorder_number": "PO-00006",
	"delivery_date": "2016-07-11",
	"vendor_id": "7605000000112009",
	"sub_total": "1000.0",
	"ship_via": "Door Delivery",
	"attention": "Arun",
	"crm_owner_id": "",
	"currency_id": "7605000000000099",
	"status": "billed"
}

bill

The bill map supports the following fields:

Key FieldsDescription
dateDate on the bill
bill_idID of the bill
purchaseorder_idsID of the purchase order involved
tax_totalTotal tax amount in the bill
exchange_rateExchange rate involved in the bill
currency_symbolCurrency symbol
custom_fieldsBill custom fields
due_dateDue date of the bill
vendor_nameName of the vendor involved
billing_addressBilling address
line_itemsLine items in the bill
payment_termsPayments terms associated to vendor
payment_expected_dateExpected payment date
reference_numberReference number of the bill
currency_codeCurrency code
totalTotal on the bill
bill_numberBill number
payment_madePayment made for the bill
balanceBalance amount
recurring_bill_idID of the recurring bill profile
vendor_idID of the vendor involved
sub_totalSub-total on the bill
statusBill status

Sample map:

{
	"date": "2016-10-12",
	"bill_id": "348960000000193039",
	"purchaseorder_ids": "[]",
	"tax_total": "0.0",
	"exchange_rate": "1.0",
	"currency_symbol": "£",
	"custom_fields": "[]",
	"due_date": "2016-10-15",
	"vendor_name": "Vendor",
	"billing_address": {"zip":"","fax":"","address":"","state":"","country":"","city":""},
	"line_items": [{"tags":[],"tax_name":"","project_name":"","tax_type":"tax","account_id":"348960000000000412","customer_name":"","is_billable":false,"product_type":"goods","line_item_id":"348960000000193047","invoice_number":"","sku":"","purchaseorder_item_id":"","account_name":"Credit Card Charges","unit":"1","item_order":0,"rate":33000,"bcy_rate":33000,"item_id":"348960000000087031","description":"","project_id":"","name":"refrigerator","tax_id":"","quantity":1,"invoice_id":"","tax_percentage":0,"customer_id":"","item_total":33000}],
	"payment_terms": "3",
	"payment_expected_date": "",
	"reference_number": "1",
	"currency_code": "GBP",
	"total": "33000.0",
	"bill_number": "Bill-001",
	"payment_made": "0.0",
	"balance": "33000.0",
	"recurring_bill_id": "",
	"vendor_id": "348960000000051033",
	"sub_total": "33000.0",
	"status": "open"
}

To know more about how to use Deluge scripts for writing custom functions, refer the Deluge Reference Guide.

To know more about different scenarios where custom functions could be useful, refer our Custom Function Scenarios page.


Custom Schedules

Zoho Inventory lets you create and run predefined tasks at the specified time intervals using schedules. You can create your tasks using a deluge script and schedule this task to be executed at a particular time or on a recurring basis.

Note: This feature is available only for selective pricing plans.

Scenarios

Here are a few scenarios where schedules can be created to execute custom actions. However, you can create custom schedules based on your firm’s requirements.

Scenario 1: Peter runs a supermarket. At the end of every month, he wants to give a 10% off on the next purchase to customers whose total purchase for the month exceeds a certain amount, let’s say 1000. Peter creates a schedule to email this to selective customers on the last day of the month.

Scenario 2: Peter uses a third party application for maintaining customer and employee database internally. He would like to sync all data from Zoho Inventory to the other application periodically. To do so, he creates a custom schedule to sync the data at 6 pm every day.

Creating New Schedules

To create a custom schedule in Zoho Inventory:

  1. Go to Settings > Automation > Schedules.

  2. Click the + New Schedule button.

    New scheduler
  3. Enter a Name for your schedule.

  4. Set the Frequency and recurrence pattern for the schedule to be executed. This can be hourly, daily, weekly, monthly or yearly.

    • Hourly: The task will be executed every hour (or based on your recurrence pattern). Hourly scheduler

    • Daily: The task will be executed every day (or based on your recurrence pattern). You can choose to exclude the weekends. Daily scheduler

    • Weekly: The task will be executed once a week (or based on your recurrence pattern). Select the day(s) of the week on which the task should be executed. Weekly scheduler

    • Monthly: Task will be executed once a month (or based on your recurrence pattern). This can be a specific date or a day in a month. For example, you can choose to execute it on the 5th of every month or the Second Saturday of every month.

       Monthly scheduler
      
      
    • Yearly: Task will be executed once a year (or based on your recurrence pattern). You can select the month and specify the date of execution or specify the day. For example, the task can be executed on the first Sunday in January or just January.

       Yearly scheduler
      
      
  5. Set the Start Date and Time.

Warning: The start date of a schedule cannot be more than one year from the creation date.

  1. Select when the schedule should expire. It can expire after a number of executions or on a set date or not expire at all.
  2. scheduler expiry
  3. Drag and drop options to create a Deluge function that will help to create your function.

Insight: Deluge is an online scripting language integrated with Zoho Services. It enables you to write your own functions that lets you modify the application to suit your needs, incrementally, making it more powerful.

  1. Click Save or Save and Execute to run it.
  2. Save Scheduler

Note: You can only create up to 10 custom schedules.

Sample Function

Here’s a sample function for Scenario 1:


organizationID = organization.get("organization_id");
name = organization.get("name");
orgEmail = organization.get("email");
salesResponse = invokeUrl
 [
 url: "https://inventory.zoho.com/api/v1/organizations?organization_id=" + organizationID + "&from_date=" + toStartOfMonth(today).toString("YYYY-MM-dd") + "&to_date=" + eomonth(today,0).toString("YYYY-MM-dd")
 type: GET
 connection: "inventory_api_connection"
 ];
salesDetails = salesResponse.get("sales").toList();
for each  sales in salesDetails
{
	amount = sales.get("sales_with_tax");
	if(amount > "<ENTER AMOUNT>")
	{
		customerName = sales.get("customer_name");
    customerResponse = invokeUrl
     [
     url: "https://inventory.zoho.com/api/v1/contacts/" + sales.get("customer_id") + "?organization_id=" + organizationID
     type: GET
     connection: "inventory_api_connection"
     ];
    customerDetails = customerResponse.get("contact");
		customerEmail = customerDetails.get("email");
		sendmail
		[
			from :zoho.adminuserid
			to :customerEmail
			subject :"Thank you for shopping! Here's a 10% discount!"
			message :"<div>Dear&nbsp;" + customerName + ",<br></div><div><br></div><div>We just wanted to take a moment of our time to thank you for your continuous support.<br></div><div><br></div><div> Based on your recent purchases, we'd like to offer you a 10% off on your next purchase with us.&nbsp;<br></div><div><br></div><div>Please show this email during billing to avail this discount!<br></div><div><br></div><div>Regards,<br></div><div>" + name + "<br></div><div><br></div><div><br></div><div><br></div><div><br></div>"
		]
	}
}

Learn more from the Connections help document.


Other Actions

Mark automation as active or inactive:

If an automation is no longer useful to you, you can mark it as Active or Inactive. To do so, place your cursor over the automation you want to deactivate and click the Mark as Inactive button.

Mark Delete Workflow

Edit an automation:

To edit the details of an automation, place your cursor over the automation and click the Edit button.

Edit Workflow

Filter workflow rules:

To filter the automations list, follow these steps:

You can also filter workflow rules based on whether they are active or inactive. Based on your selection, the corresponding workflow rules will be displayed as a list.

Workflow Filter


TOP