Skip to Content
Menu
This question has been flagged
4 Replies
1728 Zobrazenia

Hi everyone, Am I close here on getting a field to update with today's day upon a record change?

I have an added field "Date of Last Contact" that I would like updated with todays date, if either conditions are met:

A) Chatter is updated

B) Record Changed 

(assuming those are not the same, if they are, great)

Under Automations, create a new with these conditions

> Model = Contact

> Trigger = after last update

> Open: Actions

>> Update Record

>> Action Details - DATE OF LAST CONTACT to write_date

I've tried 

date

=datetime.today()

datetime.today()  

datetime.today

& a whole other bunch of combinations. I know it can take some time to run the automation, not sure if I'm not patient enough. 

Any help is appreciated.


Avatar
Zrušiť
Best Answer

Hi Monica - if you want to know when the record was last updated, that is already there, as can be seen in the Metadata (in developer mode):

The field is write_date and it's easy to make that visible on the Contact.


Adding a note in the chatter will not changed the last updated date.

If you want to capture the last date when a note was logged, your Automation Rule has to run against the Message database table

but that's going to require some Python code to update the date on the Contact.


Which version of Odoo?  If it's 17 you can still select the "On Save" trigger - rather than "after last update":

That will update immediately rather waiting up to 4 hours.


Also, you can also check if the Scheduled Action is running (to process Automated Rules):

Avatar
Zrušiť
Autor

Well I tried everything and can't get this to work. So very frustrated. I don't know if it's possible to pay to get someone to get this to work. My goal for CRM is this: Bring in quality leads, nurture them. Get triggers on when to nurture, and keep the relationship going. It's not just a safety net, but a way to manage and to know when to reach out. Today I have to snooze, task list, or calendar when to reach out, and it's neither ideal, nor scalable. If I miss a snooze, they fall off my radar = no bueno. I need Odoo to let me know, when it's time to reach out. I found this link does a great job of describing what I am looking for: https://www.insightdata.co.uk/news/crm-inactivity-alerts/

Autor Best Answer

Here is the Answer for [B],  Chris TRINGHAM got me part way there. Here's the step by step on how to create a field that reflects the last date the record was updated, with no coding. 

[A] To display the write_date field in the Odoo Contact record using Odoo Studio:

  1. Enable developer mode (field won't be visible if this step is skipped)
    1. Main Menu, Settings, General Settings, at the bottom - check the enable developer mode.
    2. A laddy bug icon appears at the top right menu bar 
  2. Navigate to the Contact module
  3. Open one of your contacts, doesn't matter which one
  4. Open Odoo Studio: Click on the Odoo Studio icon (looks like a crossed pen and wrench icon) in the top bar.
  5. This is the form view. To add the write_date field, click on the area where you want to add the write_date field. A sidebar should appear on the right. at the right botton, click on Add an Existing Field 
  6. search for write_date. 
  7. Click on it, and drag it to where you want to add it to your form.
  8. Save, go back to contacts, enter in the contact and you see a date.
  9. Change something and it changes the date right away.

I'll update this when I figure out how to get the chatter to update another field.  


Avatar
Zrušiť
Autor

This post, helps get around this, on what I was ultimately trying to do.
https://www.odoo.com/forum/help-1/need-program-coding-support-for-customer-inactivity-report-filter-251951

Best Answer

Hi Monica,

When creating a new automation try this to reach your requirements

1) Model: your_model

2) Trigger: On Save

3) When Updating: Select all fields if needed

4) Create an action with type "Execute Python Code" and write Python code to set the value for your last updated datetime field.

This format provides clear instructions for setting up a model trigger in a system, specifying the actions to take upon saving and detailing the steps to execute Python code for updating a DateTime field


Hope it helps

Avatar
Zrušiť
Best Answer
datetime.date.today()

or

datetime.datetime.now()


Avatar
Zrušiť
Autor

Thanks Ray!! I just put in the second datetime.datetime.now(), saved, refreshed - then went to a contact and made a change. I went to another and put in a log note. I'll wait a few hours and report back.

Autor

Both ways didn't work. This is shared cloud instance. Frustrating....

Related Posts Replies Zobrazenia Aktivita
1
feb 19
3901
1
jan 25
633
2
jún 23
2193
2
máj 25
229
1
máj 25
190