Data sync workflows#

Overview#

Data sync workflows in Automate are processes that manage the synchronization of data between different systems or components.

The data sync workflows described in this topic form part of the set of workflows that are carried out when adding a new CUCM cluster. The name and description of each calling workflow is indicated, as well as the corresponding information for called or included workflows.

UserCucmSyncAdd#

  1. Include PWF: UserCucmSyncAdd_ValidateData: Validate the CUCM user before any work is done. If errors are found the CUCM user will be purged again and transaction will exit.

  2. Include PWF: UserDiscoverApps : Discover all user apps (fn.user_discover_apps pwf.username)

  3. Initialize minimum user input: user_input_role_selfservice, pwf.user_detail.is_cucm_user, entitlement_profile

  4. Add a new Local User if it does not exist using just the username as input and role as selfservice

  5. Update Local User if it exists

  6. Discover all user apps again after user add

  7. Include PWF UserMoveCucmUsingFilter: Move the CUCM user if it matches a filter

  8. Include PWF UserUpdateApps: Update data on all apps where data is mapped using the latest user data as input

  9. Include PWF UserCucmOverbuild: Move CUCM user if configured in Global Flow-Through-Provisioning settings

  10. Include PWF UserCucmFlowThroughProvisioning: Flow through provision user if configured in Site Defaults Doc settings

UserCucmSyncUpdate#

This data sync workflow updates a user from CUCM sync.

  1. Include PWF UserHandleUserNameChange: Handle CUCM username change if the username changed (this also has its own call to UserDiscoverApps inside it).

  2. Update user if it exists

  3. If VOSS user, also known as “Local User” (data/User) does NOT exist, then CREATE it at the same node as cucm/User using just the username as input, and role as “selfservice”

    1. Include PWF: UserDiscoverApps : Discover all user apps

  4. Include PWF: UserUpdateApps : Update data on all apps where data is mapped using the latest user data as input

UserCucmSyncRemove#

This data sync workflow removes a user from CUCM sync.

  1. Build a list of associated Device Objects

  2. Build a list of associated Device Profile Objects

  3. Include PWF UserDiscoverApps: Discover all user apps

  4. Include PWF RemoveDeviceObjectFromCucmPWF: REMOVE each Phone (cucm/Phone) via [RemoveDeviceObjectFromCucmPWF]

  5. Include PWF RemoveDeviceObjectFromCucmPWF: REMOVE each cucm/DeviceProfile via workflow [RemoveDeviceObjectFromCucmPWF]

  6. Remove Voicemail Account (device/cuc/User) if retain Voicemail is set to false and the removed User had an associated Voicemail Account

  7. Remove User only if its new sync source is LOCAL/CUC/WEBEX_TEAMS user AND retain Voicemail / Webex Teams are set to false AND User does not have other services

HcsAddUpdateCucmPhoneDsPWF

  1. Include PWF HcsAddUpdateCucmPhoneForeachUserPWF: (lines_removed)

  2. Include PWF LineDeletion_after_DeviceUpdate_PWF: INCLUDE sub-pwf to CLEANUP all associated cucm/Line instances , depending on Line Delete Preferences

LineDeletion_PhoneDataSync_PWF#

This data sync workflow is a shared PWF, used typically by data-syncs, to maintain/delete cucm/Lines and INI after the sync detected that, for example, device was removed.

  1. SET var [pwf.deletedDeviceDat]: if the calling/parent PWF had already defined this var, then use that pre-defined value, else default to use first [previous] or else [input] if previous is not available

  2. SET pwf VARS: unique CUCM line, deviceOwner, allowLineDeletion, allowLineUpdate, lineUpdateCft, lineHn, lines_removed

  3. Include PWF LineDeletionWrapperProcessLinesListPWF: If either of the LineDeletion-prefs are being used / have been set, then proceed with: ForEach line, run the line cleanup/maintainance workflow

LineDeletion_after_DeviceUpdate_PWF#

  1. To maintain/delete cucm/Lines and INI after the sync detected that e.g. device was removed

  2. If either of the LineDeletion-prefs are being used / have been set, then proceed with: ForEach line, run the line cleanup/maintainance workflow:

    1. Includes LineDeletionWrapperProcessLinesListPWF - If either of the LineDeletion-prefs are being used / have been set, then proceed with this line of workflows.

      1. For each line, run the line cleanup/maintainance workflow = LineDeletion_ProcessLine_PWF (remove device/cucm/Line)

    2. Includes RemoveAgentLineRelPWF” (Remove Agent Line Relation will fire if it is not an update via Sync or if it is an Sync update and lines have been removed.)

      1. Remove relation/HcsCucmCcTagREL

HcsPreSyncSipGwSiptrunkUpdatePWF#

This data sync workflow updates SipTrunk field in SIP Gateway if siptrunk name changes.

  • Includes: HcsPreSyncUpdateSipGwPWF

    1. This workflow updates SipTrunk field in SIP Gateway if siptrunk fields (ipAddress, port) change.

PWF_HcsPostSyncSipGwSiptrunkDeletePWF#

This data sync workflow deletes SIP GW which is using this SIP trunk.

  • Includes: HcsPostSyncDeleteSipGwPWF

    1. Removes relation/HcsSipGwREL where name = input.sipgw.name