Home OneHash CRM

OneHash CRM

Cloud-based platform that streamlines sales, marketing, and customer support with automation, advanced analytics, lead tracking, and integrated business tools for better customer management.
By Frappe Content licensed CC-BY-SA 3.0 and 1 other
79 articles

Integration of MSG91 API with OneHash

How to integrate MSG91 API in OneHash? 1. Signup/Login Signup or log in with OneHash and start integrating MSG91 API from scratch 2.SMS Gateway URL Enter the SMS Gateway URL - https://api.msg91.com/api/v2/sendsms 3.Message Parameter Enter the message parameter as “message” 4.Mobile Parameter Enter URL parameter for received number as “to” 5. Static URL Parameters Enter Static URL Parameters values as: • Sender - This is your Sender ID which users will receive. Please click here to know the regulations of specific countries on using Sender ID. For Example enter OneHash • Route - For sending promotional SMS enter the route value as “1” and for transactional SMS enter the route value as “4”. • Country - Enter 91 for sending SMS in India, 1 for the USA, and 0 for international messages. • Auth Key - Located on the MSG91’s Dashboard or Click on API located on the left side of the screen to get/generate your Authkey 6. Unicode, Flash, and Encrypted SMS Click on the “Add Row” option to send Unicode, Flash, and Encrypted SMS, add these parameters in the code and pass their values as described below. • Unicode - For messages other than English pass 1 else this will be 0. Also, it is recommended to encode the message content when sending Unicode messages • Flash - For sending flash SMS enter the value as “1” else enter “0” • Schedule SMS - To schedule your SMS. You can choose your own time format. Examples of recommended time formats Y-m-d h:i:s (2020-01-01 10:10:00) Or Y/m/d h:i:s (2020/01/01 10:10:00) Or you can use UNIX timestamp (1577873400) • After minutes - You can use this if you want to send an SMS after a few minutes • Response - By default you will get response in string format but you want to receive in other formats (JSON,XML) then set this parameter, for example: &response=json or &response=xml. • Campaign - A campaign name is a Tag given to the messages you sent, for easy management of the reports. You can create a campaign name as per your choice. 7. Save Save the file and you are good to go

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Auto Email Report

"# Auto Email Reports Auto Email Reports automatically sends reports for the selected document. You can setup Auto Email Report to send reports at regular intervals. These must be saved reports of any type (Report Builder, Script or Query Report). You can find Auto Email Report at: | Home > Settings > Auto Email Report 1. How to create an Auto Email Report 1. Go to the Auto Email Report list, click on New. 2. Select the Report for which you want to generate emails. 3. Select the user for which you want to create this report (permissions will apply for this user). 4. Set the Email Addresses to which you want this report to be emailed and the frequency of the report. Emails will be sent at midnight. The date will be repeated in case of weekly/monthly/yearly frequency. For example, if the selected date is 7 and the frequency is monthly, the email will be sent on the 7th of each month. 1. Save. You can test the report by clicking on ""Download"" or ""Send Now"". Here is an example of the email you will receive for a general ledger report: 2. Features **2.1 Filter Data ** - Send only if there is any data: If enabled, emails will not be sent if there is no data in the report. - Only Send Records Updated in Last X Hours: If set to 24, an email will contain only records updated in the last 24 hours. - No of Rows: The number of rows to be sent in the email. The maximum is 500. **2.2 Report Filters ** If your report has filters, you will be able to see them. Click on the table to edit it: For example, if the email is on the report 'Project Billing Summary' select the Project. The date range here is the date range of the 'Project Billing Summary'. **2.3 Message ** A message can also be added to be sent with the email report. For example, 'This is your monthly Project Billing Summary Report:' You can also change the file format in which the report is created. The available options are HTML, XLSX, and CSV."

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 11, 2024

Appointment Booking Settings

