That's doable. The below should work in CB Auto Actions. It's basically your standard "do something when a field value changes" auto action except with a CB Activity action to generate an activity entry.
Global
Triggers: onAfterUserUpdate
Type: CB Activity
User: Automatic
Access: Everybody
Conditions
Condition 1
Field: FIELD_HERE
Operator: Not Equal To
Value: Pending
Condition 2
Field: Custom > Value
Custom Value: [var1_FIELD_NAME_HERE]
Operator: Not Equal To
Value: [var3_FIELD_NAME_HERE]
Action
Mode: Activity
Method: Create
Published: 1
Stream: Profile Activity
Asset: profile.[user_id]
Title:
Code:
toggled FIELD_TITLE_HERE to [cb:userfield field="FIELD_NAME_HERE" /]
Load By: None
For FIELD_HERE be sure to select your field. Replace FIELD_NAME_HERE with the name of the field you want to condition for. This ensures the auto action only processes when the field changes and only if that value isn't set to your default Pending value.
All the other parameters can be left at their default empty values. You can freely adjust them however needed though. The title/message displayed is just an example and can be whatever you like. I went with title as it's not changeably by the user like Message is and it'll show directly next to their name as an action performed.
The end result of all of this would be the following.