This page discusses some very practical steps in using eLink with Kashflow, by considering how to enter, view and maintain Kashflow data using eLink. So, we are going to discuss the steps necessary with reference to each data type.
Kashflow Nominal Codes and Products
Kashflow nominalcodes and products are used to indicate the category of income or expenditure each item belongs to. All of this information originates in Kashflow, and is propagated to eLink during synchronisation. Kashflow nominalcodes and products are represented by eLink products. When a quote, or invoice is prepared, each item in the quote or invoice will reference the appropriate eLink product. So, it is important that eLink mirrors the Nominalcodes and Products accurately. Failure to do so would cause serious synchronisation issues.
Due to restrictions in the Kashflow system, it is not possible to propagate changes to the nominalcode and products in eLink to Kashflow. So, all changes to nominalcodes and products MUST be made in Kashflow, and then propagated to eLink using the synchronisation system. This restriction is not too serious as changes in this area tend to be infrequent once the system has been set up.
Kashflow Customers
Kashflow has one record type to represent all customers. eLink has two: companies and contacts. In order to bridge the difference between the two systems, it is helpful to think of customers as being of two basic types: commercial and domestic. A commercial customer will be an organisation with a name and (probably) one or more contact persons. A domestic customer, on the other hand, will simply be a person with a name. Both types of representation are valid, so it is important to recognise the need to handle both domestic and commercial customers.
Initial Setup
Customer Data Originating from Kashflow
If customer data is initally held in Kashflow, and is to be propagated to eLink, it is important to conduct an initial review of the data to ensure it will propagate sensible. The main thing to look for is the customer name and contact data.
- for Commercial Customers, a contact name should be specified. If no contact name is known, put something in the contact field so that the synchronisation process will think there is a contact person and so recognise this is a commercial organisation and so will create a company record in eLink.
- for Domestic Customers, the customer name should be the full name of the customer, and the contact field should be empty. The fact that the contact field is empty will be detected by the synchronisation process and will cause the customer to be represented as a contact record in eLink.
NOTE: it is important to get this data organised correctly before initial synchronisation. Once synchronisation has processed the data, there will be no simple means of changing the setup.
Customer Data Originating from eLink
Each company record that is to be propagated to kashflow has to be marked as being a Kashflow customer. This is done by selecting the ‘Customer@KF’ custom field type in those company records. Any company records not marked in this manner will not be propagated to Kashflow. Furthermore, each company record marked in this manner must be linked to a contact record containing the name and email address of the contact. Note that these contact records must NOT have the ‘Customer@KF’ field type set.
Each contact record representing a domestic customer will need to me marked with the ‘Customer@KF’ record type and must not be linked to a company record.
Automated Data Marking
In cases where these is a lot of pre-existing customer data, marking the records in the manner described above would be tedious and lengthy if done one at a time. Fortunately, it is likely that the process can be automated, assuming the data is clean and consistent in the first place. Here are a couple of SQL queries that may be helpful:
The first query identify all contact records NOT linked to company records and marks them as Kashflow domestic customers.
update cont set ftype='Customer@KF' where not exists (select * from cy_cont where cy_cont.idcontact = cont.idcontact)
The second query identifies all company records linked to contact records and marks them as kashflow commercial customers.
update cy set ftype ='Customer@KF' where exists (select * from cy_cont where cy_cont.idcontact = cont.idcontact)
These queries cannot be run from within eLink directly, but can be applied by engineering access to the eLink databases. Please contact us for assistance and we will be happy to provide you with support.
The main difficulty in converting an existing eLink contact/company database for use with Kashflow is identifying which contacts are suppliers and which are customers (and which are neither). To some degree, this has to be a manual process of reviewing the company data and marking the record accordingly.
Note that in eLink it is possible for a particular company to be BOTH a customer AND a supplier. If this is done, the synchronisation will automatically create two separate records for the same company in Kashflow – one customer record and one supplier record. Furthermore, these three records will be correctly synchronised if changes are made. In fact, if a company’s Supplier record is ammended in Kashflow, those changes will be propagated to eLink at the next synchronisation, and will then be propagated back to Kashflow on the synchronisation after that, so changing the company’s supplier record in Kashflow will change the corresponding company record in eLink, which in turn will change Kashflow’s customer record.
As an aside, if a particular company has customer and supplier records in pre-existing Kashflow data, synchronisation will treat them as two separate companies in eLink, so there will be four records in the system, rather than three.
So, the overall process of preparing a pre-existing eLink database for use with Kashflow could work along the following lines:
- Mark all contact records which are not associated with company records as Kashflow Customers, representing the domestic customer data.
- Manually review all the company records, identifying the suppliers and marking them either as suppliers or as suppliers and customers, as appropriate.
- Mark all the other company records as customers.
- Review the final results and unmark any that should not be deemed customers, e.g. personal contacts etc.
The above process assumes that the majority of company records refer to customers. If this is not the case, then switch the process so that the manual process involves marking the customers and the subsequent automated step involves marking the suppliers.
Trial Synchronisations
If data is pre-existing in one system and not the other, it is possible to have several goes at synchronising the data, clearing out the data after the attempts. For data originating the Kashflow, deleting the eLink data involves deleting contact, companies, document and project who have Kashflow field types.
For data originating in eLink, in addition to clearing the data in Kashflow, it is necessary to clear the synchronisation markers in the eLink records (without deleting the records themselves). The synchronisation markers take the form of Kashflow identifiers. These are by default, null and are changed when the data is synchronised to Kashflow. Returning them to a null value will cause the system to attempt to create a new set of records in Kashflow.
Adding a Domestic Customer using eLink
- Create a contact record
- Fill in the name, address etc
- Apply the changes, in order to save them
- Select the custom fields option
- Choose the Customer@KF custom field type
- Save the changes.
Note: do not fill in any of the custom data fields (other than perhaps the Payment Terms field). All these other fields will be populated when the record is synchronised with Kashflow.
Adding Commercial Customers using eLink
- Create a company record
- Fill in the name, address etc.
- Apply the changes in order to save them
- Select the custom fields option
- Choose the Customer@KF custom field type
- Save the changes
- Click the contact button to associate a contact with this company
- In the search field, type the surname of the contact
- Assuming the contact does not already exist, create a new record for the contact
- Enter the full name and email address of the contact. You may enter other data, but this is not used by the kashflow integration system.
- DO NOT mark this contact record as being a Customer@KF record type.
Kashflow Suppliers
- Create a company record
- Fill in the name, address etc.
- Apply the changes in order to save them
- Select the custom fields option
- Choose the Supplier@KF custom field type
- Save the changes
- Click the contact button to associate a contact with this company
- In the search field, type the surname of the contact
- Assuming the contact does not already exist, create a new record for the contact
- Enter the full name and email address of the contact. You may enter other data, but this is not used by the kashflow integration system.
- DO NOT mark this contact record as being a Supplier@KF record type.
Kashflow Purchase Invoices
These are the steps necessary to create a Kashflow purchase invoice in eLink:
- Create a new Document
- Enter a name for the purchase invoice and apply the change
- Select the custom field option and select General@KF and Purchase@KF
- Attach a Supplier Company record to the document
- Apply the changes
- Note that it is unnecessary to fill in any of the custom data fields, but it may be appropriate to set the invoice and due dates and the supplier reference (e.g. the Supplier’s invoice number). Do not enter an invoice number as this will be allocated by Kashflow.
To add lines to the purchase invoice:
- Press the attach product button
- Choose a NominalCode or Kashflow product (confirm both are applicable)
- Fill in the details for the product. Note the totals are automatically calculated.
When a new line is added, the VAT rate will be shown as 0.00. An alternative default value can be specified by creating a special project ‘Default VAT Rate’ and storing the required default value in the memo.
The VAT fields are always shown in the document, regardless of whether the company is VAT registered or not. If eLink is used to generate invoices for customers, these can be designed to show or omit VAT data as appropriate.
Kashflow Quotes
The steps necessary to create a Kashflow quote in eLink are similar to creating a Purchase Invoice:
- Create a new Document
- Enter a name for the purchase invoice and apply the change
- Select the custom field option and select General@KF and Quote@KF
- Attach a Customer Company record OR a Customer Contact record to the document
- Apply the changes
- Note that it is unnecessary to fill in any of the custom data fields, but it may be appropriate to set the invoice and due dates. Do not enter an invoice number as this will be allocated by Kashflow.
- If desired, enter a reference for the invoice in the standard eLink field. Any data in this field will be copied to the Customer Reference field in the Kashflow custom data (if empty), when synchronisation takes place.
Quote lines are added in the same way as per Purchase Invoices.
Kashflow Sales Invoices
The steps necessary to create a Kashflow quote in eLink are similar to creating a Purchase Invoice:
- Create a new Document
- Enter a name for the purchase invoice and apply the change
- Select the custom field option and select General@KF and Invoice@KF
- Attach a Customer Company record OR a Customer Contact record to the document
- Apply the changes
- Note that it is unnecessary to fill in any of the custom data fields, but it may be appropriate to set the invoice and due dates. Do not enter an invoice number as this will be allocated by Kashflow.
- If desired, enter a reference for the invoice in the standard eLink field. Any data in this field will be copied to the Customer Reference field in the Kashflow custom data (if empty), when synchronisation takes place.
To add lines to the invoice:
- Press the attach product button
- Choose a Kashflow NominalCode from the eLink product list
- Fill in the details for the product. Note the totals are automatically calculated.
Once synchronisation has been performed, review the synchronisation logs to identify any records that are not handled correctly, and take appropriate remedial action. The most likely problem is that some company records may not have associated contact records because there is no known contact. In this case, create a contact (such as A N Other), with a dummy email address and link it to those companies. Re-running the synchronisation should then correct the errors.
Kashflow Payment Methods Data
Kashflow Payment Method information is used in the Payment creation Process. This information is obtained from Kashflow and held in special data tables in eLink. There is no mechanism for changing this data in eLink. However, changes to the original data in Kashflow will be propagated to eLink.
Kashflow Bank Account Data
Kashflow Bank Account information is used in the Payment creation Process. This information is obtained from Kashflow and held in special data tables in eLink. There is no mechanism for changing this data in eLink. However, changes to the original data in Kashflow will be propagated to eLink.
Sales Invoice Payments
Kashflow Payment records are represented in elink as projects, linked to the invoice they apply to. The process for creating a Sales Invoice Payment Project is:
- Create a new Project, with any appropriate name.
- Select the custom field option and select InvoicePay@KF and Payment@KF types.
- Apply the changes.
- Link the project to the ‘Kashflow Invoice Payments’ project (not essential, but helpful for good organisation) and apply the changes.
- Choose the method of payment on the InvoicePay@KF type tab.
- Select the Payment Date, Account Paid and Amount Paid on the Payment@KF tab.
- Link the project to the corresponding Sales Invoice.
Note that it is possible to attach multiple (part) payments to a single sales invoice.
After sales invoice payments have been created, it is possible to view the payments from the Sales Invoice Document. Individual payments may be deleted from the Document, but changes to the payments themselves have to be made from the project view.
Note that Payments that are not attached to corresponding Sales Invoice Documents will be ignored for the purposes of synchronisation with Kashflow.
Purchase Invoice Payments
Purchase Invoice Payments are specified in much the same manner as Sales Invoice Payments, with a few differences. The steps necessary are:
- Create a new Project, with any appropriate name.
- Select the custom field option and select PurchasePay@KF and Payment@KF types.
- Apply the changes.
- Link the project to the ‘Kashflow Invoice Payments’ project (not essential, but helpful for good organisation) and apply the changes.
- Choose the method of payment on thePurchasePay@KF type tab.
- Select the Payment Date, Account Paid and Amount Paid on the Payment@KF tab.
- Link the project to the corresponding Sales Invoice.
Deleting data from the system
There is no provision for automated synchronisation of data deletion of data. So, if it is necessary to delete a record from the system, the user will have to delete the record from both eLink and kashflow separately. Actually, we generally discourage deleting data from a business system. It is better to void it in some way or annotate it to indicate its status.
Support for Accounts-specific Data
In designing the elink/Kashflow integration system, we have focussed on making provision for sharing data that is common to both CRM and accounts system, while ignoring data that is more solidly in the domain of the accounts system. For this reason, there is currently no support for account management and the like through the integration system. If you have a requirement for some additional integration, please contact us and we will consider how we can assist you to attain your goal.