Appointment Booking Settings You can find all settings related to booking appointments in Appointment Booking Settings. 1. Enable Appointment scheduling This checkbox will enable appointment scheduling and also enable the /book_appointment Route for website users (your customers). Your customers will see a portal view. To know more, visit the Appointment Page . 2. Agent Details In this section, you can add details about agents, such as their working hours and holidays. **2.1 Availability of Slots ** Here you can set the timing in which your agents are available to attend an appointment. This is set per day of the week. Each row represents a continuous block of time, you can have multiple entries for each day of the week. For example if your agents work Monday to Friday, 9am to 5pm but with a lunch break at 1.30 for half and hour. You will need to create two entries for each day. One from 9am to 1.30pm and another from 2pm to 5pm. **2.2 Agents ** This is the list of agents which will be auto assigned to appointments. The number of appointments which can exist in one timeslot also depends upon the number employees in this list. **2.3 Holiday list ** You can link a (holiday list)[https://erpnext.com/docs/user/manual/en/human-resources/holiday-list] here to apply to the appointment schedule. If the day is a holiday, scheduling an appointment on that day won't be allowed. 3. Appointment Details This section contains details about the appointment themselves. **3.1 Appointment Duration in minutes ** The duration of appointment in minutes. This is used to calculate appointment timeslots for the web portal. Changing this does not affect the appointments created before the change. **3.2 Notify Via Email ** Enabling this checkbox will send an email to the participants of the appointments i.e. your employee and the customer on the day of the appointment. Changing this checkbox does not affect the appointments created before the change. **3.3 Number of days appointment can be books in advance ** This is the number of days the appointment can be booked in advance. If the Holiday List provided above ends before the date calculated using this number, appointment scheduling will be stopped at the end of holiday list end. 4. Success settings **4.1 Success Redirect URL ** This is the URL where the user will be redirected on creation of successful appointment creation via Web Portal. This redirect will not occur when creating appointments from within Desk UI. Leave blank for home. This is relative to site URL, for example "about" will redirect to "https://yoursitename.com/about"

By Frappe Content licensed CC-BY-SA 3.0
Last updated on May 26, 2025

Connect with OneHash via Rest APIs

REST API OneHash generates REST API for all of your DocTypes out of the box and can be used to seemless integration with other systems. Authentication There are two ways to authenticate through REST API. Token based authentication and password based authentication. 1. Token Based Authentication A token is a pair of API Key and API Secret. First, you must create an API User and then generate the keys in the API Access section in the User form. || The token is generated by concatenating api_key and api_secret with a colon : Pass the string token api_key:api_secret to the Authorization header in the request. fetch ("http://<base-url>/api/resource/:doctype', { headers: { "Authorization" : ‘token api_key:api_secret' } }) .then(r => r.json()) .then(r => { console. log (x) ; }) 2. Password Based Authentication Password based authentication relies on cookies and session data to maintain authentication in subsequent requests. In most cases, the library you are using to issue REST calls will handle session data, but if it doesn't you should use Token based authentication. fetch ('http://<base-url>/api/method/login', { method: 'POST', headers: { 'Accept': ‘application/json', 'ContentType': 'application/json', }, body: JSON. stringify({ usr: ‘username or email’, pwd: 'password' }) }) .then(r => r.json()) .then(r => { console. log (x) ; }) Listing Documents To get a list of records of a DocType, send a GET request at /api/resource/:doctype. By default, it will return 20 records and will only fetch the name of the records. GET /api/resource/:doctype Response "data": [ { "name": "b57566801a" }, { "name": "bé3b71d£37" }, { "name":"lfeadafora" }, "name": "4cadccée0e" }, ] } You can specify which fields to fetch in the fields param. It should be a JSON array. GET /api/resource/:doctype?fields=["field1", "field2"] You can filter the records by passing filters param. Filters should be an array, where each filter is of the format: [field, operator, value] GET /api/resource/:doctype?filters=[["field1", "=", "value1"], ["field2",">", "value2"]] You can also provide the sort field and order. It should be of the format fieldname asc or fieldname desc. The space should be URL encoded. GET /api/resource/:doctype?order_by=title%20desc You can also page the results by providing the limit_start and limit_page_length params. GET /api/resource/:doctype?limit_start=10&limit_page_length=20 CRUD Operations OneHash generates REST endpoints for CRUD operations for all DocTypes automatically. Make sure you set the following headers in your requests so that you get proper JSON responses. { "Accept": "application/json", "Content-Type": "application/json", } Create Create a new document by sending a POST request to /api/resource/:doctype. Send the document as JSON in the Request Body. POST /api/resource/:doctype # Body { "description": "New ToDo" } Response { "data": { "name": "af2e2d0e33", "owner": "Administrator", "creation": "2019-06-03 14:19:00.281026", "modified": "2019-06-03 14:19:00.281026", "modified_by": "Administrator", "idx": 0, "docstatus": 0, "status": "Open", "priority": "Medium", "description": "New TODO", "doctype": "ToDo" } } Read Get a document by sending a GET request to /api/resource/:doctype/:name. GET /api/resource/:doctype/:name Response { "data": { "name": "bf2e760e13", "Owner": "Administrator", "creation": "2019-06-03 14:19:00.281026", "modified": "2019-06-03 14:19:00.281026", "modified by": "Administrator", "idx": 0 "docstatus": 0, "status": "Open", "priority": "Medium", "description": "<p>Test description</p>", "doctype": "ToDo" } } **Update** Update a document by sending a PUT request to /api/resource/:doctype/:name. You don't need to send the whole document, instead you can just send the fields that you want to update. PUT /api/resource/:doctype/:name Body {"description": "New description"} **Response** ![](https://storage.crisp.chat/users/helpdesk/website/6f1c2c7b8034d000/image_ysbc0e.png) **Delete** Delete a document by sending a DELETE request to /api/resource/:doctype/:name. ```DELETE /api/resource/:doctype/:name``` **Response** ```{"message": "ok"}``` ### File Uploads There is a dedicated method /api/method/upload_file that accepts binary file data and uploads it into the system. Here is the curl command for it: ![](https://storage.crisp.chat/users/helpdesk/website/6f1c2c7b8034d000/image_8jt1u7.png) If you are using client side Javascript to upload files, you can append the uploaded files as FormData and send an XHR request. ### API Documentation: [![Run in Postman](https://run.pstmn.io/button.svg)](https://god.gw.postman.com/run-collection/8374074a9c069529ab7d) [API Documentation](https://documenter.getpostman.com/view/5136742/TzmBBt1U) [API Playground](https://app.swaggerhub.com/apis-docs/onehash1/one-hash_api_collection/4b7517a7-9c5e-40c5-8728-6610de35dabf) ${youtube}[Connect with OneHash Rest API](vzcNp9cTGmk)

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 12, 2024

Google Calendar

Google Calendar Integration OneHash provides an integration with Google Calendar in order for all users to synchronize their Google Calendar Events with OneHash . | How to set up Google Calendar Integration In order to allow a synchronization with Google Calendar, you need to authorize OneHash to get Calendar Events data from Google. Google Calendar Integration is set up with the following steps: - Create OAuth 2.0 Credentials via Google Settings. - In the Google Calendar list, click on New. Enter Calendar Name and the User for whom you want to sync and then save it. - Depending what data you want to sync, you can select following Pull from Google Calendar - Syncs all event from Google Calendar to OneHash . Push to Google Calendar - Syncs all event from OneHash to Google Calendar. - Now click on Authorize Calendar Access to authorize OneHash to get Calendar Events data from Google. - Once Authorized, you can manually sync Google Calendar Event or let OneHash sync Google Contacts daily. | How to use Google Calendar Integration **Creating an Event in OneHash ** - Once Google Calendar Integration is successful, all the events created in OneHash will be synced if Push to Google Calendar is checked. - Creating an Event in OneHash - Deleting an Event in OneHash Syncing Events from Google Calendar - Once Google Calendar Integration is successful, all the events in Google Calendar will be synced if Pull from Google Calendar is checked. - Syncing Events from Google Calendar to OneHash

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 12, 2024

Exotel Integration

Exotel Integration This integration allows you to integrate Exotel into your OneHash account. Leads and their phone numbers captured via Exotel can be saved directly to your OneHash. | 1. Features - Track incoming calls in your OneHash account. - Shows existing lead/customer information pop-up to employees when an incoming call is received. | 2. How to setup 2.1 Setup your Exotel account - Login to your Exotel account and go to App Bazar. - Create a new App for a new flow. - Setup the flow as you wish it to be. - In your connect API under "Create popup..." and paste following URL: https:///api/method/erpnext.erpnext_integrations.exotel_integration.handle_incoming_call || Note: Replace your-site in URL with your site name. For example, if the site name is shaba.onehash.ai then the URL will be: https://shaba.onehash.ai/api/method/erpnext.erpnext_integrations.exotel_integration.handle_incoming_call - After that add a Passthru applet under "After Call Conversation ends" and paste following URL: https:///api/method/erpnext.erpnext_integrations.exotel_integration.handle_end_call ||| Note: Make sure to check "Make Passthru Async". - Similary, add a Passthru applet under "If nobody answers..." section and paste following URL: https:///api/method/erpnext.erpnext_integrations.exotel_integration.handle_missed_call ||| Note: Make sure to check "Make Passthru Async". - Save the flow. - Now assign this newly created app to your ExoPhone from which you receive your business calls. 2.2 Setup in OneHash - From Awesome Bar, go to 'Exotel Settings'. - Set your "Exotel SID" and "Exotel Token". You can find your Exotel API key and token on your Exotel Dashboard. - Go to Communication Medium. - Add your ExoPhone and schedule that number. Based on this schedule employees will receive the popup.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on May 26, 2025

Woocommerce Integration

WooCommerce Integration Using WooCommerce Integration, the system creates Sales Orders in OneHash for the orders created on WooCommerce using the WooCommerce webhook. While creating a Sales Order from WooCommerce, if the Customer or Item is missing in OneHash, the system will create new Customer/Item by using the respective details from WooCommerce order data. It also creates Address linked to the Customer using the shipping details from the order data. | 1. How to set up WooCommerce? 1.1 Generate API Key and API Secret 1. From your WooCommerce site's sidebar, click on Settings. 2. Click on the "Advanced" tab then click on the REST API link. 1. Click on "Add key" button. Provide the necessary details and click on "Generate API key" button. 1.2 Woocommerce Settings 1. On your OneHash site, go to: Home > Integrations > Marketplace > Woocommerce Settings. 2. Paste the API key and secret generated in the previous step into the "API consumer key" and "API consumer secret" fields. 3. In the "Woocommerce Server URL" paste the url of your WooCommerce site. 4. Make sure "Enable Sync" is checked. 5. Select the "Tax Account" and "Freight and Forwarding Account" in the Account Details Section. 6. Select the "Creation User" in Defaults section. This user will be used to create Customers, Items and Sales Orders. Ensure that the user has the relevant permissions. 7. Select the "Company" that will be used to create the Sales Orders. 8. Click Save. 9. After saving the Woocommerce Settings, "Secret" and "Endpoint" are generated automatically. 1.3 Woocommerce Webhook Settings 1. Now from your woocommerce site's sidebar, go to Settings. 2. Click on the "Advanced" tab then click on the Webhooks link and then click on "Add webhook" button. 3. Give the webhook a name of your choice. 4. Click on Status dropdown and select "Active". 5. Select Topic as "Order created". 6. Copy the "Endpoint" from "Woocommerce Settings" doctype in your OneHash site and paste it in "Delivery URL" field. 7. Copy "Secret" from "Woocommerce Settings" doctype in your OneHash site and paste it in "Secret" field. 8. Keep API VERSION as it is and click on Save Webhook. Now it is successfully set up. ||| Note: In the above screenshot and GIF, in place of delivery url on woocommerce website, you need to paste the url you will obtain after saving the "Woocommerce Settings" in the "Endpoint" field in your OneHash instance. Here other URL was pasted as localhost was being used. 1.4 Woocommerce order creation and syncing 1. From your Woocommerce website, register yourself as a user on the Account page. 2. Now Click on Addresses option and provide the required details. 3. Click on "Shop" option and now available products can be seen. 4. Add the desired products into the cart and click on View Cart. 5. From the cart, once you have added the desired products, you can click on "Proceed to Checkout". 6. All billing details and Order details can be seen now. Once you are ok with it, click on Place Order button. 7. "Order Received" message can been seen indicating that the order has been placed successfully. 8. Now on your OneHash instance, check the following Document Types: Customer, Address, Item, Sales Order. They will be fetched and created from the webhook data. 9. In case the orders are not synced, you can check the error in Home > Settings > Core > Error Log. | 2. Features 2.1 Defaults In the Woocommerce Settings DocType: - Warehouse: This Warehouse will be used to create Sales Orders. The default Warehouse is "Stores". - Delivery After (Days): This is the default offset (days) for the Delivery Date in Sales Orders. The default offset is 7 days from the order placement date. - Sales Order Series: You can set a separate series for Sales Orders created via woocommerce. The default series is "SO-WOO-". - UOM: This is the default UOM used for Items and Sales Orders. The default UOM is "Nos".

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Shopify Integration

Shopify Integration The Shopify Connector pulls the orders from Shopify and creates Sales Order against them in OneHash. While creating the sales order if Customer or Item is missing in OneHash the system will create new Customer/Item by pulling respective details from Shopify. | How to Setup Connector? - Create A Private App in Shopify 1. Click on Apps in menu bar 1. Click on Manage private apps to create private app 1. Fill up the details and create app. The each app has its own API key, Password and Shared secret Setting Up Shopify on OneHash:- Once you have created a Private App on Shopify, setup App Credentials and other details in Shopify Settings in OneHash. To access Shopify Settings, go to: Integrations > Shopify Settings 1. Select App Type as Private and Fill-up API key, Password and Shared Secret from Shopify's Private App. 1. Setup Customer, Company and Inventory configurations 1. Setup Sync Configurations. The system pulls Orders from Shopify and creates Sales Order in OneHash. You can configure OneHash system to capture payment and fulfilments against orders. || Shopify Logs can be used to track issues/ error like integration not working/ orders not syncing. 1. Setup Tax Mapper. Prepare tax and shipping charges mapper for each tax and shipping charge you apply in Shopify After setting up all the configurations, enable the Shopify sync and save the settings. This will register the API's to Shopify and the system will start Order sync between Shopify and OneHash. ||| Note: The connector won't handle Order cancellation. If you cancelled any order in Shopify then manually you have to cancel respective Sales Order and other documents in OneHash.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

GoCardless Integration

| Setting up GoCardless To setup GoCardless, go to Explore > Integrations > GoCardless Settings Setup GoCardless To enable GoCardless in your OneHash account, you need to configure the following parameters and Access Token and optionally (but highly recommended), a Webhooks Secret key. You can setup several GoCardless payment gateways if needed. The choice of payment gateway account will determine which GoCardless account is used for the payment. On enabling service, the system will create a Payment Gateway record and an Account head in chart of account with account type as Bank. It will also create a payment gateway account. You can change the default bank account if needed and create a template for the payment request. After configuring the Payment Gateway Account, your system is able to accept online payments through GoCardless. SEPA Payments Flow When a new payment SEPA payment in initiated, the customer is asked to enter his IBAN (or local account number) and to validate a SEPA mandate. Upon validation of the mandate, a payment request is sent to GoCardless and processed. If the customer has already a valid SEPA mandate, when instead of sending a payment request to the customer, the payment request is directly sent to GoCardless without the need for the customer to validate it. The customer will only receive a confirmation email from GoCardless informing him that a payment has been processed. Mandate cancellation You can setup a Webhook in GoCardless to automatically disabled cancelled or expired mandates in OneHash. The Endpoint URL of your webhook should be: https://yoursite.com/api/method/erpnext.erpnext_integrations.doctype.gocardless_settings.webhooks In this case do not forget to configure your Webhooks Secret Key in your GoCardless account settings in OneHash. Supported transaction currencies

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Webforms

Web Forms Web Forms Stakeholders who are not part of your organization may need to interact with your OneHash instance. You can authorize customers, suppliers, job applicants, students, and guardians to access certain information or even create certain transactions. For example, you can let anyone create an account on your website (created with OneHash) and apply for a job. You can let your customers see the details of the complaints they have registered. These can be done using Web Forms. There are two types of in-built interfaces available in OneHash . The Desk View and the Web View. Desk is for users who regularly interact with OneHash instance, like employees of your organization. Web View is for users who need to interact with an OneHash instance occasionally. Web forms are similar to the forms you generally fill in various websites on the internet. Webforms are part of the Web View interface in OneHash . To create a new Web Form go to: Home > Website > Web Site > Web Form Select the DocType based on which you want to build your Web Form. The Route will be set based on the Title of your Web Form. You can also add an Introduction text to show a friendly message above your form. Add fields to your Web Form. These are the fields from the DocType you have selected. You can change the Label for these fields. Try to keep number of fields to be minimum as long forms are cumbersome to fill. Click on See on Website in the sidebar to view your Web form. Here is an explanation of each of the checkboxes on the right. 1. Published: Web Form will be accessible only if this is enabled. 2. Login Required: User can fill the Web Form only if they are logged in. When Login Required is checked, 3. Route to Success Link: Go to Success Link after the form is submitted. 4. Allow Edit: If this is unchecked the form becomes read-only once it is saved. 5. Allow Multiple: Allow user to create more than one record. 6. Show as Grid: Show records in a table format. 7. Allow Delete: Allow user to delete the records that he/she has created. 8. Allow Comments: Allow user to add comments on the created form. 9. Allow Print: Allow user to print the document in the selected Print Format. 10. Allow Incomplete Forms: Allow user to submit form with partial data. 11. Features 2.1 Sidebar You can also show contextual links in a sidebar on your Web Form. Set it up in Sidebar Settings. 2.2 Creating Web Forms with Child Table You can add child tables to your web forms, just like regular forms. 2.3 Payment Gateway Integration You can now add a Payment Gateway to the web form, so that you can ask users to pay against a web form. A good example for this is a conference ticket. 2.4 Portal User We have also introduced roles for Website users. Before version 11, if you assigned any 'Role' to a user he would get access to 'Desk View'. From version 11 you can assign a 'Role' but still disallow access to 'Desk View' by unchecking 'Desk Access' in Role. In Portal Settings, you can set a role against each menu item so that only users with that role will be allowed to see that item. 2.5 Custom Script You can write custom scripts for your Web Form for things like validating your inputs, auto-filling values, showing a success message, or any arbitrary action. Learn how to write custom scripts for your Web Forms here. 2.6 Custom CSS You can customize the look and feel of your Web Form by writing your own Custom CSS. Inspect the elements on the page to see what classes are available for styling. Learn more about CSS here. 2.7 Actions You can add the text in 'Success Message' field and this text will be shown to user once he successfully submits the web form . And the user is redirected to the URL given at 'Success URL' when clicked on 'Continue' button. This is only applicable to webforms accessible without the user login(webforms with 'Login Required' checkbox unchecked). 2.8 Result When a website user submits the form, the data will be stored in the document/doctype for which web form is created. Embeddable Forms For embedding a web form in your website, first go to “Web Form” list and select one of previously created Web Form or create a new one. Now in the Embeddable Section of Web Form, tick the “Is Embeddable” checkbox to enable embedding of the Web Form. Now you just have to copy the “Embed Url” code and paste it into your website to access the Embeddable Web Form. Note: “Login Required” and “Is Embeddable” do not work together. For every successful submission of Web Form, a record gets created in “Web Form Log”. In Embeddable Section you also get following features, which you can enable as shown in above image… Collect Geo Location : This enables the embeddable form to capture the geo location of the user submitting the form. Collect IP Address : This enables the embeddable form to capture the ip address of the user submitting the form. Captcha : This enables the embeddable form to ensure the user is a human using Google reCaptcha Site Key : If the captcha is enabled, you have to put the site key of Google reCaptcha verified for your OneHash site url. Restrict Number of Submission : This number indicates the maximum number of submission allowed for an embeddable web form. Restrict Submission per IP : This number indicates the maximum number of submission allowed for an embeddable web form per IP Address. Time Limit : This enables the form to be submittable within a defined set of datetime. Please ensure to check time as well. From Date : This marks the datetime starting which the embeddable forms is submittable. To Date : This marks the datetime after which the embeddable forms is not submittable.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Zoom Integration with OneHash CRM

Zoom Integration OneHash lets you create Zoom meetings and send invitations to participants directly from the application. Steps to integrate with Zoom Meeting 1. Zoom Settings Login into your OneHash account and open ZoomSettings. You can search this doc on the search bar. You will have to store Client Id, Client Secret, and Secret Token from Zoom to ZoomSettings and use Redirect URL and Email Subscriptions URL from OneHash to Zoom while Building the App on Zoom Marketplace. 2. Zoom Meetings Similarly, open a new tab and search ZoomMeetings on the search bar. 3. Zoom Marketplace Click on Integrate Zoom button and then click on Go to Marketplace. In the Zoom marketplace, sign in with your Zoom account and savings account details on ZoomSettings. You will have to sign in to Zoom using the same email id. 4. Build an Application Go to Develop > Build App. " class="csh-markdown csh-markdown-image"><br class=" loading="lazy"/> 5. Meeting SDK Click on Create button in the Meeting SDK application. 6. Create an Application Name your application and click on Create. 7. Add Basic Information Enter all the required details, and move to App Credentials. 8. Save Credentials Copy the Client Id and Client Secret values and save them in ZoomSettings. 9. Add Redirect URL Add Redirect URL from ZoomSettings and save it in both Redirect URL for OAuth and Add Allow Urls. 10. Save Secret Token Copy the Secret Token value and save it in ZoomSettings and Save ZoomSettings. 11. Event Subscription Toggle the Event Subscription button and create a new subscription. Add the Event Subscription URL from ZoomSettings and click on Validate. A successful connection with OneHash will be indicated by Green Button. 12. Add Events Add and Save the following events to the Event Subscription: Meeting has been created Meeting has been updated Meeting has been deleted 13. Add Scopes Add and Done the following scopes: View your meetings View and manage your meetings View your user information. 14. Test your Connection Open Zoom Meetings in OneHash and click on SignInZoom button. You will be asked to integrate Zoom with OneHash. Select the checkbox and click on Allow. 15. Successful Integration Sign In with the same mail id with which you created a Build App on Zoom Marketplace. 16. Create Zoom Meeting Click on Create Zoom Meeting, enter your meeting topic and description and click on Submit. After a few seconds, reload the page, and your meeting will be visible on OneHash.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Kanban Board

| Kanban Board Kanban Board is a tool which will give you a descriptive layout of your data in OneHash based on status and a virtual board. This board shall consist of cards which represent the various Documents listed in a particular Document Type aligned as per the stage of operation of the transactions represented by Status Columns. The card status can be changed easily by dragging and dropping the cards across the board. A Kanban Board helps to visualize, control and optimize work-flow while collaborating with the entire team on a real-time basis. Creating a new Kanban Board To create a Kanban board in OneHash click the Kanban dropdown on the sidebar, and select New Kanban Board. Adding new Card/Document To add Cards on Kanban Board click Add Tasks. You can Edit card details by click on the card and it will take you to the Task Doctype where you can further add and edit card details. Update Cards/Document Status Based on the Task status you can drag and drop the cards in the respective column. For example, if the task is work in progress you can move the card for the task from the status Open to Working. Manage Columns To add more columns in the Kanban board click on Add columns. You can also assign colors to columns. You can also Archive and Restore the columns added in a Kanban board. To do so click Archive in the drop-down menu on the card. Once archived you can restore the column from the list of the archived columns in the Kanban board. Filters You can create multiple Kanban Boards based on different filters. To save filters for a Kanban Board, click on Menu and then "Save filters".

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

How to create an Appointment?

Appointment An appointment is a prearranged meeting between a Lead and an Employee of your Company. Appointment document type can be used to schedule and manage interaction with a Lead or an Opportunity. To access Appointment list, go to: ++Home > CRM > Sales Pipeline > Appointment++ | 1. Prerequisites 1. Appointment Booking Settings 2. Holiday List 3. Employee 4. Lead 5. Email | 2. How to create an Appointment 1. Go to Appointment list, click on New 2. Select scheduled time of the appointment 3. Enter customer details 4. In linked documents, if you have already created a Lead for the Customer you can set it here. Otherwise the system will automatically create a new lead with the customer details from previous step. 5. Save. Creating appointments via website Your Customers/Leads can create appointment using the webpage yoursitename.com/book_appointment. First they need to set a date, time. Then, add more details: It'll match the customer email with leads in the system and if one is found, it is linked with the document. If no lead is found, the appointment is marked as "Unverified" and an email is sent to the customer to confirm their email. | 3. Features 1. Auto assign Appointments are automatically assigned to employees as per the Agents list in Appointment Booking Settings. The agent with the least number of assignments for the day of the appointment and who is free in the scheduled time is assigned to the appointment. 2. Email confirmation If there is no matching lead in your system, an email will be sent to the email address in the appointment to confirm if the email address is valid. Upon confirmation, a new Lead will also be created in the system along with the Appointment.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Creating a Campaign

Campaign A Campaign is a full-scale implementation of a sales strategy to promote a product or service. This is done in a market segment of a particular geographical area to achieve specified objectives. To access Campaign, go to: ++Home > CRM > Settings > Campaign++ | How to Create a Campaign 1. Go to the Campaign list, click on new. 2. Enter a name for the campaign. 3. Enter a description to describe what the campaign is about. 4. Save. | Features 1. Tag Campaign in Lead, Opportunity, and Quotation When a marketing campaign generates a lead or an opportunity, you can tag the campaign while creating the Lead or Opportunity. You can also tag the campaign in Quotation. This helps in assessing the effectiveness of a marketing campaign by calculating the return on investment. 2. View Leads Generated by a Campaign 1. Click on 'View Leads' button in the campaign. 2. You will see a filtered list of leads made against the campaign. 3. You can also create new leads against the campaign by clicking on 'New' 3. Set up email schedules for Email Campaigns If you want to carry out a campaign using emails for your leads or contacts, Email Campaign serves the purpose. You will have to set up a schedule for the campaign. Click on 'Add Row' to add an entry to the campaign schedule. - In Email Template, select an 'Email Template' which you would like to send via email to the lead or contact. You can create one as follows: - In Send After (days), specify the number of days after which the respective email should be sent. Using this field, the day on which email is to be sent is calculated relative to the Start Date of Email Campaign. 4. Dashboard The Campaign dashboard shows you all the Email Campaigns and Social Media Post linked to the Campaign. You can also create a new Email Campaign and Social Media Post from here.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Creating an Address in OneHash CRM

Address You can record the addresses associated with a Lead, Customer, Supplier, Shareholder, Sales Partner or a Warehouse. You can also add an Address as a standalone record without linking it to any of the entities listed above. To access the Address list, go to: ++Home > CRM > Address++ | How to create an Address 1. Go to the Address list and click on New. 2. Select Address Type. 3. Enter details in Address Line 1, Address Line 2, City/Town, County, State, Country. 4. Enter Email Address, Phone and Fax. 5. Enter Link DocType and Link Name to link this address to customer, supplier etc. 6. Save. You can also add an Address from the Customer or Supplier record by clicking on “New Address" button as shown below. To Import multiple addresses from a spreadsheet, use the Data Import Tool. | Features 1. Link an Address to Multiple Entities An address may be linked to multiple customers or multiple suppliers. An address can also be linked to customers and suppliers at the same time. 2. Address Title If the address is not linked to any entity you need to manually add a title. If the address is linked to an entity like a customer or supplier, the title is generated automatically in 'Entity Name-Address Type' format. 3. Preferred Billing Address and Shipping Address If you check 'Preferred Shipping Address', the address would be automatically added in the Shipping Address in Sales Order, Sales Invoice and Delivery Note transactions. Similarly, if you check 'Preferred Billing Address', the address would be automatically added in the Billing Address in Sales Order, Sales Invoice and Delivery Note transactions. 4. GST Localization for India If the customer/supplier has registered for GST, enter Party GSTIN and GST State. Make sure GSTIN entered is in valid format. In sales transactions along with address, GSTIN is also fetched. You can also add addresses of your own company's facilities. Check 'Is Your Company Address', select Company in Link DocType, and Company Name in Link Name for such addresses and you can select them in GST Sales Invoice to print your own address. ||| GSTIN is to be added in Address and not in Customer/Supplier, as one Customer/Supplier may have multiple GSTIN (one for each state where he conducts his business). | Related Topics 1. Customer 2. Supplier 3. Sales Partner

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Creating a Contact in OneHash CRM

Contact Contact represents a person. A contact may be associated with a Lead, Customer, Supplier, Shareholder, Sales Partner or a User. You can also add contact as a standalone record without linking it to any of the entities listed above. To access the Contact list, go to: ++Home > CRM > Sales Pipeline > Contact++ | How to create a Contact 1. Go to the Contact list and click on New. 2. Enter First Name and Last Name. 3. Choose the status if the contact is passive, is open to contact or has replied. 4. Enter contact details like email, phone, etc. 5. Save. You can also add a Contact from the Customer or Supplier record by clicking on “New Contact” button as shown below. When you have multiple contacts against an entity like customer/supplier, you can check 'Is Primary Contact' to indicate the preferred contact. The primary contact will be chosen automatically in transactions like sales order and sales invoice. To Import multiple contacts from a spreadsheet, use the Data Import Tool. | Features 1. Link a Contact to Multiple Entities A contact may be linked to multiple customers or multiple suppliers. A contact can also be linked to customers and suppliers at the same time. 2. Invite the Contact as a User You can allow contacts of your customers and suppliers to log into your OneHash system and view data relevant to them. Check Customer Portal for more details on this. You can send an email invitation to a contact by clicking on 'Invite as User' button.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Creating an Opportunity

Opportunity Opportunity is a qualified lead. When you get a hint that lead is looking for a product/service that you offer, you can convert that lead into an opportunity. You can also create an opportunity against an existing customer. Multiple Opportunities can be collected against a lead or a customer. To access the Opportunity list, go to: ++Home > CRM > Sales Pipeline > Opportunity++ || How to Create an Opportunity 1. Go to the Opportunity list and click on New. 2. In 'Opportunity From', select Lead if opportunity is from a lead. 1. You can also go to an “Open” Lead and select “Opportunity” from the Make dropdown as shown below. 1. In 'Opportunity From', select Customer if opportunity is from a customer. 1. Select Opportunity Type. This indicates the broad category of opportunity like Sales, Support, Maintenance etc. 2. You can add more details like Opportunity Amount, Probability (of conversion), Currency in 'SALES' section. 3. You can capture the details of the products/services needed by clicking on 'With Items' checkbox and adding the item and quantity details in 'ITEMS' section. 4. Enter the Source of the opportunity in the SOURCE section. ||Features 1. Reminders to Follow Up on Opportunities It is important to reach out to opportunities from time to time and build the relationship. You can set the 'Next Contact Date' and 'Next Contact By' fields and a calendar event will be added for the user chosen in 'Next Contact By' field and a notification is shown on the that Date. 2. Auto-assign Opportunities to Sales Executives You can define Assignment Rules to automatically assign the opportunities to sales executives. 3. Auto-close Opportunities If you do not receive a response from an opportunity for a certain number of days, you may want that opportunity to be closed automatically. You can set the number of days in Selling Settings. 4. Create a Quotation You can create a Quotation from the Make dropdown. Relevant field values will be copied over. 5. Create a Supplier Quotation You may need to get a quotation from your supplier against the customer requirement and based on that, prepare the quotation for your customer. With OneHash, you can make a Supplier Quotation from the opportunity itself. ||| Best Practice: Leads and Opportunities are often referred as your “Sales Pipeline” this is what you need to track if you want to be able to predict how much business you are going to get in the future. Its always a good idea to be able to track what is coming in order to adjust your resources. 6. Capture the Reasons for Losing Opportunities When an opportunity is lost, you can capture the reasons for losing. This will help you to analyze the trends over a long period of time and identify the insights needed for improvements at various areas in the organisation. 7. Minutes to First Response When you send the first reply(email) to an Opportunity, it calculates Mins to First Response and is displayed in a field. A report is generated called 'Minutes to First Response for Opportunity'. Minutes to First Response for Opportunity' When you send the first reply(email) to an Opportunity, it calculates Mins to First Response and is displayed in a field. A report is generated called 'Minutes to First Response for Opportunity'. For more details click here. Opportunity in OneHash

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Lead Creation

Lead A lead is a potential customer who might be interested in your products or services. To get the customer through the door, you may be doing all or any of the following: - Listing your product on directories. - Maintaining an updated and searchable website. - Meeting people at trade events. - Advertising your products or services. When you send out the word that you are around and have something valuable to offer, people will come in to check out your products. These are your Leads. They are called Leads because they may lead you to a sale. Sales executives usually work on leads by calling them, building a relationship and sending information about products or services. It is important to track all this conversation to enable another person who may have to follow-up on that contact. The new person is then able to know the history of that particular Lead. To access the Lead list, go to: ++Home > CRM > Sales Pipeline > Lead++ || How to Create a Lead 1. Go to the Lead list and click on New. 2. If the person represents an organization, check the 'Lead is an Organization' checkbox. Notice that when you check, the 'Company Name ' field becomes mandatory. Enter the Company Name. 3. If the person is an individual, leave the checkbox unchecked and enter Person Name and Gender. 4. Enter the 'Email Address'. 5. Status is the important field in the Lead. You can set the status manually and also it will be updated automatically based on your actions against the lead. - Lead: This is the default status assigned when a Lead is created and it indicates an action is needed against this Lead. - Open: Sales executive needs to contact the Lead. - Replied: A sales executive has provided the information needed and response from Lead is awaited. - Opportunity: If an Opportunity is created against the Lead, the status is set to Opportunity. It indicates that the Lead is qualified and may lead to sales. - Quotation: If a quotation is created against a Lead, then the status is set to Quotation. - Lost Quotation: If the quotation given to the lead has been marked as lost, then the status is set to 'Lost Quotation'. - Interested: The lead is interested in the products or services. - Converted: If the quotation given to the Lead has resulted in confirmation of an order and if the Sales Order has been created against the quotation, then the status is set to Converted. - Do Not Contact: Lead is not interested and no further communication is needed. 1. You can set the Lead Source in Source field. 2. Enter email ID for communication. 3. Click on 'Save'. You can also record the details of the conversation in the NOTES section. Further details like Lead Type, Market Segment, Industry can be added in the 'MORE INFORMATION' section. If you have a healthy number of leads, all this information will help you prioritize the leads you can pursue. You can assign the Lead to a user by clicking on 'Assign' button on left bar. You can also attach files/images by clicking on 'Attach File' button. || Features 1. Reminders to Follow Up on the Leads It is important to reach out to leads from time to time and build the relationship. You can set the 'Next Contact Date' and 'Next Contact By' fields and a calendar event will be added for the user chosen in 'Next Contact By' field and a notification is shown on that Date. 2. Adding Multiple Contacts and Addresses In Business-to-business(B2B) scenario, in order to close a sales deal, you will have to contact multiple people working in the prospective company. You can add the details of all such people in the same lead. Once you save a Lead, you will get the option to add Contact details by clicking on 'New Contact' button. Similarly, you can add the Addresses details by clicking on 'New Address'. 3. Recording Comments, Emails and Events - Comments: You can write your comment in 'Add a comment' box and click on 'Comment'. - Emails: You can send an email to the lead by clicking on the 'New Email' button and when the lead responds to your email, it will be appended to your email creating an email thread. - Events: You can also records the Meetings, Calls etc. you have had with the Lead by clicking on 'New Event' 4. Creating Opportunity, Customer and Quotation You can create an Opportunity, Customer or a Quotation from the Make dropdown. Relevant field values will be copied over. 5. Auto-assigning the Leads to Sales Executives || Introduced in Version 12 You can define Assignment Rules to automatically assign the leads to sales executives. || Adding Custom Fields You may need to add custom fields to capture additional details as per your needs. You can customize the Lead DocType using Customize Form tool. How to create lead in OneHash CRM **4. Related Topics 1 .Opportunity 2. Customer 3. Difference between Lead, Contact, and Customer

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Two Factor Authentication

Setup Two Factor Authentication Enable Two Factor Authentication (2FA) Specify the following in System Settings The method of OTP validation (OTP App = TOTP using Soft or Hard Token while Email/SMS = HOTP using Email or SMS The expiry time for the QR Code on the server if OTP App is specified The OTP Issuer Name. On activation of 2FA from setup, it is also activated for the Role "All". In this way, all users including the Administrator have to perform a 2nd level authentication with a token. By unchecking the "Two Factor Authentication" checkbox in the "All" role and enabling it in other roles, the need to login with a token can be limited to specific roles. 2FA does not apply to login by Web Users and API login Role Enable Two Factor Auth If using SMS authentication, please make sure that your SMS settings are updated SMS Settings If using Email, make sure that your outgoing Email account settings are updated Email Settings When the new user tries to log in for the first time in a system that has two-factor authentication enabled and which has the authentication option as OTP App, an email is sent containing a link to the QR Code. Email Notify Two Factor QR Code Page Scanning the QR Code with an authentication app like Google Authenticator registers the access for the user and automatically starts to generate tokens that can be used to login Two Factor Scan App If either of Email/SMS is used as the authentication method, you get notifications also Email and SMS Frequently asked questions (FAQ) Q. I am unable to login even after following entire process. Ans: Frappe uses TOTP based OTP algorithm, which depends on your device's system time. Please make sure that device you're using has same time set as your ERPNext server.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Concepts and Terms

Concepts and Terms Before you start implementation, lets get familiar with the terminology that is used and some basic concepts in OneHash. Basic Concepts Company This represents the Company records for which OneHash is setup. With this same setup, you can create multiple Company records, each representing a different legal entity. The accounting for each Company will be different, but they will share the Customer, Supplier and Item records. | Setup > Company Customer Represents a customer. A Customer can be an individual or an organization. You can create multiple Contacts and Addresses for each Customer. | Selling > Customer Supplier Represents a supplier of goods or services. Your telephone company is a Supplier, so is your raw materials Supplier. Again, a Supplier can be an individual or an organization and has multiple Contacts and Addresses. | Buying > Supplier Item A Product, sub-product or Service that is either bought, sold or manufactured and is uniquely identified. | Stock > Item Account An Account is a heading under which financial and business transactions are carried on. Examples of accounts are "Debtors", "Creditors", "VAT Payable", “Travel Expenses”, "Sales", "Share Capital", etc. OneHash keeps track of your customers' and suppliers' balances in the background, so you don't need to create dedicated Accounts for them. | Accounting > Chart of Accounts Address An address represents location details of a Customer or Supplier. These can be of different locations such as Head Office, Factory, Warehouse, Shop etc. | Selling > Address Contact An individual Contact belongs to a Customer or Supplier or is just an independent. A Contact has a name and contact details like email and phone number. | Selling > Contact Communication A list of all Communication with a Contact or Lead. All emails sent from the system are added to the Communication table. | Support > Communication Price List A Price List is a place where different rate plans can be stored. It’s a name you give to a set of Item Prices stored under a particular List. | Selling > Price List | Buying > Price List Accounting Fiscal Year Represents a Financial Year or Accounting Year. You can operate multiple Fiscal Years at the same time. Each Fiscal Year has a start date and an end date and transactions can only be recorded in this period. When you “close” a fiscal year, it's balances are transferred as “opening” balances for the next fiscal year. | Setup > Company > Fiscal Year Cost Center A Cost Center is like an Account, but the only difference is that its structure represents your business more closely than Accounts. For example, in your Chart of Accounts, you can separate your expenses by its type (i.e., travel, marketing, etc.). In your Chart of Cost Centers, you can separate them by product line or business group (e.g., online sales, retail sales, etc.). | Accounting > Chart of Cost Centers Journal Entry A document that contains General Ledger (GL) entries and the sum of Debits and Credits of those entries is the same. In OneHash you can update Payments, Returns, etc., using Journal Entries. | Accounting > Journal Entry Sales Invoice A bill sent to Customers for delivery of Items (goods or services). Accounting > Sales Invoice Purchase Invoice A bill sent by a Supplier for delivery of Items (goods or services). | Accounting > Purchase Invoice Currency OneHash allows you to book transactions in multiple currencies. There is only one currency for your book of accounts though. While posting your Invoices with payments in different currencies, the amount is converted to the default currency by the specified conversion rate. | Setup > Currency Selling Customer Group A classification of Customers, usually based on market segment. | Selling > Setup > Customer Group Lead A person who could be a future source of business. A Lead may generate Opportunities. (from: “may lead to a sale”). Opportunity A potential sale. (from: “opportunity for a business”). | CRM > Opportunity Quotation Customer's request to price an item or service. | Selling > Quotation Sales Order A note confirming the terms of delivery and price of an Item (product or service) by the Customer. Deliveries, Work Orders and Invoices are made on basis of Sales Orders. | Selling > Sales Order Territory A geographical area classification for sales management. You can set targets for Territories and each sale is linked to a Territory. | Selling > Setup > Territory Sales Partner A third party distributer / dealer / affiliate / commission agent who sells the company’s products usually for a commission. | Selling > Setup > Sales Partner Sales Person Someone who pitches to the Customer and closes deals. You can set targets for Sales Persons and tag them in transactions. | Selling > Setup > Sales Person Buying Purchase Order A contract given to a Supplier to deliver the specified Items at the specified cost, quantity, dates and other terms. | Buying > Purchase Order Material Request A request made by a system User, or automatically generated by OneHash based on reorder level or projected quantity in Production Plan for purchasing a set of Items. | Buying > Material Request Stock (Inventory) Warehouse A logical Warehouse against which stock entries are made. | Stock > Warehouse Stock Entry Material transfer from a Warehouse, to a Warehouse or from one Warehouse to another. | Stock > Stock Entry Delivery Note A list of Items with quantities for shipment. A Delivery Note will reduce the stock of Items for the Warehouse from where you ship. A Delivery Note is usually made against a Sales Order. | Stock > Delivery Note Purchase Receipt A note stating that a particular set of Items were received from the Supplier, most likely against a Purchase Order. | Stock > Purchase Receipt Serial Number A unique number given to a particular unit of an Item. | Stock > Serial Number Batch A number given to a group of units of a particular Item that may be purchased or manufactured in a group. | Stock > Batch Stock Ledger Entry A unified table for all material movement from one warehouse to another. This is the table that is updated when a Stock Entry, Delivery Note, Purchase Receipt, and Sales Invoice (POS) is made. Stock Reconciliation Update Stock of multiple Items from a spreadsheet (CSV) file. | Stock > Stock Reconciliation Quality Inspection A note prepared to record certain parameters of an Item at the time of Receipt from Supplier, or Delivery to Customer. | Stock > Quality Inspection Item Group A classification of Item. | Stock > Setup > Item Group Human Resource Management Employee Record of a person who has been in present or past, in the employment of the company. | Human Resources > Employee Leave Application A record of an approved or rejected request for leave. | Human Resource > Leave Application Leave Type A type of leave (e.g., Sick Leave, Maternity Leave, etc.). | Human Resource > Leave and Attendance > Leave Type Payroll Entry A tool that helps in creation of multiple Salary Slips for Employees. | Human Resource > Payroll Entry Salary Slip A record of the monthly salary given to an Employee. | Human Resource > Salary Slip Salary Structure A template identifying all the components of an Employees' salary (earnings), tax and other social security deductions. | Human Resource > Salary and Payroll > Salary Structure Appraisal A record of the performance of an Employee over a specified period based on certain parameters. | Human Resources > Appraisal Appraisal Template A template recording the different parameters of an Employees' performance and their weightage for a particular role. | Human Resources > Employee Setup > Appraisal Template Attendance A record indicating presence or absence of an Employee on a particular day. | Human Resources > Attendance Manufacturing Bill of Materials (BOM) A list of Operations and Items with their quantities, that are required to produce another Item. A Bill of Materials (BOM) is used to plan purchases and do product costing. | Manufacturing > BOM Workstation A place where a BOM operation takes place. It is useful to calculate the direct cost of the product. | Manufacturing > Workstation Work Order A document signaling production (manufacture) of a particular Item with specified quantities. | Manufacturing > Work Order Production Planning Tool A tool for automatic creation of Work Orders and Purchase Requests based on Open Sales Orders in a given period. | Manufacturing > Production Planning Tool Website Blog Post A short article that appears in the “Blog” section of the website generated from the OneHash website module. Blog is a short form of “Web Log”. | Website > Blog Post Web Page A web page with a unique URL (web address) on the website generated from OneHash. | Website > Web Page Setup / Customization Custom Field A user defined field on a form / table. | Setup > Customize OneHash > Custom Field Global Defaults This is the section where you set default values for various parameters of the system. | Setup > Data > Global Defaults Print Heading A title that can be set on a transaction just for printing. For example, you want to print a Quotation with a title “Proposal” or “Pro forma Invoice”. | Setup > Branding and Printing > Print Headings Terms and Conditions Text of your terms of contract. In Sales/Purchase transactions there might be certain Terms and Conditions based on which the Supplier provides goods or services to the Customer. You can apply the Terms and Conditions to transactions and they will appear when printing the document. To know about Terms and Conditions, click here: | Selling > Setup > Terms and Conditions Unit of Measure (UOM) How quantity is measured for an Item. E.g., Kg, No., Pair, Packet, etc. | Stock > Setup > UOM

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Introduction

Introduction What is an ERP system? And why should businesses use it? || If you are already convinced you need an all-in-one enterprise solutions system for your organization, you can skip this page. Today, small and medium-sized businesses (SMEs) also face some of the problems that large enterprises do. One of them is planning and managing their resources. SMEs face similar complexities but have limited resources to deal with them. Small businesses (like their bigger counterparts) have to: 1. Do accounts to track their sales/purchases. 2. Do their taxes. 3. Pay their employees. 4. Manage deliveries within promised timelines. 5. Deliver quality goods and services. 6. Communicate with customers, and answer their queries. Large enterprises invest millions of dollars in highly sophisticated systems like SAP. SAP and similar systems can handle requirements from these large enterprises to bring their multi-country, multi-company, multi-currency, global businesses into a single platform. This has helped them consolidate data/records in the fundamental processes such as accounting, taxation, payroll, reporting, and supply chain, to name a few. In contrast to large enterprises, SMEs have been left out of the 1st wave of digital revolution (1995-2015). The main reason for being left out is because they need the financial resources to license, hire programmers and customize such software to match their needs. Systems like SAP have been a no-go for most SMEs. Such systems need a minimum CAPEX or OPEX layout of $100k (Yes, One Hundred Thousand Dollars) and upwards. Even with cloud offerings (Software as a Service, SAAS) from such vendors, there is no easy Do It Yourself (DIY) people can feel confident about. So even today, small businesses continue to need help to keep things organized. They often use a mix of applications and tools such as spreadsheets, accounting software, and web-based CRMs to manage their day-to-day record keeping. As a consequence, they have to access different systems to understand customers' master data, sales, cash flows, or profitability. The information exists in seperate silos. It becomes hard to combine the data to get valuable insights or alerts. This leads to SMEs being reactive instead of being proactive in their day-to-day operations. With such a constrained way of working, there's limited scope for growth. OneHash addresses some fundamental problems SMEs struggle with when managing their resources: 1. Affordability: It is a Free and Open Source Software, freely available to download and install. 2. Completeness: All necessary modules are available -view full list. 3. Customization: It is easy to add fields or add more features. 4. Efficiency: Computing requirements are relatively low (cheaper to host and manage). 5. Wholesomeness: A single system and database that allows multiple users to record transactions or extract data simultaneously. What is OneHash? OneHash is a full-featured business management solution that helps SMEs to record all their business transactions in a single system. With OneHash, SMEs can make informed, fact-based, timely decisions to remain ahead of the competition. It serves as the backbone of a business adding strength, transparency, and control to your growing enterprise. OneHash will help you to: 1. Track all invoices and payments. 2. Know what quantity of which product is available in stock. 3. Identify and track your key performance indicators (KPIs). 4. Identify open customer queries. 5. Manage employee payroll. 6. Assign tasks and follow up on them. 7. Maintain a database of all your customers, suppliers, and contacts. 8. Prepare quotations. 9. Track your budgets and spending. 10. Determine effective selling price based on the actual raw material, machinery, and effort cost. 11. Get reminders on maintenance schedules. 12. Publish your website. And a ton more. Is OneHash only for SMEs? OneHash scales well from SMEs to even large enterprises. OneHash is used by several African retail chains, and a highly regarded equities trading company in India with over a thousand employees. Check out a variety of User Stories to know more. Here is a video to get you started: Topics You can also checkout the following topics: 1. Do I Need an ERP? 2. Open Source 3. Getting Started with ERPNext 4. The Champion 5. Implementation Strategy 6. Key Workflows 7. Concepts and Terms

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Script Report

Script Report Anything that can't be achieved using Report Builder or Query Report can be achieved using Script Reports. As the name suggests, these reports are built using Python scripts. Since these reports give you unrestricted access via Python scripts, they can only be created by Administrators. These reports are meant to be written during development and be a part of your app. || To create Script Reports you must enable Developer Mode. To create a Script Report, type "new report" in the awesomebar and hit enter. 1. Set Report Type as "Script Report" 2. Set "Is Standard" as "Yes" 3. Select the Module in which you want to add this report 4. In the module folder (for example if it is Accounts in OneHash the folder will be onehash/accounts/report/[report-name]) you will see that templates for the report files will be created. 5. Write your python script in the generated {report-name}.py file. 6. You can add filters to your report by adding them to {report-name}.js Standard and Custom Reports Verson 12 onwards, you can make custom Query and Script reports in Frappe Framework. In custom reports, the script can be added directy in the Report itself and you can use the Script API functions of Frappe Framework. Columns and Filters You can configure the columns and filters in the Report document. Here you can set the label, width, format (fieldtype) for the columns and filters. Filters can be used as formatting variables in the query. For example a filters of type customer can be used as %(customer)s in the query. Writing the script Custom Report In custom reports, you can use the Script API and write the script directly in the Code section. return frappe.db.get_all('User', ['first_name', 'last_name'], filters = filters) Standard Report The generated .py file comes with a boilerplate for your report. There is one method named execute which takes filters and returns columns and data. You can use any combination of python modules and SQL queries to generate your report. The execute function looks like this # import frappe def execute(filters=None): columns, data = [], [] return columns, data ``` The `execute` function is supposed to return the `columns` and the `data` to be shown in the report by default. A developer can optionally return a few parameters like `message, chart, report_summary, skip_total_rows`. The following are the parameters that can be returned by the execute function ##### columns This is a list of dictionaries. This holds all the columns that are to be displayed in the datatable in an order. || Note: You only need to return columns if you have not specified them in the Report Example: ```columns = [ { 'fieldname': 'account', 'label': _('Account'), 'fieldtype': 'Link', 'options': 'Account' }, { 'fieldname': 'currency', 'label': _('Currency'), 'fieldtype': 'Link', 'options': 'Currency' }, { 'fieldname': 'balance', 'label': _('Balance'), 'fieldtype': 'Currency', 'options': 'currency' } ] ``` ##### Results This can be a list of lists or a list of dictionaries. This holds the data to be displayed in the report Example: ```data = [ { 'account': 'Application of Funds (Assets)', 'currency': 'INR', 'balance': '15182212.738' }, { 'account': 'Current Assets - GTPL', 'currency': 'INR', 'balance': '17117932.738' }, ... ]``` ##### Chart Contains the configuration for the default chart to be shown in the report. ##### Report Summary This is a list of dictionaries that stores the important values in the report and is shown separately in the top section on the UI. Example: ```[{ "value": profit, "indicator": "Green" if profit > 0 else "Red", "label": _("Total Profit This Year"), "datatype": "Currency", "currency": "INR" }]``` || Note: These arguments are supposed to be returned in the specific order as follows Here is a script report from OneHash: Balance Sheet ##### Adding filters To add filters in your report define the fields and their fieldtypes in the `{report-name}.js` file. The filter values will be available in the `execute` method as a dict. ```frappe.query_reports['Balance Sheet'] = { filters: [ { fieldname: 'company', label: __('Company'), fieldtype: 'Link', options: 'Company', default: frappe.defaults.get_user_default('company') }, { fieldname: 'periodicity', label: __('Periodicity'), fieldtype: 'Select', options: [ 'Monthly', 'Quarterly', 'Half-Yearly', 'Yearly' ], default: 'Yearly', depends_on: 'eval:doc.company=="Gadget Technologies Pvt. Ltd."' } ] }``` Similar to the `depends_on` property that controls the display of fields, in Version 13 we have introduced `depends_on` for Script Report filters. This can be used to determine whether the filter will be visible based on the value of the condition in `depends_on`. Contains the configuration for the default chart to be shown in the report. ![](https://storage.crisp.chat/users/helpdesk/website/6f1c2c7b8034d000/script-report-1_d69vma.png) || Protip: To navigate directly to a Report of any of the above type, type its name in the awesomebar and hit enter.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Query Report

Query Report Query Reports are reports that can be generated using a single SQL query. The query can be simple or complex as long as it generates columns and records. These reports can only be created by a System Manager and are stored in the database. To create a Query Report, type "new report" in the awesomebar and hit enter then follow the below step: 1. Set Report Type as "Query Report" 2. Set the Reference DocType - Users that have access to the Reference DocType will have access to the report 3. Set the Module - The report will appear in the "Custom Reports" section of the module. 4. Write your query || If you set Standard as "Yes" and Developer Mode is enabled, then a JSON file will be generated which you will have to check in to your version control. You should do this only if you want to bundle Query Reports with your app. The Module will decide where the JSON file will go. Columns and Filters You can configure the columns and filters in the Report document. Here you can set the label, width, format (fieldtype) for the columns and filters. Filters can be used as formatting variables in the query. For example a filters of type customer can be used as customers in the query. Example name, creation, production_item, qty, produced_qty, company FROM `tabWork Order` WHERE docstatus=1 AND ifnull(produced_qty,0) < qty``` ### Formatting columns (Old Style) Alternatively columns can also be formatted by specifying the label of the column in a particular format: {label}:{optional fieldtype}{optional /}{optional options}:{optional width} If you have configured the fields and columns in the Report itself, you do not need to use this style. ### Example (Old Style) Here is what a query may look like: ```SELECT `tabWork Order`.name as "Work Order:Link/Work Order:200", `tabWork Order`.creation as "Date:Date:120", `tabWork Order`.production_item as "Item:Link/Item:150", `tabWork Order`.qty as "To Produce:Int:100", `tabWork Order`.produced_qty as "Produced:Int:100", `tabWork Order`.company as "Company:Link/Company:" FROM `tabWork Order` WHERE `tabWork Order`.docstatus=1 AND ifnull(`tabWork Order`.produced_qty,0) < `tabWork Order`.qty AND NOT EXISTS (SELECT name from `tabStock Entry` where work_order =`tabWork Order`.name)``` If you notice there is a special syntax for each column, we use this information to format the Report View. For example: The first column `Work Order:Link/Work Order:200` will be rendered as a Link Field with the DocType Work Order and the column width would be 200px.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Delete Company Transactions

Delete Company Transactions You can delete all the transaction data like Sales Invoices, Sales Orders associated with a company and start afresh, while keeping the other master data like Customers, Items, BOMs intact. Often, users setup all the master data and then create a few dummy records. Then they want to delete the dummy records and the company and start over again. This can be done in two ways: Transaction Deletion Tool This feature allows you to delete all the records associated with the specified company, except for the ones belonging to the DocTypes listed in the Excluded DocTypes table. To access Transaction Deletion Tool, go to: | Home > Setup > Transaction Deletion Tool Tread with caution while using this, records once deleted using this can never be recovered. But if you're certain you want to start over, follow these steps: - Go to Transaction Deletion Tool. - Create a new doc by clicking on New. - Enter the name of the Company whose records you wish to delete. - Save and Submit. And voila, your Company's as good as new. Delete Transactions - Go to Home > Accounting > Company and find your company. - On the top right, you'll find the Delete Transactions button under Manage. - Enter your password. - Enter the company name to confirm. This will submit a record in the Transaction Deletion Tool DocType. || Note: To perform this action, the user must have the role of System Manager.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Gmail Configuration

Gmail Account Configuration for Outgoing Mail All emails sent from the system, either by the user to contact or via notifications or via transaction emails, will be sent from an Outgoing Email Account. | Steps: Enable 2-Step Verification(In Gmail)>>Create an App Password (In Gmail)>>Apply password in OneHash Turn on 2-Step Verification(In Gmail) With 2-Step Verification, also called two-factor authentication, you can add an extra layer of security to your account in case your password is stolen. After you set up 2-Step Verification, you can sign in to your account with: - Your password - Your phone Allow 2-Step Verification 1. Open your Google Account. 2. In the navigation panel, select Security. 3. Under “Signing in to Google,” select 2-Step Verification and then Get started. 4. Follow the on-screen steps. Tip: If you use an account through your work, school, or other group, these steps might not work. If you can’t set up 2-Step Verification, contact your administrator for help. Verify it’s you with a second step After you turn on 2-Step Verification, you must complete a second step to verify it’s you when you sign in. To help protect your account, Google will ask that you complete a specific second step. Use other verification methods You can set up other verification methods in case you: 1. Want increased protection against phishing 2. Can’t get Google prompts 3. Lose your phone Skip a second step on trusted devices If you don't want to provide a second verification step each time you sign in on your computer or phone, check the box next to "Don't ask again on this computer." Important: Only check this box on devices you regularly use and don't share with anyone else. Create an App Password (In Gmail) Tip: App Passwords aren’t recommended and are unnecessary in most cases. To help keep your account secure, use "Sign in with Google" to connect apps to your Google Account. An App Password is a 16-digit passcode that gives a less secure app or device permission to access your Google Account. App Passwords can only be used with accounts that have 2-Step Verification turned on. When to use App Passwords Tip: iPhones and iPads with iOS 11 or up don’t require App Passwords. Instead use “Sign in with Google.” If the app doesn’t offer “Sign in with Google,” you can either: 1. Use App Passwords 2. Switch to a more secure app or device Create & use App Passwords If you use 2-Step-Verification and get a "password incorrect" error when you sign in, you can try to use an App Password. 1. Go to your Google Account. 2. Select Security. 3. Under "Signing in to Google," select App Passwords. You may need to sign in. If you don’t have this option, it might be because: - 2-Step Verification is not set up for your account. - 2-Step Verification is only set up for security keys. - Your account is through work, school, or other organization. - You turned on Advanced Protection. 1. At the bottom, choose Select app and choose the app you using and then Select device and choose the device you’re using and then Generate. 2. Follow the instructions to enter the App Password. The App Password is the 16-character code in the yellow bar on your device. 3. Tap Done. Tip: Most of the time, you’ll only have to enter an App Password once per app or device, so don’t worry about memorizing it. Apply password in OneHash || Go to- Email Account List>> Select Email Account>> Enter the Generated Password Apply password in the OneHash email account. Doesn’t Change anything in the OneHash settings. Just change the password.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Desk

Desk Frappe Framework comes with a rich admin interface called the Desk. It reads meta-data from DocTypes and automatically builds list views, form views, report views, etc for your DocTypes. Desk is to be used by users of the type "System User". In this section we will discuss what views are provided by Desk and how to configure them. - Workspace - Awesomebar - List View - Form View - Grid View - Report Builder - Tree View - Calendar View - Gantt View - Kanban View - Desk Theme Workspace When you login, you're presented with the Desk, it features a persistent sidebar sorted in categories. Each sidebar item links to a page called Workspace. A workspace represents a module (for example CRM in OneHash). A workspace includes the following: 1. A dashboard section for that particular module by default. 2. Shortcuts for commonly visited masters and pages 3. A masters section where all the reports and masters are grouped and listed 4. These features can be customized for each user directly from Desk. These features can be customized for each user directly from Desk. Awesomebar Awesomebar helps you to navigate anywhere in the system, create new records, search in documents and even perform math operations. List View List View is generated for all DocTypes except which are Child Tables and Singles. The List view is packed with features. Some of them are: 1. Filters 2. Sorting 3. Paging 4. Filter by tags Switch view to Report, Calendar, Gantt, Kanban, etc. Form View Form view is used to view the records in a Form Layout. This view has a lot of things going on. But the primary purpose of it is to view and edit records. A document can be assigned to or shared with other users and it can have arbitrary attachments and tags, all of which can be seen in the form sidebar. When you scroll down to the bottom of the form, you will see the form timeline. The form timeline shows emails, comments, edits and other events in a reverse chronological order. Grid View Grid view is used as a table in the form view to insert multiple records. User can configure the columns of the grid view from the form. Report Builder Report Builder is a generic tool to customize and build tabular data from a DocType. You can select columns to show, filters to apply, sort order and save this configuration by giving your report a name. You can also show Child Table data and also filter documents by their child records. You can also apply Group By on a column with aggregation methods like Count, Sum and Average. Tree View Frappe also supports tree structured records using the Nested set model. If a doctype is configured to be a tree structure, it can be viewed in the Tree view. Calendar View Calendar view can be configured for DocTypes with a start date and end date. The configuration file should be named {doctype}_calendar.js and should exist in the doctype directory. Here is an example configuration file for calendar view for Event doctype, which must be set in the event_calendar.js file. Gantt View Gantt view uses the same configuration file as calendar, so every DocType that has a Calendar view has a Gantt view too. In case certain settings need to be overridden for the Event DocType's Gantt view (for example the order_by field) the configuration can be set in the event_calendar.js file with the following content. Kanban View Kanban view can be created for any DocType that has a Select field with options. These options become the column names for the Kanban Board. Dark Theme Frappe Framework has a first class support of dark theme. To switch the theme, click on your avatar on top right of the screen and click on "Toggle Theme". Once you click "Toggle Theme", you'll see following modal from which you can easily switch between available themes. To switch to dark theme select "Timeless Night". Note: You can also press CTRL + SHIFT + G to open this modal.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Integrating OneHash With Biometric Attendance Devices

Biometric Integration The Attendance Punch Logs from the biometric device is a type of Check-in and Check-out log of an employee. OneHash has a provision to store these logs in a document called Employee Checkin. Attendance can then be marked based on the Employee Checkin records and the shift Auto Attendance Settings of the employee by using Auto Attendance Hence, integrating your Biometric Device --or any access control system that collects IN/OUT--, can be done by the following steps: Setting up Auto Attendance to mark attendance from the Employee Checkin Before you import employee's Check-in and Check-out logs into your OneHash system, you would have to set up the employees and their shifts to be able to generate attendance using the Auto Attendance feature in OneHash. Once you have set up the Employee and assigned shifts to the employees, you are now ready to proceed to the next step. Populating the Biometric Punch Logs into OneHash's Employee Checkin Depending on your biometric system and its features, there can be a lot of ways you can import the Punch logs into OneHash: Use OneHash Data Import Tool: - The simplest possible solution (in terms of implementation complexity) would be to generate an Excel/CSV of the Check-in/Check-out and use the built-in data import tool in OneHash to periodically import to your Employee Checkin Document - Please refer to OneHash's Documentation on Data Import Tool for more on how to do this. API Integration: - You can automate the process of importing the Biometric Punch Logs by integrating it with the available API in OneHash. - This API can be accessed at: || /api/method/erpnext.hr.doctype.employee_checkin.employee_checkin.add_log_based_on_employee_field - This method requires technical knowledge and you should probably get in touch with your OneHash implementor or Biometric system vendor. Set up a python script on your computer to integrate ZKTeco or similar devices: - This method works only for ZKTeco or similar devices that use the ZKProtocol to communicate over TCP/IP. - This script is available at: Click Here - Please follow the instructions given in the script page to set it up on your computer. - This Script pulls biometric logs from a supported device and uses the API mentioned in the above step to push the data into OneHash.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Using Social Login

Social Login Use Facebook, Google or GitHub authentication to login to Frappe, and your users will be spared from remembering another password. The system uses the Email Address supplied by these services to match with an existing user in Frappe. If no such user is found, a new user is created of the default type Website User, if Signup is not disabled in Website Settings. Any System Manager can later change the user type from Website User to System User, so that the user can access the Desktop. To enable these signups, you need to have Client ID and Client Secret from these authentication services for your Frappe site. The Client ID and Client Secret are to be set in Desktop > Integration > Authentication > Social Login Key > Client ID and Desktop > Integration > Authentication > Social Login Key > Client Secret. Here are the steps to obtain these credentials. || Use https://{{ yoursite }} if your site is HTTPS enabled. Facebook - Go to https://developers.facebook.com - Click on Apps (topbar) > New App, fill in the form. - Go to Settings > Basic, set the Contact Email and save the changes. - Go to Settings > Basic>> Display Name(Name of your choice)>> Enter "Privacy Policy URL">> Enter "Terms of Service URL">> Select Category>> Select purpose(Business or client)>> Scroll down to bottom>> Enter website URL>> Click "Save" - Scroll at the top>> Click on the slider button adjacent to "In Development">> Click "Switch Mode">> Save the changes - Go to Status & Review and switch on "Do you want to make this app and all its live features available to the general public?" - Go to Dashboard, click on the show button besides App Secret, and copy the App ID and App Secret into ** Integration > Authentication > Social Login Key** > Client ID and Integration > Authentication > Social Login Key > Client Secret Google - Go to https://console.developers.google.com - Create a new Project and fill in the form. - Click on APIs & Auth > Credentials > Create new Client ID - Fill the form with: - Web Application - Authorized JavaScript origins as http://{{ yoursite }} - Authorized redirect URI as http://{{ yoursite }}/api/method/frappe.www.login.login_via_google - Go to the section Client ID for web application and copy the Client ID and Client Secret into Integration > Authentication > Social Login Key > Client ID GitHub - Go to https://github.com/settings/applications - Click on Register new application - Fill the form with: - Homepage URL as http://{{ yoursite }} - Authorization callback URL as http://{{ yoursite }}/api/method/frappe.www.login.login_via_github - Click on Register application. - Copy the generated Client ID and Client Secret into Website > Setup > Social Login Keys and Integration > Authentication > Social Login Key > Client Secret

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Contract Management

Contract Management A contract is a legally binding agreement between a Supplier and a Customer over the sale or products or services. A contract is legally enforceable because it meets the requirements and approval of the law. An agreement typically involves the exchange of goods, services, money, or promises of any of those. To access the Contract list, go to: Home > Sales Pipeline > Contract 1. How to Create a Contract - Go to the Contract list and click on New. - Choose the Customer. - Enter the Contract Terms. A template can also be created for easily fetching the terms. - Save. Party User: The employee from your Company who is in contact with the Customer. 1.1 Statuses - Unsigned: The Contract has not yet been signed by the Customer. - Active: The Contract has been signed and is active under the Contract Period. - Inactive: The Contract is out of the Contract Period and not valid anymore. 1. Features 2.1 Contract Period The Start and End date within which the Contract is valid. 2.2 Signee Details This section will appear when the 'Signed' checkbox is ticked to indicate that the Customer has signed and accepted the Contract. Signee: Enter the name of the person that has signed the Contract. Signed On: The date on which the Contract was signed. 2.3 Contract Details Enter the terms of the Contract in the Contract Terms field. You can create a Contract Template and the template can be selected to fetch the Contract Terms. 2.4 Fulfilment Details If the Contract requires some fulfilment from the Supplier's (your) end, their details can be recorded in the Fulfilment Terms table. Requirement: Enter a requirement that needs to be fulfiled. For example, 'installation'. Notes: Any notes about the requirement can be entered here. 2.5 Contract Template A contract template is a standardized outline of a contract without the specifics involved. You can create a new template by going to: Home > CRM > Contract Template You can create templates by using Jinja. Eg: The parties enter into this contract on {{ start_date }}. When you create a new contract using this template, the {{ start_date }} is replaced by the date entered into the field of the same name. 2.6 References If the Contract can be linked to a transaction in OneHash CRM. Select the transaction type and the specific transaction. The documents that can be linked are: - Quotation - Project - Sales Order - Purchase Order - Sales Invoice - Purchase Invoice

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025

Get inter site communications with Event Streaming feature of OneHash

Event Streaming Event Streaming enables inter site communications between two or more sites. You can subscribe to Document Types and stream Documents between different sites. For Example: Consider you have more than one Company hosted on different sites, one among them is the main site where you want to do ledger posting and on other sites, the Sales Invoices are generated. You can use Event Streaming in this case. For this, your child company sites can subscribe to the main company site for Item, Customer, and Supplier Document Types. The main Company in turn can subscribe to the child companies for Sales Invoices. To access Event Streaming, go to: ++Home > Automation > Event Streaming++ | Prerequisites Before creating an Event Producer, a common user needs to be created on both the sites which will be used to access the site and will act as an Event Subscriber. Make sure the user has the necessary permissions for creation, updation, and deletion of the subscribed DocTypes. | How to set up Event Streaming 1. Obtain the Event Subscriber's keys from the Producer Site - On http://testsiteproducer:8000 (producer site), go to the User list. - Open the user document you are going to use as an Event Subscriber. Scroll down to the section labelled "API Access". In that section, generate keys for the user by clicking on Generate Keys button. You will get a prompt with the user secret, copy the user secret and save it with you. It will also generate an API key. 1. Generate Keys for the Event Subscriber on the Consumer Site - On http://test_site:8000 (consumer site), go to the User list and follow the same process specified in the previous step. 1. Create an Event Producer - The site which you want to subscribe to, is called as the Event Producer. Create an Event Producer document for the site you wish to get the updates from. - Go to: Home > Automation > Event Streaming > Event Producer. - Enter the site URL of the site you want to subscribe to, in the Producer URL field. - Add all the Document Types you want to subscribe to, in the Event Configuration child table. - If you want to have the created documents with the same name as it is on the remote Event Producer site, check the 'Use Same Name' checkbox in the child table against the required Document Type. - Set the Event Subscriber field to a user that will be used to create the documents fetched from the Event Producer. You need to create the same user both ways, i.e on the Event Consumer as well as the Event Producer site before creating the Event Producer. - Paste the API key and API Secret you generated in the first step (2.1) in the API key and API secret fields respectively. - Save. - After saving, an Event Consumer is created on the producer site (http://testsiteproducer:8000). The keys of the user on the consumer site are automatically copied to the Event Consumer document on the producer site in this process. 1. Approve Event Consumer on the Event Producer site - After the Event Producer has been created, an Event Consumer automatically gets created on the other site. By default all the Subscribed Document Types have the status as 'Pending'. In order to enable the Event Consumer to consume the documents of these Document Types, their Status needs to be updated to 'Approved'. - Go to: Home > Automation > Event Streaming > Event Consumer. - Once you open the Event Consumer document you will see all the Document Types that the consumer has subscribed to. Change the status from 'Pending' to 'Approved' for all the Document Types that you want to approve to be consumed. You can change the status to 'Rejected' if you do not want the documents of that Document Type to be consumed. - Save. Note: Document updates for Subscribed Document Types won't be synced unless they are Approved. 1. Offline access with single site If you have some places where internet connectivity is low, for example, a store in a remote area where sales invoices are generated and you want to sync these invoices from the store to the hosted account, you could setup offline syncing using the following steps: - Set up an OneHash local instance. - You need to have hosted account with your company set up. - Now create an Event Producer on the hosted account and set the producer URL to the URL of your local account. - Add whatever doctypes you want to sync in the Event Producer Document Types child table. - Approve the doctypes. | Features 1. Unsubscribe from the updates As an Event Consumer, if you wish to unsubscribe from the updates for any doctypes you had previously subscribed to, check unsubscribe against the doctype. You will not receive any more updates from the producer site for that particular doctype once you have unsubscribed. 1. Event Update Log Event Update Log logs every create, update, and delete for documents that have consumers on the Event Producer site. In order to view the Event Update Log: Go to: Home > Automation > Event Streaming > Event Update Log. - For 'Create' type the Update Type, Document Type, Document Name and the entire document (as JSON) is logged. - For 'Update' type the Update Type, Document Type, Document Name and the updated data (difference between the previous state and current state of the document) is logged. - For 'Delete' type only the Update Type, Document Type, and Document Name is logged. 1. Event Sync Log Like the Update Log, Event Sync Log logs every document synced from the Event Producer on the Event Consumer site. In order to view the Event Sync Log: Go to: Home > Automation > Event Streaming > Event Sync Log. A successfully synced event generates a log document with: - Update Type: Create, Update or Delete - Status: Sync Status - DocType - Event Producer: The site URL from where the document was created - Document Name - Remote Document Name: If 'Use Same Name' is unchecked - Use Same Name - Data: The document data as JSON A failed event generates a log doc with the above fields along with: - Error: The error because of which the document was not synced. - Resync Button: It also provides a 'Resync' button in order to resync the failed event. 1. Dependency Syncing Certain Document Types have dependencies. For example, before syncing a Sales Invoice, the Item and Customer need to be present in the current site. So, Item and Customer are dependencies for Sales Invoice. Event Streaming handles this by on-demand dependency syncing. Whenever any document is to be synced, it first checks whether the document has any dependencies (Link fields, Dynamic Link fields, Child Table fields, etc.). If that dependency is not fullfilled i.e. the dependent document (eg: Item) is not present on your consumer site, it will be synced first and then the Sales Invoice will be synced. 1. Naming Configuration Check the 'Use Same Name' checkbox to let the documents have same name on both Event Producer and Event Consumer sites. If this is not checked, then the document will be created using the naming conventions of the current site. ${color}[#ff0a47](Note: For Document Types that have naming series, it is advised to keep the 'Use Same Name' checkbox unchecked, to prevent naming conflicts. If this is unchecked, the Documents are created by following the naming conventions on the current site and the 'Remote Site Name' and 'Remote Document Name' custom fields are set in the synced document to store the Event Producer site URL and the document name on the remote site respectively.) 1. Mapping Configuration If you want to stream documents between an OneHash instance and another Frappe app for a particular Document Type which has the same structure but fieldnames are different in both the sites, you can use Event Streaming with Mapping Configuration. For this you need to first set up a Document Type Mapping: To access Document Type Mapping, go to: ++Home > Automation > Event Streaming > Document Type Mapping++ - Mapping for DocTypes with similar structure Mapping Name: Give a unique name to the mapping Local Document Type: The Document Type in your current site Remote Document Type: The Document Type on the Event Producer site which you want to sync In the Field Mapping child table: Local Fieldname: The fieldname in the Local Document type of your current site. Remote Fieldname: The fieldname in the Remote Document type of the Event Producer site which you want to map to the Local Fieldname. During the sync, the value of the remote fieldname gets copied to the local fieldname. - Default value for some field If your field is not mapped to any other remote fieldname and you always want the field to have the same value, set the set the same in the default value field. Event if you have set the remote fieldname, in case during the sync, remote field's value is not found and if the "Default Value" has been specified, it will be set. - Mapping for DocTypes having child tables If the field you are trying to map is a child table, you need to create another Document Type Mapping for the child table fields. Mapping Type: Select the Mapping Type as Child Table. Mapping: Select the Document Type Mapping document you created for the child table. - Mapping for DocTypes having dependencies (Link, Dynamic Link fields) If the DocTypes you are trying to map have any kind of dependencies like Link or Dynamic Link fields, you need to set up another Document Type Mapping for syncing the dependencies. For example, let's assume that the local doctype is Opportunity and the remote doctype is OneHash Opportunity. The field ++party_name++ (Link field for DocType Lead) in Opportunity is mapped to ++full_name++ (Data field) in OneHash Opportunity. During the sync, this Lead has to be created for the main Opportunity to sync. So you need to set up a mapping for this Link Field too. Mapping Type: In this case, the Mapping Type is Document.** Mapping: Select the mapping you just created. Remote Value Filters: You need to specify the filters that will fetch the exact remote document to be mapped. Like in this case, the remote DocType is OneHash Opportunity which can be uniquely fetched using name, phone number and country. The format is: { "remote fieldname": "field or expression from where we will get the value for that fieldname"} If you want to fetch the value from somewhere, start the expression with eval: Lastly, enable the 'Has Mapping' option in the Event Configuration child table in Event Producer against the required Document Type and select the Document Type Mapping you just created.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 19, 2024

Create certain documents automatically with the Auto Repeat feature of OneHash

Auto Repeat Auto Repeat feature helps you create certain documents automatically in a given time period. For Example: Assuming that you follow deferred expense system for some items. It requires you to create same Journal Entry every month to credit Deferred Expense account and debit Expense Account. You can create first Journal Entry manually for it, and then create auto-repeat transaction for it. To access Auto Repeat, go to: ++Home > Auto Repeat++ You can search auto repeat on the awesome bar. | How to set up Auto Repeat 1. Customize the Form - Go to: Home > Customization > Form Customization > Customize Form. - Select the form in which you want to allow creation of repeatable documents. - Check 'Allow Auto Repeat' to allow the creation of repeatable documents for that Form. This is necessary for the document type to show up in the Reference Document field under the Auto Repeat doctype. 1. Set up Auto Repeat - Go to Home > Settings > Automation > Auto Repeat > New. - Select the Reference Document Type, like Journal Entry or Sales Invoice, etc. - Select the Reference Document. This is the individual document that you want to repeat. - Set the Start Date and End Date (optional). If End Date is not specified, recurring documents will be created, unless the Auto Repeat is disabled. - Set the Frequency for creating repeatable documents (Daily, Weekly, Monthly, Quarterly, Half-yearly, Yearly). - Save. 1. Set up Auto Repeat directly from the document You can also set a document on Auto Repeat by clicking the Repeat option from the Menu in the Toolbar. ||| Note: If a document is already on Auto Repeat, the Repeat option is not available. Once you click on Repeat, a prompt for Auto Repeat will show up. Fill in the details and click on Save. | Features 1. Submit on Creation If the reference document type is submittable, you get an option called Submit on Creation. If this is checked, your document will be submitted on creation. 2. Notify by Email If you want to notify certain contacts whenever the recurring documents are created, you can check 'Notify by Email' in the Notification section of Auto Repeat. This will send the auto-generated recurring documents to the specified Email Addresses. Fields for the same are explained below: - Recipients: Defines the Email IDs of the recipients for recurring document creation emails. - Get Contacts: This button will fetch the contacts linked to the document that is set on Auto Repeat and fill up the Recipients field with the same. - Template: You can choose an Email Template for the email. This will fill up the Subject and Message fields as well. - Subject: Subject for your Email (example: Recurring ToDo created successfully). - Message: Message to be sent in the Email. - Preview Message: This button will show a preview of the message. - Print Format: Select a print format to define document view which should be emailed to customer. Note: If the document you are setting up Auto Repeat for, is submittable, ensure that "Allow Print for Draft" is enabled in Print Settings to receive the new recurring document in Auto Repeat Notification Email. If this is not enabled, you will be notified about the recurring document creation without the document. 1. Repeat on a particular day If the frequency is set as Monthly, Quarterly, Half-yearly or Yearly, then it will create recurring documents in the respective months on the same day as the 'Start Date' of Auto Repeat. If you want to create recurring documents on some other day then you can set one of the following: Repeat on Day: Day of the month on which recurring document will be created. For example, if frequency is Monthly and you enter 7 then it will generate recurring document on 7th of the respective month. Repeat on Last Day of the Month: This option is available as the last day of every month is different. For example, in a leap year last day of Feb is 29th, and it is 28th otherwise. If you check this option, it will create recurring documents on the last day of the respective months. 1. Ability to select weekdays for Auto Repeat Auto Repeat with Weekly frequency allows you to select the days on which you want the recurring documents to be created. 5. Dashboard You can see the Auto Repeat schedule in the Dashboard of Auto Repeat document. If you don't specify the End Date then the schedule will show only the Next Schedule Date. 6. Auto Repeat Frequency on the sidebar When a document is set on Auto Repeat you can see the Auto Repeat frequency on the sidebar. You can click on the status to see the linked Auto Repeat document. 7. Disable Auto Repeat If you check this field it will stop creating recurring documents and unlink the Auto Repeat document from the Reference Document.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 19, 2024

Milestone Tracking

||| Introduced in Version 12 You can automatically track milestones based on the lifecycle of a document if it undergoes multiple stages. The configuration for Milestone setting can be set in Milestone Tracking and each milestone is updated in Milestone To access Milestone Tracker, go to: ++Home > Settings > Milestone Tracker++ | Creating a Milestone Tracker 1. Click on New. 2. Set the Document Type to track (example: "Issue"). 3. Set the field that represents stages (example: "Status"). Note: A milestone stage can be defined by Link or Select properties. Once this is set, a new Milestone record is created every time the status of any issue is changed. The Milestone can be viewed in the timeline of the view: ||| Note: Milestones work independently of Versions. | Features Milestones can be a great source for reporting and notifying. For example, if Lead Qualification is a milestone on "Lead", milestones can help generate reports on the number of leads being qualified in a period. Using Milestones with Dashboards Used along with Dashboards, Milestones can help track the trends in milestones. For example, if "Qualification" is tracked as a "Lead Stage", a Dashboard on Milestone filtered by Qualification will show the trends of leads qualified. Using Milestones with Energy Points Energy Point Rules can be defined to automatically give Energy Points to users who achieve a milestone. This can be used to incentivize action on transactions at various levels. | 3. Related Topics 1. Dashboard: Get a quick view of the key performance indicators 2. How to use the Energy Point System?

By Frappe Content licensed CC-BY-SA 3.0
Last updated on May 26, 2025

What is the Assignment Rule?

||| Introduced in version 12 An Assignment Rule lets you set up automatic assignment of documents to Users. Assignment Rule will be useful in a scenario like—you have a support team and incoming support tickets. To assign the support tickets automatically amongst the employees who work on support, an Assignment Rule can be used. To access Assignment Rule, go to: ++Home > Settings > Assignment Rule++ | How to create an Assignment Rule To set up an automatic assignment: 1. Go to the Assignment Rule list, click on New. 2. Select the Document Type you want to assign automatically (for example Issue). 3. Write the "Description" that will be added to the To Do. 4. Select the condition for the assignment. You can write simple Python expressions for automatic assignment in the Assign Rule, Close Rule and Unassign Rule. You will have access to all the properties of the document and can use operators like >, <, ==, etc and also multiple conditions like _and _and or. Examples: status == "Open" issue_type == "Technical" and priority=="High" and status == "Open" 1. Select the assignment rule (Round Robin or Load Balancing). Round Robin: Assign each document to a User in sequence. Load Balancing: Assign new documents to the User who has the least number of assignments. 1. Select the list of Users to whom this Assignment Rule will apply. 7. Save. You can use properties of the document in the Description field that will be part of the assignment. Higher 'Priority' Assignment Rules will be applied first. Example: High Priority Issue File Upload not working has been assigned to you. Multiple Assignment Rules You can also set up multiple auto assignments for each Document Type, the one with the highest Priority will be applied first. Here is an example of an Assignment Rule. Set Document Type, Descriptions and Conditions. assignment-rule-with-higher-priority Setting Due Date for assignment You can auto set due dates for assignments based on the date field in the reference document. Example: If you want to set a due date on Issue assignment based on the "Resolution By" date of the Issue, you can do so by selecting "Resolution By" field in _ Due Date Based On_ option in Assignment Rule. ||| Notes: "Due Date Based On" option will not be available if "Document Type" is not yet selected or if the selected Document Type does not have any "Date" or "Datetime" field. Due Date in the assignment/ToDo will be updated whenever the "Due Date Based On" field value is updated in the reference document. | 2. Related Topics 1. How to create a workflow? 2. What are Workflow Actions?

By Frappe Content licensed CC-BY-SA 3.0
Last updated on May 26, 2025

Chat: How to send and receive messages using our messages tool?

Chat The Chat room is a tool, which allows you to send and receive messages within your OneHash account. ++Explore > Tools > Chat++ If you send a message to a user, and the user is logged in, it will appear as a pop-up message and the unread messages counter in the top toolbar will be updated. This tool can also be used to maintain internal communications within your organization. To start a Chat: - You can click on the Chat icon on the Desk. - When you do this, a Chat Box will Pop Up, which will have a list of all the Users you have been chatting with. This tool can be used to maintain internal communications within your organization. To start a Chat: - You can click on the Chat icon on the Desk. - When you do this, a Chat Box will Pop Up, which will have a list of all the Users you have been chatting with. - To start a new chat, simply type the name of the User in the search bar of the chatbox and start communicating. When you are using the Tool for the first time, you will be required to start a New Chat in the following way: 1. Click on 'New' in the Chat Box. 2. Select Chat Type: Group or Direct Chat 3. If you select Direct Chat, you will be required to add the name of the User with whom you wish to start the chat. 4. If you select Group, you will be required to add the name of the group and the Users that you need to add to the Chat box. 5. Click on create to create the New Group or the New Direct Chat. Follow the same steps every time you wish to start a new chat. | Chat Rooms - For every new Chat that has been opened in the system, a Chat Room gets created. A list of all your Chat Rooms can be fetched in the Chat Room List when you search for it from the Global search. | Chat Message - Every message that has been sent by a User gets reflected in the Chat Message List. Herein, you will also be allowed to make changes to a sent message. | Chat Profile Report - This report shall show you a list of all the active profiles in your OneHash account with whom you can start a chat. - To start a new chat, simply type the name of the User in the search bar of the chatbox and start communicating.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 19, 2024

How to request the deletion of data?

Personal Data Deletion As a part of GDPR compliance, OneHash has Personal Data Deletion. Personal data deletion tool enables a user to anonymize all the personally identifiable data a user has generated while using OneHash. That is, personally identifiable information will be randomized. This includes personally identifiable data from your user account like: username, full name, birth date, phone numbers, mobile numbers, location, interests, bio, email signature, Email, Contact, Address, Communication, etc. It also includes data from Leads and Opportunities, the details you have saved like phone numbers, mobile numbers, fax, website, and name. However, this excludes data that is required by law to be maintained by a business. | How to request the deletion of user data 1. To begin deleting personally identifiable data, you need to visit [host-name]/request-to-delete-data (e.g. example.onehash.com/request-to-delete-data) in the URL field. 2. Enter the email associated with your OneHash account. After submitting your request, you will receive a success response. 3. This will send an email with a verification link to delete data to the email address associated with the user. 1. Once the user clicks on the verification link. A confirmation message will be displayed. | How deleting user's personal data works The request to delete data is recorded in the doctype "Personal Data Deletion Request". This doctype maintains three states of status to complete the process of removal of user data. 1. Pending Verification This status indicates that the user has requested data deletion via the web-form. However, verification of this request is still pending. Search for Personal Data Deletion Request from the search bar. 2. Pending Approval This indicates that the user has verified the request via email. This enables the option of "Delete Data" for System Managers. 3. Deleted This indicates that the System Manager has clicked on the "Delete Data" button. This means that the user's personally identifiable data has been anonymized. | Setting SLA for Personal Data Deletion Request You can also set an SLA for Personal Data Deletion Request through Website Settings. This will appear on the web form description. 1. Go to Website Settings 2. Scroll to the section called Account Deletion Settings 3. In the Account Deletion SLA (Days) field set the number of days within which users request for Account Deletion will be fulfilled. 4. If you enable Show Account Deletion link in My Account page, the form link will be visible to users on the My Account Page of the website | Related Topics 1. Personal Data Download

By Frappe Content licensed CC-BY-SA 3.0
Last updated on May 26, 2025

How to use the Energy Point System?

Energy Points System Energy Points System is a rating/karma system that you can enable for your organization. This system can be used to track the performance of each user. || To enable Energy Point System go to Energy Point Settings check Enabled. | 1. How to use the Energy Point System? To start using this system you need to create some Energy Point Rules (see section 3. How to create Energy Point Rules?) so that users can get energy points based on their activities. | 2. What are Energy Point Rules? Energy Point Rules store the information about the activity and the value of points to be allocated. Energy Point Rule has the following fields: ||| Note: User Field and Multiplier Field are fetched from the reference doctype. | 3. How to create Energy Point Rules? Search for Energy Point Rule > create new Energy Point Rule Take a look at the following example rule: The screenshot above is the rule for Issue Closing. So when any user closes the issue he/she will be rewarded with 10 points. Other cases can be covered similarly. Suppose, you want to create a rule where a user gets points on completing a task, you can do so by creating following rule | 4. Features 1. Auto Point allocation Based on energy point rules created, users will automatically get points when they complete activities which are tracked using the Energy Point System. 2. Review System Review system can be used to "Appreciate" or "Criticize" someone's work. Check out the following GIF for the review process: For reviewing, the user needs to have review points which can be assigned by System Manager through Energy Point Settings. You can also setup auto review point allocation from 'Energy Point Settings': 3. Leaderboard Go to Social Home > Leaderboard (side navigation bar) The leaderboard shows the user's standing in the organization.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 19, 2024

How to add Users?

The System Manager can add users. To add users go to: ++Home > Users and Permissions > User++ There are two main types of users: Website users: Customers, Suppliers, Students, Etc. who have access only to the portal and not to any modules. System Users: People using OneHash CRM in the company with access to modules, company data, Etc. Read more about difference between system and website user . Under User, a lot of info can be entered. For the sake of usability, the information entered for web users is minimal: First Name and Email. An Email address is the unique key (ID) identifying the Users. | How to Create a New User? 1. Go to the User list, click on New. 2. Add an Email address and name of the user. 3. Click Save. Details like Username and Language can also be changed. | Features 1. Setting Roles - After saving, you will see a list of roles and checkboxes next to them. Just check the roles you want the user to have and save the document. The roles have pre-defined permissions to know more about roles click here . - You can set Role Profiles to use as a template that selects multiple roles together. 2. More information More information about the employee can be set from this section: - Gender - Phone - Mobile No - Birth Date - Location - Interests - Bio - Banner Image Ticking on 'Mute Sounds' will mute sounds that play on interacting with documents. The user may need to do a Settings > Reload for the changes to take place. 3. Change password - Set New Password: As a System Manager, you can set a new password for the user if it needs to be changed. - Send Password Update Notification: Send an email notification to the user that their password has been changed. - Log out from all devices while changing Password: When changing the user's password, this logs out the user from PC and any mobile device they may have logged into. 4. Document Follow With this option, you can follow various documents in the system and get email notifications when they are updated. Know more here . 5. Email Settings - Send Notifications for Email threads: The user will get notifications for Email conversations in document types like Opportunities. - Send Me A Copy of Outgoing Emails: Sends the user a copy of their emails. This is useful for keeping track of the sent emails. - Allowed In Mentions: Allow user's names to appear in thread conversations so that they can be mentioned using '@'. - Email Signature: Adding an email signature here will default for all outgoing emails for the user. This is different from a footer which is set from the Company master. 6. Email Inbox - Subscribe the user to different mailing lists of your company from this section. Add a new row and select the mailing list to assign this user. For example, mailing lists can be jobs, support, sales, Etc. To know more about Email Inbox, click here. 7. Allow Module Access - Users will have access to all modules for which they have role-based access. If you want to restrict access to specific modules for this user, un-check the modules from this list. **2.7.1 Module Profiles ** - Role Profiles act as a template to store and select access to multiple modules. This Role Profile can then be assigned to a User. For example, HR Users will have access to multiple modules like HR, Payroll, Etc. Role Profiles are helpful to provide access to multiple modules at once when adding multiple users. 8. Security Settings - ** Simultaneous Sessions**: Simultaneous login sessions, the user is allowed. You can use the same set of credentials for multiple users by allowing more sessions. This can be restricted from System Settings globally. For cloud accounts, the total number of simultaneous sessions cannot exceed the total number of subscribed users. - User Type: If the user has any role checked other than Customer, Supplier, Patient, or Student, they automatically become a System User. This field is read-only. - Login After, Login Before: If you wish to give the user access to the system only between office hours or during weekends, specify it here. For example, if office hours are from 10 am to 6 pm, set the Login After, Login Before hours as 10:00 and 18:00. - Restrict IP: Restrict user login to the IPs specified here. This can be used so that the user can log in only from office computers. Multiple IPs can be added separated by commas. This section also shows other details like Last Login, Last IP, and Last Active time for the user. 9. Third-Party Authentication - This will allow users to use Facebook, Google, or GitHub to log in. To use this feature, signup for a developer account with Facebook, Google, GitHub, Etc. Create an app on their console, specify an app name, the originating URL and callback URL, copy the client ID and secret client info here to start using. For more details, go to this page. - Use Facebook, Google or GitHub Authentication to login to Frappe, and your users will be spared from remembering another password. - The system uses the Email Address supplied by these services to match with an existing user in Frappe. If no such user is found, a new user is created of the default type Website User if signup is not disabled in Website Settings. Any System Manager can later change the user type from Website User to System User to access the Desktop. Login screen with Social Logins enabled To enable these signups, you need to have Client ID and Client Secret from these authentication services for your Frappe site. The Client ID and Client Secret are to be set in Website > Setup > Social Login Keys. Here are the steps to obtain these credentials. ++Use https://{{yoursite}} if your site is HTTPS enabled++ FACEBOOK 1. Go to https://developers.facebook.com 2. Click on Apps (topbar) > New App, fill in the form. 3. Go to Settings > Basic, set the Contact Email and save the changes. 4. Go to Settings > Advanced, find the field Valid OAuth redirect URIs and enter: http://{{yoursite}}/api/method/frappe.www.login.login_via_facebook 5. Save the changes in the Advanced tab. 6. Go to Status & Review and switch on "Do you want to make this app and all its live features available to the general public?" 7. Go to Dashboard, click on the show button besides App Secret, and copy the App ID and App Secret into Desktop > Website > Setup > Social Login Keys GOOGLE 1. Go to https://console.developers.google.com 2. Create a new Project and fill in the form. 3. Click on APIs & Auth > Credentials > Create new Client ID 4. Fill the form with: - Web Application - Authorized JavaScript origins as http://{{yoursite}} - Authorized redirect URI as http://{{yoursite}}/api/method/frappe.www.login.login_via_google 1. Go to the section Client ID for web application and copy the Client ID and Client Secret into Desktop > Website > Setup > Social Login Keys GITHUB 1. Go to https://github.com/settings/applications 2. Click on Register new application 3. Fill the form with: - Homepage URL as http://{{yoursite}} - Authorization callback URL as http://{{yoursite}}/api/method/frappe.www.login.login_via_github 1. Click on Register application. 2. Copy the generated Client ID and Client Secret into Desktop > Website > Setup > Social Login Keys OFFICE 365 1. Go to https://portal.azure.com 2. Create a new Azure Active Directory > App Registration. 3. Click on New Application Registration 4. Fill the form with: - Application Name - Application Type - Web app / API - Single Sign-on URL as http://{{yoursite}}/API/method/frappe.www.login.login_via_office365 1. Enable Multi-Tenant for the added App. 2. Go to the section Application ID and copy the Client ID and copy Client Secret by adding a new Password into Social Login Key 10. API Access - You can generate API Secret keys from this section using the Generate Keys button. This can be used to access your account's data from another application, for example, an offline POS system. 11. After Saving - After saving a user, these buttons will be seen on the dashboard area of the User master. - Permissions -> Set User Permissions: This Will take you to the User Permissions page of Bruce from where you can restrict Bruce's access to documents. - View Permitted Documents: This Will take you to the 'Permitted Documents For User' report for this user. Here you can see which documents does Bruce have access to them. For example, the list of Sales Orders Bruce has access to will be displayed on the selected Sales Order. - Password -> Reset Password: An email with instructions to reset the user's password will be sent to the user's Email Account. -> Reset OTP Secret: Reset OTP Secret for logging in via Two Factor Authentication. Create User Email will let you create an Email Account for the user based on the email entered in the User master. | Login Methods - In System Settings, under the Security section, if you check the 'Allow Login using Mobile No' checkbox, a mobile number can also be used to log in. While a Mobile No will be unique, it will not be treated as a user ID. - Login with Email: - Login with Email or Mobile: After adding these details, save the user. How to create Users ||| 4. **Related Topics ** 1. Role Based Permissions 2. User Permissions 3. Document Follow

By Frappe Content licensed CC-BY-SA 3.0
Last updated on May 26, 2025

Email Group

Email Group An Email Group is a list of subscriber email IDs to which you send newsletters. You can manage subscribers by grouping them into different groups. You can group existing and potential customers into different groups based on their territory or products they are interested in. You can group the email ID of all employees so that you can share information with them. To access the Email Group list, go to: ++Search Email Group List in the awesome search bar++ | 1. How to Create an Email Group 1. Go to the Email Group list and click on New. 2. Enter 'Title'. 3. Click on 'Save' 4. Click on Action > Add Subscribers. 5. Enter Email Addresses. 6. Click on 'Add' | 2. Features 2.1 Import Email IDs from Transactions You can import email IDs from existing transactions. Click on Action > Import Subscribers and select a transaction like Lead. Click on Import and all the email IDs mentioned in the email IDs will be imported. 2.2 Email Templates You can specify the confirmation email and welcome email template for the email group. A confirmation email will be sent to confirm a person's subscription to your newsletter. The welcome email is sent when the person confirms their subscription to your email newsletter. Confirmation Email Template: This email template is used to replace the default template sent for newsletter subscription. The confirmation email generated via this template is sent when someone subscribes to the Email Group Website. Welcome Email Template: Whenever a subscriber is added to an email group after confirmation, the email template set here will be sent to them. How to create email group

By Frappe Content licensed CC-BY-SA 3.0
Last updated on May 26, 2025

Newsletter

Newsletter Newsletter is an email which is sent to a specific group of subscribers periodically. In the context of CRM, its is an informational and product-focused email that is sent to existing and potential customers with an intention of softly pushing the subscriber to do required actions. Newsletter can also be used to share information to employees, investors etc. You need to create Email Groups before sending the newsletters. To access the Newsletter list, go to: ++Home > Settings > Email > Newsletter++ | 1. How to Create a Newsletter 1. Go to the Newsletter list and click on New. 2. Select the Email Group in RECIPIENT table. 3. Enter 'Subject'. 4. Enter 'Message'. 5. 'Publish' the newsletter to make it available on the web. 6. Tick 'Send Unsubscribe Link' if you would like to include unsubscribe link in the email. 7. 'Send Web View Link' will include a link in the email to open the newsletter on the web. This option is only visible when the newsletter is published. Below is the screenshot of the email received with link to unsubscribe and a link to open the email on the web. | 2. Features 2.1 Create Subscriber Groups You can manage subscribers by grouping them into different Email Groups. You can select multiple email groups in the 'RECIPIENT' tables in the newsletter. 2.2 Schedule Send You can choose to send your newsletter at any future datetime by specifying time in hourly steps. 2.3 Test Newsletter Before Sending to Subscribers Once the newsletter is ready you can provide a 'Test Email Address' and click on 'Test'. You can review the newsletter received in the test email, verify it and then send it to all subscribers by clicking on 'Send'.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 19, 2024

Email Campaign

Email Campaign An Email Campaign is a coordinated set of emails sent to leads or contacts according to a particular schedule. Email Campaigns are still one of the most effective ways to reach your Customers, Contacts or Leads and keep them engaged. For example, you could set up Email Campaigns for introducing your product to the customers, with every email revealing an interesting feature of your product. To create an Email Campaign, go to: ++Home > CRM > Campaign > Email Campaign++ | 1. Prerequisites Before creating and using Email Campaign, these need to be created first: 1. Campaign 2. Lead or Contact or Email Group | 2. How to Create an Email Campaign 1. Go to the Email Campaign list, click on New. 2. Select the Campaign for which you want to set up an Email Campaign. 3. Set the 'Start Date' for the Email Campaign. 4. In 'Email Campaign For', select whether you want to set up Email Campaign for a Lead or a Contact or for an Email Group to send to multiple email contacts. 5. In 'Recipient', select the respective Lead or Contact or Email Group for whom you want to start the Email Campaign. 6. In 'Sender', select the user of the system who should be the sender of the emails. 7. Save The above Email Campaign is for the following Campaign: || Note: The Send After (days) field in Campaign specifies the day on which email is to be sent relative to the Start Date of Email Campaign. Notice the 'End Date' in the above Email Campaign. It is '26-07-2019', which is 4 days after the 'Start Date', '22-07-2029', as the Campaign Schedule ends on day 4. 2.1 Create multiple Email Campaigns for a Campaign You can also create new Email Campaigns for different Leads or Contacts for the same Campaign though the Campaign Dashboard. 1. Go to the Campaign for which you want to create Email Campaigns. 2. Click on + in front of Email Campaigns to create a new Email Campaign for the Campaign. | 3. Features 3.1 Linked Communication When emails are sent to the respective leads or contacts, Communication is linked to the Email Campaign document. You can view all the emails sent in your document. 3.2 Unsubscribe from Email Campaign If a lead or contact does not want to continue getting emails regarding the campaign, he or she can unsubscribe from the Email Campaign via the unsubscribe link sent with the email. When the lead or contact unsubscribes, the status of the Email Campaign document changes to 'Unsubscribed'. When the lead or contact unsubscribes, the status of the Email Campaign document changes to 'Unsubscribed'. 3.3 Use Lead or Contact fields in Email Template The Email Template has the context of the document you have specified in the 'Email Campaign For' field. If you want to display the fields from your Lead or Contact document in your Email Template you will have to use ++doc.fieldname++ for the same. For example, if 'Email Campaign For' is 'Contact', you can mention the 'first name' of your Contact as ++doc.first_name++ in the Email Template. 3.4 Status indication Status indicates the state of the Email Campaign, the various Statuses are: - Scheduled: When the Email Campaign has not yet started but scheduled on a future 'Start Date'. - In Progress: The campaign would be marked as 'In Progress' between 'Start Date' and 'End Date' of the campaign. - Completed: After the 'End Date' of the campaign, the status will be changed to 'Completed'. - Unsubscribed: When the Lead or Contact unsubscribes from the Campaign How to create Email Campaign

By Frappe Content licensed CC-BY-SA 3.0
Last updated on May 26, 2025

Sales Persons in the Sales Transactions

Sales Persons in the Sales Transactions In OneHash, Sales Person master is maintained in tree structure. Sales Person is selectable in all the sales transactions. Sales Persons can be updated in the Customer master as well. On selection of Customer in the transactions, Sales Persons as updated in the Customer will fetch into sales transaction. Sales Person Contribution If more than one sales persons are working together on an order, then contribution (%) should be set for each Sales Person. On saving transaction, based on the Net Total and Contriution (%), ++Contribution to Net Total++ will be calculated for each Sales Person. Total % Contribution for all Sales Person must be 100%. If only one Sales Person is selected, then % Contribution will be 100. Sales Person Transaction Report Check Sales Person's Transaction report from: ++Selling > Standard Reports > Sales Personwise Transaction Summary++ This report can be generated based on Sales Order, Delivery Note and Sales Invoice. It will give you total amount of sale made by an employee. Sales Person wise Commission OneHash only provide total amount of sale made by a Sales Person. If you offer commission to Sales Person, you should add Sales Person as Sales Partners in OneHash. For Sales Partners, you can define Commission (%). On selected on Sales Partner in a sales transaction, based on Net Total, Commission Amount is calculated as well. You can check Sales Partner's commission report from: ++Accounts > Standard Reports > Sales Partners Commission++

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 19, 2024

CRM Reports

CRM Reports CRM module's reports feature helps users get the information about the prospects. Using the following reports, an OneHash user can analyze the data about a prospect's history with a company and will help users build strong relationships with the prospects. These are a collection of reports under CRM > Reports. | 1. Lead Details This report provides lead name, address, contact details, lead source, territory, and other details. | 2. Sales Funnel By using the sales funnel report, and by quantifying the number of prospects at each stage of the process, you can get an idea of your potential customers. For more details check Sales Funnel. | 3. Prospects Engaged But Not Converted Using this report, user gets the information about the leads who have shown interest in the business with you but due to some reason they were not converted into the customers. | 4. First Response Time for Opportunity In this internet era, we all expect a quicker response time to any of our queries. This report gives you the details about time taken by sales executives for response to an opportunity. Lesser the average time for first response the better. You can input the date range for which you would like to analyze the minutes to first response. The line graph is shown on the top and date wise details at the bottom. | 5. Inactive Customers This report shows the list of customers who have not purchased since specific number of days. You can mention the number of days in 'Days Since Last Order' filter. Also you can mention if Sales Order or Sales Invoice is to be considered in DocType filter. | 6. Address And Contacts Select Customer in 'Party Type', the report will show address and contact details of all customers. You can also select specific customer in 'Party Name' and report will show address and contact detail of that specific customer. | 7. Lost Opportunity This report provides Lost Opportunity details like opportunity from, party, customer name, lost reasons, sales stage, territory, and other details.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 19, 2024

Sales Person Target Allocation

Sales Person Target Allocation It is the assignment of Sales Persons to an item or a territory. Along with the management of Sales Persons, OneHash also allows you to assign target Sales Persons based on Item Group and Territory. Based on target allocated and actual sales booked by Sales Person, you will get the Target Variance Report for the Sales Person. ||| 1. Sales Person - Target Allocation 1.1 Open Sales Person's Master To allocate target, you need to open specific Sales Person master. ++Selling > Sales Partners and Territory > Sales Person > Edit++ 1.2 Allocate Target In the Sales Person master, you will find table a called Sales Person Target. In this table, you should select Item Group, Fiscal Year, Target Qty, Target Amount, and Target Distribution. You can give target in amount or quantity, or both. Item Group can also be left blank. In this case, the system will calculate target based on All Item Groups. Target Distribution You can spread the target across months. For this create a new monthly distribution, you can see the option when you click on the Target Distribution field in the Targets table. For example, a target of selling 1,000 units for first quarter of the Fiscal Year 2019-2020 as shown in the preceding screenshot. 1.3 Report - Sales Person Target Variance To check this report, go to: ++Selling > Other Reports > Sales Person Target Variance Item Group-wise++ This report will provide you variance between target and actual performance of Sales Person. This report is based on Sales Order report. Here, as per the report, allocated target to Sales Person was roughly 83 in quantity for a month, but he has achieved a target of 80 when the report is being viewed, hence the variance report is shown accordingly. || Note: For the report to reflect correct details, you need to link a Sales Person to a Sales Order, it's present in the Sales Team section of Sales Order. The Sales Order has also has to be in the submitted stage. ||| 2. Sales Person - Territorywise Target Allocation For allocating Territory-wise targets to Sales Person, select the specific Sales Person in the Territory master. This Sales Person is entered just for the reference. Sales Person details are not updated in the variance report of Territorywise Target Allocation. 2.1 Go to Territory master ++Selling > Settings > Territory > (Edit specific Territory)++ In the selected Territory, you will find a field to select Territory Manager. This field is linked to "Sales Person" master. 2.2 Allocating Target Target Allocation in the Territory master is similar to Sales Person master. You can follow the same steps given in section 1.2 Allocate Item Groupwise Target to specify target in the Territory master also. 2.3 Report - Territory Target Variance Item Groupwise This report will provide you variance between target and actual performance of Sales in particular territory. This report is based on Sales Order report. Though Sales Person is defined in the Territory master, its details are not pulled in the report. || Note that the Territory of the Customer/Customers must be set accordingly for this report to work. For example, in the following screenshot, the target was approx eight units and five was achieved, hence the variance is three. ||| 3. Target Distribution To create a new Monthly Distribution, go to: ++Accounting > Monthly Distribution++ Target Distribution document allows you to divide allocated targets across multiple months. If your products and services are seasonal, you can distribute the sales target accordingly. For example, if you are into umbrella business, then target allocated in the monsoon season will be higher than in other months. You can link Monthly Distribution while allocating targets in Sales Person and in Territory master.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 19, 2024

Role and Role Profile

Role and Role Profile A Role defines the permissions for accessing various documents in OneHash. - Roles define a set of permissions which can be set from the Role Permissions Manager. The most commonly used roles are already defined in OneHash. - You can use the system with them. If needed, you can add more roles. - For example, if you assign the Sales User role to a user, they'll be able to access documents like Quotations and Sales Orders since the permissions are already set for the role of Sales User. Role profiles store different roles so that multiple roles can be assigned at once. Role Profiles act as a template to store and select multiple roles. This role profile can then be assigned to a user. For example, a Sales Supervisor will have the roles Employee, Sales Manager, Sales User, and Sales Master Manager. Role Profiles are useful to assign multiple roles at once when adding multiple employees. To access Role, go to: ++Home > Users and Permissions > Role++ | 1. How to add a Role 1. Go to the Role list, click on New. 2. Enter a name for the role. 3. Choose whether the role has desk access. A role that has desk access can access OneHash modules and the company's documents. The level of access depends on the roles assigned to the user. 4. Click Save. - You can add two-factor authentication for the role and also restrict it to a specific domain. From here, you can go to the Role Permissions Manager and set permissions for the role across different DocTypes. | 2. How to add a Role Profile To access Role Profile, go to: ++Home > Users and Permissions > Permissions > Role Profile++ 1. Go to the Role Profile list, click on New. 2. Enter a name. 3. Select the roles you want to assign to this profile. 4. Click Save.

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 19, 2024

Integration of OneHash with Pabbly Connect

Automation is growing with lightning speed and rightly so because, in this fast-moving world, businesses need to pace up their operations to meet the ever-changing customer demands. To fill the gap between your business and automation, OneHash joins with Pabbly Connect. We are excited and thrilled to announce that we are integrating with Pabbly Connect, a global hub for marketing tools where users can get standard logins and sign-ups for all their essential applications. This integration will benefit the users of both Pabbly Connect & OneHash to manage their work more efficiently, reduce redundancies, less time in transferring important data between various applications, streamline workflows, and leverage automation. How To Integrate OneHash With Pabbly Connect: Users can easily exchange data between any application and OneHash CRM or OneHash ERP using Pabbly Connect. To import data from a particular app to OneHash ERP software, you can use the following steps: ‍Step 1: Go to connect.pabbly.com/dashboard and click on “Create Workflow” Go to connect.pabbly.com/dashboard and click on “Create Workflow”  Step 2: ‍ Enter your workflow name and click on “Create” Enter your workflow name and click on “Create” Step 3: After clicking on “create”, you will enter a dashboard where you’ll find multiple apps connected with Pabbly. Choose the app from where you want to import the data: Choose the app from where you want to import the data Step 4: ‍ After selecting the first app, choose the second app, i.e., OneHash ERP software. OneHash ERP software Step 5: ‍ Select a trigger and click on “Connect” ‍ Step 6: After clicking on “connect”, you will find the following screen where you have to enter the API Key and URL of the selected app for data import and click on “save”. following screen where you have to enter the API Key Step 7: Next, go to OneHash ERP, select “Add New Connection”, enter the domain, API Key, and API Secret and click on “save.” enter the domain, API Key, and API Secret Step 8: The final step is field mapping where you need to enter details like email Id, company name, lead name, etc., and you’re done. Save it and your data will start flowing! final step is field mapping Transferring data from any app to OneHash ERP is quite effortless with Pabbly. Similarly, you can also export data from OneHash to any other app by selecting OneHash as the primary app and the app you want to send data to as a secondary app and following the same procedure. ‍ Advantages For Users ‍ The integration between Pabbly Connect and OneHash will bring many perks for the users. One of the major perks is time-saving. The integration will allow users to quickly exchange data between apps in just a few clicks. ‍ This integration will also reduce the complications users generally face when transferring data manually. The field mapping process required for data transfer can be long and tedious, but thanks to this integration, our users will be able to easily transfer their data and manage it more efficiently. ‍ Another benefit is that users can easily manage multiple apps efficiently on a single platform and easily exchange data between the teams and keep all the members in a loop. At OneHash, we believe in automating important business operations to improve efficiency and remove redundancies. Both Pabbly Connect and OneHash are moving on the path of making the lives of business owners and employees easier and thus, this integration means a lot to both organizations. ‍ We hope this integration will ease your everyday operations and you’ll be able to make the most of it!

By Frappe Content licensed CC-BY-SA 3.0
Last updated on Jun 18, 2025