Line 1:
Line 1:
==Connecting to n8n==
==Connecting to n8n==
−
As explained in previous parts, once you have created your n8n self-hosted instance on your computer and started it with the command :
+
As explained in previous parts, once you have created your n8n self-hosted instance on your computer and started it with the command : <code>n8n start</code> or <code>n8n</code> you just have to press '''o''' on your terminal to open n8n in your browser.
−
```bash
−
n8n start
−
```
−
or
−
```bash
−
n8n
−
```
−
you just have to press `o` on your terminal to open n8n in your browser.
You should arrive to the following connexion screen where you can enter your connexion informations.
You should arrive to the following connexion screen where you can enter your connexion informations.
−
+
[[File:Connecting to n8n.png|center|thumb|Connecting to n8n]]
−

==Creating a Workflow using Dolibarr Node==
==Creating a Workflow using Dolibarr Node==
Line 25:
Line 16:
==Explanation of the different functionnalities==
==Explanation of the different functionnalities==
[[File:Different scenarios.png|center|thumb|Different scenarios]]
[[File:Different scenarios.png|center|thumb|Different scenarios]]
−
Here are the different Dolibarr functionnalities we have implemented in n8n.
Here are the different Dolibarr functionnalities we have implemented in n8n.
Line 36:
Line 26:
You can connect to your Dolibarr from the '''Credentials''' tab or directly from a Dolibarr node.
You can connect to your Dolibarr from the '''Credentials''' tab or directly from a Dolibarr node.
[[File:Credentials.png|center|thumb|Credentials]]
[[File:Credentials.png|center|thumb|Credentials]]
−
You have to indicate you base URL which is your instance URL.
You have to indicate you base URL which is your instance URL.
Line 63:
Line 52:
For the next fields :
For the next fields :
−
* '''Event Name''' corresponds with the '''Label''' field in Dolibarr interface (this field is required),
+
*'''Event Name''' corresponds with the '''Label''' field in Dolibarr interface (this field is required),
−
* '''Description''' corresponds with the '''Description''' field (this field is optional)
+
*'''Description''' corresponds with the '''Description''' field (this field is optional)
−
* '''Event Type''' corresponds with the '''Type''' field, three options are available : '''Intervention on site''', '''Meetings''' and '''Reception of Email''' (this field is required),
+
*'''Event Type''' corresponds with the '''Type''' field, three options are available : '''Intervention on site''', '''Meetings''' and '''Reception of Email''' (this field is required),
−
* '''Beginning Date of Event''' corresponds with the left date in the '''Date''' field (this field is required),
+
*'''Beginning Date of Event''' corresponds with the left date in the '''Date''' field (this field is required),
−
* '''End Date of Event''' corresponds with the right date in the '''Date''' field (this field is required),
+
*'''End Date of Event''' corresponds with the right date in the '''Date''' field (this field is required),
−
* '''Email From''' is not corresponding to any field for now on Dolibarr but since this field is present in Dolibarr AP, it is possible that is the next updates a dedicated Mail Sender field will be available on Dolibarr interface (this field is optional),
+
*'''Email From''' is not corresponding to any field for now on Dolibarr but since this field is present in Dolibarr AP, it is possible that is the next updates a dedicated Mail Sender field will be available on Dolibarr interface (this field is optional),
−
* '''Email Subject''' is also not corresponding to any field for now on Dolibarr and as the the previous one we can expect to the a dedicated field appears is the next updates (this field is optional).
+
*'''Email Subject''' is also not corresponding to any field for now on Dolibarr and as the the previous one we can expect to the a dedicated field appears is the next updates (this field is optional).
[[File:Add event dolibarr.png|center|thumb|Add event dolibarr]]
[[File:Add event dolibarr.png|center|thumb|Add event dolibarr]]
Line 81:
Line 70:


