Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][ADD] automation_oca #1

Merged
merged 2 commits into from
Apr 26, 2024
Merged

Conversation

etobella
Copy link
Member

@etobella etobella commented Mar 4, 2024

Initial approach of marketing automation but with a broader scope.

TODO:

  • Complete definition of automation flows, including
    • name
    • tag
    • target model (contact, event attendees, etc.)
    • uniqueness filter field
    • initial application criteria (domain).
  • Graphic possibility to represent and define different automation stages within that flow, with hierarchical relationship, which requires building a custom OWL widget.
  • Capability to define the type of action to be performed in that task in an extensible manner. By default, email sending based on a template, or a server action for custom code.
  • Ability to define the trigger for that stage, with a customized time interval, and based on extensible criteria, including at least the following standards:
    • From the beginning of the automation flow.
    • After another activity.
    • After opening or not opening the email.
    • After responding or not responding to the email.
    • After clicking or not clicking on a link in the email.
    • After bouncing.
  • Extensibility for other forms of communication (SMS, Telegram, WhatsApp, etc.) must be prepared horizontally, so that if there is a trigger that is "Message opened", it works for all possible forms of communication. There should also be a mechanism to inhibit triggers based on the availability of the communication form. --> That would require a module, but it is feasible
  • Ability to set expiration for stages.
  • Ability to apply additional filter criteria at the stage.
  • Integrated visualization of statistics in the flow widget.
  • Management of favorite filters to avoid repeating criteria each time.
  • Specific security group to display and manage the section.
  • Improve Readme
  • Add some demo data

@legalsylvain
Copy link

Hi @etobella. What is the utility of this tool ? (Sorry, i'm not sure to understand what are the use cases)
If I understand, I can propose a PR to write a readme, like for the spreadsheet module :-)
Thanks !

@etobella
Copy link
Member Author

I will write the readme. It is an OSS inspiration of marketing automation tool. However it is intended to be used in more enviroments

automation_oca/README.rst Outdated Show resolved Hide resolved
automation_oca/README.rst Outdated Show resolved Hide resolved
@etobella
Copy link
Member Author

Thanks for your comments @legalsylvain 😄

@etobella etobella changed the title [ADD] automation_oca [16.0][ADD] automation_oca Mar 16, 2024
@etobella
Copy link
Member Author

Configuration view

image

Record View

image

@etobella etobella marked this pull request as ready for review March 16, 2024 15:08
@marcelsavegnago
Copy link
Sponsor Member

ping @WesleyOliveira98

@mileo
Copy link
Member

mileo commented Mar 18, 2024

@etobella always rocking! 🚀

Copy link
Sponsor

@celm1990 celm1990 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great Job.
I comment a few considerations related to fields type Date

Can you add an option for testing (sandbox mode)?
image

Could add Column State on list view
image

image

automation_oca/controllers/main.py Outdated Show resolved Hide resolved
automation_oca/models/automation_configuration_activity.py Outdated Show resolved Hide resolved
automation_oca/models/automation_configuration_activity.py Outdated Show resolved Hide resolved
@simahawk
Copy link

Great work mate :)
Early feedback: are we sure the name is appropriated?
"automation" seems to broad while this module is explicitly focusing on "marketing automation".
In fact, before skimming trough the code I was expecting a sort of replacement or extension for base_automation which is about automating things in general.

@etobella
Copy link
Member Author

It is not focused on marketing automation. It takes the idea, but could be used for managing automatic emails on invoices that are not paid (obviously not marketing). Review maintenance tasks that were forgotten by the team and other ideas.

@etobella
Copy link
Member Author

Also, using the name marketing is like "this tools is used only for marketing purposes", but this is not true, like account_edi of odoo. We created a tool (edi_oca with similar ideas and different approach) to do a similar job for account and a lot of other things. Here, I have the same idea. Automation for marketing is great, but we can do automation for different kind of records. Right now, I implemented mailing and server tools, but I wanted to add other options like creating tasks and what happens when the task is closed and this is useful for a lot of things.

@etobella
Copy link
Member Author

@celm1990 Testing capability is here now!

Actions will work as usual, but emails are not sent (template is generated in order to ensure that everything is right)

@etobella
Copy link
Member Author

I added a way for managing activities and when they are done, if they are closed (removed, the activity_done will never be called)

@etobella etobella force-pushed the 16.0-add-automation_oca branch 2 times, most recently from a723873 to 0a31f2d Compare March 20, 2024 13:49
@codeagencybe
Copy link

@etobella are there any plans yet for releasing a v17 version too?

@etobella
Copy link
Member Author

@codeagencybe Right now, it is not in my scope to migrate it, as no customers of mine asked me to do that. If some of my customers wants to migrate it, I will propose my migration

Copy link
Member

@HviorForgeFlow HviorForgeFlow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Functional and code review: Looks great 👍

automation_oca/models/automation_record.py Outdated Show resolved Hide resolved
Copy link

@WesleyOliveira98 WesleyOliveira98 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@OCA-git-bot
Copy link
Contributor

This PR has the approved label and has been created more than 5 days ago. It should therefore be ready to merge by a maintainer (or a PSC member if the concerned addon has no declared maintainer). 🤖

@etobella
Copy link
Member Author

History has been cleaned and squashed in 2 commits (one by author)

@liebana
Copy link
Sponsor

liebana commented Apr 16, 2024

Quick test, I found an error.

If you set a field in the domain filter area, you need to delete the whole row and can't edit the current one.

image

An error arises then:

Uncaught Javascript Error > Cannot read properties of undefined (reading 'writeText')

@etobella
Copy link
Member Author

Did you test on runboat? I am unable to get the same error there 🤔

@galborch
Copy link

Hello @etobella
Great job 👏
Have you considered implementing a fixed target? For example, not using a dynamic filter and the possibility of uploading an email list in csv, for example a fixed mass mailing list type.

@etobella
Copy link
Member Author

You can use Mailing Contacts (and filter on a list). I don't know if that would work for you 😄

@gurneyalex
Copy link
Member

/ocabot merge nobump

@OCA-git-bot
Copy link
Contributor

Hey, thanks for contributing! Proceeding to merge this for you.
Prepared branch 16.0-ocabot-merge-pr-1-by-gurneyalex-bump-nobump, awaiting test results.

@OCA-git-bot OCA-git-bot merged commit 2f5e225 into OCA:16.0 Apr 26, 2024
5 checks passed
@OCA-git-bot
Copy link
Contributor

Congratulations, your PR was merged at a825957. Thanks a lot for contributing to OCA. ❤️

Copy link

@GuiPrime GuiPrime left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGFM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet