Flow

Process flow managers - proof of concept

Engine configuration preview - service is planned and currently only in concept stage.

PoC - Sample configuration in YAML - Employee process usign our @sign document service

---
## Based on this name we generate e-mail like
## ppg-hire-person-xas@flow.func.ovh
name: PPG Hire person
## Only accept e-mail from domain RegExp
domain: .*@company-domain.com
stages:
## Start process, fetch from "subject" employee email and go to next step
- name: Start process
type: in
# TODO: think about triggers, next when etc? reminder? rules
properties:
- name: employeePrivateEmail
valueFrom: subject ## subject, from, to, cc, bcc, body
match: ^[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,}$
## Send e-mail to employee with fillup e-mail template
- name: Colect data from employee for documents
type: out
to: "{{employeePrivateEmail}}"
cc: "hr@company-domain.com"
subject: "Fillup employee data process"
waitFor:
type: reply
from: "{{employeePrivateEmail}}"
template: |+
Hi {{employeePrivateEmail}},
To finish employee process please fillUp this e-mail form:
[FirstName]:
[LastName]:
[Address]:
[Do you want health private insurance yes/no]:
[Date when you can start yyyy-mm-dd]:
[ID Number]:
and just reply to this e-mail.
- name: Prepare documents
type: out
to: "hr@company-domain.com"
cc: "{{employeePrivateEmail}}"
subject: "Please prepare employee documents to sign"
waitFor:
type: reply
from: hr@company-domain.com
template: |+
We collect data from {{employeePrivateEmail}},
FirstName: {{FirstName}}
LastName: {{LastName}}
Address: {{Address}}
Do you want health private insurance yes/no]: {{Do you want health private insurance yes/no}}
Date when you can start yyyy-mm-dd]: {{Date when you can start yyyy-mm-dd}}
ID Number: {{ID Number}}
Please prepare documents in PDF format to sign and reply with attachment to this e-mail
- name: Sign documents
type: out
to: pdf@sign.func.ovh ## Our service
cc: "{{employeePrivateEmail}}, ceo@company-domain.com, hr@company-domain.com"
subject: "Employee aggrement to sign"
waitFor:
- from: service@mail.func.ovh
subject: .*signed!
type: 'reply'
- name: Prepare e-mail account for employee
type: out
to: domain@company-domain.com
cc: "hr@company-domain.com"
subject: "New e-mail account request"
waitFor:
- from: it@mail.func.ovh
type: 'reply'
template: |+
Hey,
Please prepare e-mail account for {{employeePrivateEmail}}
{{FirstName}}
{{LastName}}
and reply to this e-mail with new email address
[NewCompanyEmailAddress]:
- name: Add access to office doors
type: out
to: it@company-domain.com
cc: "hr@company-domain.com"
subject: "New employee door access request"
template: |+
Hey,
Please prepare card for doors for {{NewCompanyEmailAddress}}
- name: Prepare welcome pack
type: out
to: hr@company-domain.com
subject: "Contract signed please onboard new employee"
- name: Welcome
type: out
to: all@company-domain.com
cc: "{{NewCompanyEmailAddress}}"
subject: "Our team growth"
template: |+
Hey,
From next month will join to us {{NewCompanyEmailAddress}}.
Please send some sweet e-mail's for initiate new email box ;D

POC - Sample configuration of sales cold mailing

---
name: Sales cold mail - en
## Only accept e-mail from domain RegExp
domain: .*@company-domain.com
stages:
- name: Start process
type: in
properties:
- name: leadEmail
valueFrom: subject
match: ^[A-z0-9._%+-]+@[A-z0-9.-]+\.[A-z]{2,}$
- name: First try
type: out
from: "sales@company-domain.com"
to: "{{leadEmail}}"
cc: "hr@company-domain.com"
subject: "Company grows and no time for manage processes?"
waitFor:
- type: reply
from: "{{leadEmail}}"
action: stop
- type: time ## instead of use "reminder!"
value: 1w
template: |+
Hi,
Some sales brief of product
- name: Second try
type: out
from: "sales@company-domain.com"
to: "{{leadEmail}}"
cc: "hr@company-domain.com"
subject: "Still no interested?"
waitFor:
- type: reply
from: "{{leadEmail}}"
action: stop
- type: time ## instead of use "reminder!"
value: 1w
template: |+
Hi,
Some sales brief of product #2
- name: Second try
type: out
from: "sales@company-domain.com"
to: "{{leadEmail}}"
cc: "hr@company-domain.com"
subject: "Maybe sometime"
waitFor:
- type: reply
from: "{{leadEmail}}"
action: stop
- type: time ## instead of use "reminder!"
value: 1w
template: |+
Hi,
Some sales brief of product #3