−
[[File:Google calendar use case.png|center|thumb|Google calendar use case]]
+
[[File:Google calendar use case.png|center|thumb|
+
* Google calendar use case
+
]]
Line 92:
Line 83:
Here :
Here :
−
- <code>json.summary</code> correspond to the Google Caldendar Name,
+
* <code>$json.summary</code> correspond to the Google Caldendar Name,
+
* <code>$json.htmlLink</code> correspond to the Google Caldendar URL (doing this is optional, description can be empty as explained before, entering the URL only facilitate the Google Calendar event access from Dolibarr),
+
* <code>$json.start.dateTime</code> correspond to the starting time of the Google Calendar event,
+
* <code>$json.end.dateTime</code> correspond to the ending time of the Google Calendar event.
−
- `{{$json.htmlLink }}` correspond to the Google Caldendar URL (doing this is optional, description can be empty as explained before, entering the URL only facilitate the Google Calendar event access from Dolibarr),
+
====Creating an event in Calendar when an email is received====
+
To produce this use case you will have to connect an '''Email Trigger node''' on the '''Dolibarr node''', for example the '''Email Trigger (IMAP) node''' or the '''Gmail Trigger node'''.
−
- `{{$json.start.dateTime }}` correspond to the starting time of the Google Calendar event,
+
The '''Email Trigger (IMAP) node''' documentation can be found here https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.emailimap/ and the '''Gmail Trigger node''' one here https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.gmailtrigger/.
−
- `{{$json.start.dateTime }}` correspond to the ending time of the Google Calendar event.
+
As before when have set up the trigger node you can connect it to the '''Dolibarr Create an event node'''.
+
[[File:Creating an event in Calendar when an event is created in Google Calendar in n8n.png|center|thumb|Creating an event in Calendar when an event is created in Google Calendar in n8n]]
−
====Creating an event in Calendar when an email is received====
−
To produce this use case you will have to connect an `Email Trigger node` on the `Dolibarr node`, for example the `Email Trigger (IMAP) node` or the `Gmail Trigger node`.
−
The `Email Trigger (IMAP) node` documentation can be found here https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.emailimap/ and the `Gmail Trigger node` one here https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.gmailtrigger/.
+
For the example of configuration the '''Email Trigger node''' case will be presented since it is the more general case. One possible configuration to have the wanted informations is to enter to same informations as the screenshot.
−
As before when have set up the trigger node you can connect it to the `Dolibarr Create an event node`. 
+
Be sure to select '''Expression''' mode on fields that use the previous node informations.
−
−
For the example of configuration the `Email Trigger node` case will be presented since it is the more general case. One possible configuration to have the wanted informations is to enter to same informations as the screenshot.
−
−
Be sure to select `Expression` mode on fields that use the previous node informations.
−
You can either type or drag and drop from the INPUT window on the left which field you want to have from the received mail.
+
You can either type or drag and drop from the '''INPUT''' window on the left which field you want to have from the received mail.
Here :
Here :
−
- `{{$json.subject }}` correspond to the subject of the mail,
+
* <code>$json.subject</code> correspond to the subject of the mail,
+
* <code>$json.from</code> correspond to the email sender,
+
* <code>$json.date</code> correspond to the date when the email was send.
−
- `{{$json.from }}` correspond to the email sender,
+
The '''Gmail Trigger node''' will be similar, you can find the desired field using the '''INPUT''' window on the left in Schema mode to help yourself.
−
- `{{$json.date }}` correspond to the date when the email was send,
+

+
[[File:Mail use case after update.png|center|thumb|Mail use case after update]]
−
The `Gmail Trigger node` will be similar, you can find the desired field using the INPUT window on the left in Schema mode to help yourself. 
−
The second screenshot correspond to a possible configuration of the `Dolibarr Create an event Node` with the `Email Trigger (IMAP) node` when the `Email From` and `Email Subject` fields will be implemented in the Dolibarr interface in future updates.
+
The second screenshot correspond to a possible configuration of the '''Dolibarr Create an event Node''' with the '''Email Trigger (IMAP) node''' when the '''Email From''' and '''Email Subject''' fields will be implemented in the Dolibarr interface in future updates.
===Creating a document===
===Creating a document===
−
The second node is used to create create a document on a specific Dolibarr module. 
+
The second node is used to create create a document on a specific Dolibarr module.
−
If you have selected the `Create a document` and have alreary set your credentials the first two fields will be already completed.
+

