Every salesforce task can be linked to two objects:
WhoId: Contact of Lead
WhatId: Account, Oppt, Case, etc
The more specific the data, the better your analytics can be (for example, it is more precise to connect an activity to a specific Opportunity instead of the Account.
Most sales tools are inconsistent with their logging behavior -- for this reason, Truly's Salesforce package automatically attempts to correct missing data through Who/WhatId overrides.
How does it work?
The app follows this logic, in order
If a task is connected to no WhoId or WhatId => do nothing
If a task is connected to a WhatId only => do nothing
If a task is connect to a WhoId => automatically perform the following:
If a single open opportunity exists on the related Account=> set the WhatId to that opportunity
If multiple open opportunities exist and one is owned by the Task Assignee => set WhatId to that opportunity.
If the Task Assignee cannot be connected to any one of multiple open opportunities => set WhatId to the most recent opportunity.