Today a new blog post about the progress of the implementation of Donor Journeys into CiviCRM. The route we are taking is that we want to create a trigger/action extension for civicrm because most the donor journey automation is based on a trigger/action. e.g. payment coming in resulting in a thank you SMS a day later.
Yesterday and today we have been working on refactoring the extension to meet the requirement of combining multuple triggers and having the possibility to have condition on custom fields as well. So we have decided to let go the trigger action table/structure and have decided that we have a rule_schedule table and a rule_schedule_trigger table. In the rule_schedule we decide when to run this rule. And in the rule_schedule_trigger table we add triggers to the schedule.
Another thing we came across during the implementation of the condition on custom fields is that it was hard to join the civicrm_value_* tables in the DAO. Because there is no core DAO for such tables. So we decided to make our own query builder, which will then result in an SQL statement we could use. Another advantage of building our own QueryBuilder was that we could then easily add more triggers to one SQL statement as well.
Tomorrow is our last day we are working on the trigger/action extension so that MAF Norge can start using the extension in a test environment and start building their donor journey into CiviCRM. What we have now looks very promissing for them to start implementing Donor Journeys.