+
[[File:Add document n8n.png|center|thumb|Add document n8n]]
−
For the next fields :
−
- `File Name` correspond to the file name is Dolibarr, it is important not to forget the file extension if you want it to have one (this field is required),
+
If you have selected the '''Create a document''' and have alreary set your credentials the first two fields will be already completed.
−
- `Module Name` correspond to the Dolibarr module where the file will be created (this field is required),
+
For the next fields :
−
- `Reference` correspond to the `Ref.` of the object to which the file with will linked (this field is required),
+
* '''File Name''' correspond to the file name is Dolibarr, it is important not to forget the file extension if you want it to have one (this field is required),
+
* '''Module Name''' correspond to the Dolibarr module where the file will be created (this field is required),
+
* '''Reference''' correspond to the '''Ref.''' of the object to which the file with will linked (this field is required),
+
* '''File Content''' correspond to the content that will be written in the file (this field is optional),
+
* '''File Encoding''' is an additionnal field that needs to be activated if you want to add file with formatting like pdf which needs to be encoded in base64 (this field is optional),
+
* '''Overwrite File if It Already Exists ?''' is an additionnal field than when activated will allowed file overwriting if the File Name entered already exists (this field is optional),
+
* '''Create Subdirectories if Necessary ?''' is an additionnal field that when activated creates a Subdirectory for your file if this is necessery (this field is optional).
−
- `File content` correspond to the content that will be written in the file (this field is optional),
+
====Add a document in Dolibarr Document Gestion containing Zoom meeting information====
−
+
To produce this use case you will have to connect an '''Zoom Get Meeting node''' on the '''Dolibarr node''' with a '''n8n Trigger node''' at the beggining of the workflow.
−
- `File Encoding` is an additionnal field that needs to be activated if you want to add file with formatting like pdf which needs to be encoded in base64 (this field is optional),
−
−
- `Overwrite File if It Already Exists ?` is an additionnal field than when activated will allowed file overwriting if the File Name entered already exists (this field is optional),
−
−
- `Create Subdirectories if Necessary ?` is an additionnal field that when activated creates a Subdirectory for your file if this is necessery (this field is optional).
−
====Add a document in Dolibarr Document Gestion containing Zoom meeting information====
+
The '''Zoom node''' documentation can be found here https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.zoom/.
−
To produce this use case you will have to connect an `Zoom Get Meeting node` on the `Dolibarr node` with a `n8n Trigger node` at the beggining og the workflow.
−
The `Zoom node` documentation can be found here https://docs.n8n.io/integrations/builtin/app-nodes/n8n-nodes-base.zoom/.
+
As before when have set up the node you can connect it to the '''Dolibarr Create an event node'''.
+
[[File:Zoom use case.png|center|thumb|Zoom use case]]
−
As before when have set up the node you can connect it to the `Dolibarr Create an event node`. 
One possible configuration to have a Zoom meeting informations is to enter to same informations as the screenshot.
One possible configuration to have a Zoom meeting informations is to enter to same informations as the screenshot.
−
Be sure to select `Expression` mode on fields that use the previous node informations.
+
Be sure to select '''Expression''' mode on fields that use the previous node informations.
−
You can either type or drag and drop from the INPUT window on the left which field you want to have from the received mail.
+
You can either type or drag and drop from the '''INPUT''' window on the left which field you want to have from the received mail.
Here :
Here :
−
- `{{$json.topic }}` correspond to the topic of the Zoom meeting,
+
* <code>$json.topic</code> correspond to the topic of the Zoom meeting,
−
+
* <code>$json.host.email</code> correspond to the email of the person who host the Zoom meeting,
−
- `{{$json.host_email }}` correspond to the email of the person who host the Zoom meeting,
+
* <code>$json.duration</code> correspond to the duration of the Zoom metting,
−
+
* <code>$json.timezone</code> correspond to the time zone where was done the Zoom metting.
−
- `{{$json.duration }}` correspond to the duration of the Zoom metting,
−
−
- `{{$json.timezone }}` correspond to the time zone where was done the Zoom metting.
−
Besides, some a .docx file extension is added to generate a file compatible with LibreOffice Write, this format does not need File Encodind.
+
Besides, a .docx file extension is added to generate a file compatible with LibreOffice Writer, this format does not need File Encodind.
This file will be addded to the Agenda Evend associated with the Zoom meeting, in the example this is the event with eht reference n°33.
This file will be addded to the Agenda Evend associated with the Zoom meeting, in the example this is the event with eht reference n°33.
−
Finally, the additional Field `Overwrite File If Already Exists` is activated to be able ot overwrite the file with more or different informations from the Zoom meeting if wanted.
+
Finally, the additional Field '''Overwrite File If Already Exists''' is activated to be able ot overwrite the file with more or different informations from the Zoom meeting if wanted.
===Creating a Project Task===
===Creating a Project Task===
−

