From V10.6.811 - now supports updating records on running campaigns
From V10.6.811
Some customers would like to update the campaign database in real-time while campaigns are running.
This presents a challenge because, in order to achieve high throughput, Softdial Campaign Manager™ caches records, and uses snapshot-type cursors.
The existing mechanism to mitigate this involves purging the Softdial Campaign Manager™ cache and closing the main cursor for the campaign.
This is not ideal as it leads to short term number starvation for Softdial CallGem™.
The change that has been implemented involves Softdial Campaign Manager™ exposing a SDMP message API that allows individual customer records to be updated by proxying through Softdial Campaign Manager™, so that Softdial Campaign Manager™ can deal with cache checking and mitigation of snapshots.
The API to support record update is the following pair of SDMP messages:
On receipt of a valid Update Record [UR] message, Softdial Campaign Manager™ will first check its cache to see if the record is already dialed.
If the record is
On reading in new rows, a cache check is made in case the snapshot delivers an earlier copy of the record without updates. In this case the record will be re-updated and the record read discarded. This measure prevents database server caching from causing data integrity issues.
Softdial Campaign Manager™ acts as a database proxy, caching rows of customer/ lead data to be processed and managing updates of this data through a single point of access to the database.
Softdial Campaign Manager™ is designed to provide maximum data throughput. To achieve and maintain this, a strict protocol must be observed when third-party applications require to modify campaign table data during live operations.
In general, a user should not update a table that has an open cursor. Whilst doing this may appear to 'work' it will inevitably lead to unreliable operation caused by deadlocks and resulting in data corruption.
Recognising that there are valid business reasons for accessing and updating the campaign database table while a campaign is running, SCC provides a mechanism for doing this in a safe and reliable manner.
In order to keep Softdial CallGem™ fed with numbers, Softdial Campaign Manager™ operates a two-stage cache mechanism.
Applications designed to modify data in the campaign tables while the campaign is running must take into account the fact that Softdial Campaign Manager™ maintains an open cursor and has database data cached.
There are good business reasons why a user may need wish to add or update numbers in a list, for example:
In order to facilitate this, SCC provides a function in Softdial Campaign Manager™, available in versions 10.5 and 10.6, to temporarily close the main cursor.
Any third-party use of the temporary close mechanism, and any third-party updates to tables used by Softdial Campaign Manager™ during live operation must conform to the following rules:
If an update to any of the input tables to the campaign is required and that update is not a single column update, the third party must follow the procedure below to perform the update:
An update to a single row in the campaign table/ view may be made without first closing the primary cursor, as follows:
WHERE (<switch_result_col> IS NULL or < switch_result_col> >= 0)
Adding new records / inserting new rows in the campaign table (or table view) may take place without closing the primary cursor.
From V10.6.311 - a web-based interface for safely adding records from a web feed is now available. See the Insert Record [IR] message. This can be used, for example, to insert a record from a web site using the HTTP API.