+
[[File:Add task n8n.png|center|thumb|Add task n8n]]
+
The third node is used to create a task in the project module of Dolibarr.
The third node is used to create a task in the project module of Dolibarr.
−
If you have selected the `Create a Task` and have alreary set your credentials the first three fields will be already completed.
+
If you have selected the '''Create a Task''' and have alreary set your credentials the first three fields will be already completed.
For the next fields :
For the next fields :
−
- `Task Reference` corresponds with the `Ref.` field in Dolibarr interface, the `Task Reference` is a `string` that must be unique, (this field is required),
+
* '''Task Reference''' corresponds with the '''Ref.''' field in Dolibarr interface, the '''Task Reference''' is a ''string'' that must be unique, (this field is required),
+
* '''Project ID''' corresponds with the '''Child of project''' field, this is a number corresponding to the id of the project from which the task will be a child (this field is required),
+
* '''Task Name''' corresponds with the '''Label''' field (this field is required),
+
* '''Description''' corresponds with the '''Description''' field (this field is optional),
+
* '''Starting Date''' corresponds with the left date in the '''Date''' field (this field is required),
+
* '''Ending Date''' corresponds with the right date in the '''Date''' field (this field is optional).
−
- `Project ID` corresponds with the `Child of project` field, this is a number corresponding to the id of the project from which the task will be a child (this field is required),
+
<br />
−
+
[[File:Add task dolibarr.png|center|thumb|Add task dolibarr]]
−
- `Task Name` corresponds with the `Label` field (this field is required),
+
<br />
−
−
- `Description` corresponds with the `Description` field (this field is optional),
−
−
- `Starting Date` corresponds with the left date in the `Date` field (this field is required),
−
−
- `Ending Date` corresponds with the right date in the `Date` field (this field is optional), 
−
−
A possible configuration for creating a document having zoom meeting inf
====Creating a Task in Dolibarr when a Github issue is received====
====Creating a Task in Dolibarr when a Github issue is received====
−
To produce this use case you will have to connect a `Github Trigger node` on the `Dolibarr node`.
+
To produce this use case you will have to connect a '''Github Trigger node''' on the '''Dolibarr node'''.
−
−
It is important here if you are using a self-hosted instance of n8n to start it in tunnel mode. To do so, just run the following command :
−
```bash
+
It is important here if you are using a self-hosted instance of n8n to start it in tunnel mode. To do so, just run the following command : <code>n8n start --tunnel</code>.
−
n8n start --tunnel
+
To trigger on receiving issues select the type '''Issues''' in the '''Events''' field.
−
```
+
The '''Github Trigger node''' documentation can be found here https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.githubtrigger/.
−
To trigger on receiving issues select the type `Issues` in the `Events` field.
+
Once you have set up the '''Github Trigger node''' you can connect it to the '''Dolibarr Create a task node'''.
−
The `Github Trigger node` documentation can be found here https://docs.n8n.io/integrations/builtin/trigger-nodes/n8n-nodes-base.githubtrigger/.
+

+
[[File:Github use case.png|center|thumb|Creating a Task in Dolibarr when a Github issue is received]]
−
Once you have set up the `Github Trigger node` you can connect it to the `Dolibarr Create a task node`. 
One possible configuration to have the wanted informations is to enter to same informations as the screenshot.
One possible configuration to have the wanted informations is to enter to same informations as the screenshot.
−
Be sure to select `Expression` mode on fields that use the previous node informations.
+
Be sure to select '''Expression''' mode on fields that use the previous node informations.
You can either type or drag and drop from the left window which field you want to have from the Github Issue.
You can either type or drag and drop from the left window which field you want to have from the Github Issue.
Line 223:
Line 208:
Here :
Here :
−
- `{{$json.body.repository.name }}` correspond to the name of the Github reposity,
+
* <code>$json.body.repository.name</code> correspond to the name of the Github reposity,
−
+
* <code>$json.body.issue.title</code> correspond to the title of the issue,
−
- `{{$json.body.issue.title }}` correspond to the title of the issue,
+
* <code>$json.body.issue.body</code> correspond to comment leave on the issue,
−
+
* <code>$json.body.issue.created_at</code> correspond to the creation date of the issue.
−
- `{{$json.body.issue.body }}` correspond to comment leave on the issue,
−
−
- `{{$json.body.issue.created_at }}` correspond to creation date of the issue.
===Conclusion===
===Conclusion===
This tutorial helped you understand how to configure a Dolibarr node in n8n and how they work in order to make you build the example use cases or custom use cases using already existing Dolibarr node functionnalities.
This tutorial helped you understand how to configure a Dolibarr node in n8n and how they work in order to make you build the example use cases or custom use cases using already existing Dolibarr node functionnalities.