SYSTEMS AND METHODS FOR PROVISIONING OF MULTIMEDIA COMMUNICATIONS

Systems and methods for the design, deployment and utilization of targeted multimedia communications based upon audiences are disclosed. More specifically, embodiments may allow the targeting of communications to users in multiple media formats from the same multimedia communication templates and the delivery of such communications to users through multiple communication channels.

TECHNICAL FIELD

This disclosure relates generally to the management, development, editing, deployment, and communication of content. More particularly, this disclosure relates to embodiments of systems and methods for the provisioning of multimedia communications for delivery on a communication channel. Even more specifically, this disclosure relates to embodiments of systems and methods for the design and dynamic generation of multimedia communications for multi-channel delivery.

BACKGROUND

Ever since the advent of computer networks (including the Internet), enterprise environments have been steadily growing more complicated, encompassing an ever-expanding amount of increasingly complex digital assets (or just assets). A digital asset, in essence, is anything that exists in a binary format that may exist in the enterprise environment or otherwise be utilized by the enterprise. The digital assets of an enterprise may thus include a variety of digital content (content) including text, images, aural or video content, templates used in content delivery or other types of content. For purposes of this disclosure, the term content will be used interchangeably with the term asset and understood to have the same definition as an asset.

In an enterprise environment, these assets may be widely distributed and used for a wide variety of purposes in association with that enterprise. To aid in managing and using their various assets, many enterprises have employed a number of content management systems, such as digital asset management (DAM) systems, content management systems (CMS), web content management (WCM) systems, enterprise content management (ECM) systems, etc. The distribution of content across an enterprise in these various management systems, along with widespread and distributed use of such content, therefore, results in an extremely complex web of interconnectivity involving hundreds or sometimes thousands of systems or people.

Oftentimes enterprises (e.g., almost any profit or non-profit entity such as a service company, an insurance or utility company or another type of entity) wish to communicate with their customers or other entities with whom they wish to engage (e.g., distributors, partners, regulatory bodies, donators, etc.) via multiple communications channels. As such, customer will be understood herein not in the commercial sense, but instead understood to mean an entity having (or having had) some interaction with an enterprise. Accordingly, while the types of content management systems discussed above are useful in creating, versioning and controlling access to content, they do not provide a convenient mechanism to integrate such content in outbound communications across multiple channels.

To address the need for multi-channel communication, an enterprise may integrate a customer communication management (CCM) system. CCM systems can provide an enterprise with an application to improve outbound communications with their customers (e.g., distributors, partners, regulatory bodies, individual users, or other entities). Such CCM systems may allow an enterprise to improve the creation, delivery, storage, or retrieval of outbound communications, including communications used for marketing, new product introductions, renewal notifications, claims correspondence, documentation, bill statements, advertising, payment notifications, etc. These communications can occur through a number of output channels including email, Short Message Service (SMS), web pages, or mobile applications.

The content, type, design and versatility of such communications is, however, quite an important step in many enterprise customer communication processes. While current CCM systems may provide improved control of outbound communications, they do not provide a straightforward ability to effectively design and generate certain types of communications at a production scale, including multimedia communications.

What is desired, therefore, are improved CCM systems that allow the design and generation of multimedia communications.

SUMMARY

As previously discussed, current CCM systems do not provide effective mechanisms for the provisioning (e.g., design, creation, generation, etc.) of multimedia communications. To illustrate, in many cases, a CCM system may be used to generate content of the same basic type (e.g., based on the same template) for multiple users and send an instance of the generated content as a communication to each individual user. Accordingly, it is often desired that CCM systems be able to “target” communications to users by sending a particular communication (e.g., content of a particular type, version, format, including or excluding specific content, etc.) to a user based on characteristics or attributes (used herein interchangeably) of that user. In other words, to tailor generated content for communications in some manner based on an attribute of the user to which the content is to be sent as a communication. These attributes can include such things as demographic information of the user or the user's interests or specified characteristics.

Additionally, in many cases, CCM systems may facilitate not just a single communication, but an ongoing dialogue or conversation with a user comprising multiple related communications. Accordingly, not only is it desired to target individual communications to users based on the individual attributes of a user, but it is additionally desired to dynamically target related (or even unrelated) communications to users based on those users attributes.

Moreover, it may be desired to be able to target various aspects of those communications individually. Thus, for example, it may be desired to send essentially the same communication (e.g., a bill or welcome letter, or invitation, registration confirmation, etc.) to different users and to include different content in each of those communications based on attributes of the user for which the communication is being generated.

Thus, CCM systems may allow a user (e.g., a designer) to define (communication) templates for rendering customer communications on one or more channels (e.g., email, SMS, web page, print, PDF). Templates may specify static content as well as the content that can change (or be included or excluded) based on a user. By specifying how the content may change and the associated user data, communications generated from such a template may be targeted to the user for whom the communication is being generated. The efficacy of the targeting of these communications is heavily dependent on the content of these communications and the channel used to deliver these communications.

Recently, due to the prevalence of cloud computing platforms, social media and more generally the prevalence of effective video content across Internet touchpoints, users of CCM systems are increasingly desirous of sending video content in these types of targeted communications. The CCM workflow of template design and production scale generation of targeted communication based on those templates does not, however, readily lend itself to the use of video content for targeted communications of this type. As one problem, it is difficult to use templating in the context of video content. Part and parcel with this problem is that certain users may not be able to easily receive or engage with video content. Thus, a problem arises in generating targeted communications to those users in multiple formats while still providing video (or other types) of content for those users who can access this video content.

Embodiments as disclosed may thus provide a way to design, deploy and utilize multimedia (communication) templates to generate targeted communications at a production scale in multiple content formats, including video (e.g., video with audio), audio (e.g., audio only), a slide show (e.g., a set of ordered static images) or other desired formats. More specifically, embodiments may provide a designer through which multimedia templates can be designed on a frame by frame basis in a design mode or at design time. Such a design mode, may be a mode, time, or period in which a template is being created, generated or modified by a (designer) user that is generating or constructing the architecture of a template, including creating instructions, settings, rules, etc. that define instructions for generating a communication from that template.

According to embodiments, then, embodiments may provide a holistic designer for designing a multimedia template from which communications in multiple different formats may be generated. Such a designer may provide an interface to create, edit or assemble the assets (e.g., content) utilized for a multimedia template for a multimedia communication. In particular, the design of a multimedia template may involve the specification of communication (or template) level settings for the multimedia template. These communication level setting may comprise settings that will be applied at a global level to communications generated from the multimedia template under design, such settings related to a global script setting including the type (e.g., male or female) of script reading, or the speed of the audio or script reading among other settings, a specification of background music to present, an intensity of such background music, a time between presentation of frames, a transitioning effect when moving between frames of the multimedia communication or other communication level settings.

The multimedia template may thus also comprise one or more individual frames (e.g., frame templates), where each of these frames may be designed individually by a designer using assets selected from (or uploaded to) a repository of the CCM system. For each frame, the designer may specify frame level settings on a frame by frame basis, including a background which may be an image or video selected from the assets of the CCM system, zero or more text areas to include on that frame, including a specification of a position (e.g., X or Y coordinates) of the text area and the content of the text area (which may be static or conditional, such as customer variable data, etc.). The design of a frame may include a script specification or box including text that a designer wishes to present with the frame in an audible format in a generated communication, and timing data related to the frame (e.g., how long a generated frame for a communication corresponding to that frame is to be displayed in the generated communication).

Each of the communication level settings or frame level settings may be conditional, such that the related setting determined when generating a particular communication is generated from the multimedia template may be dependent on associated data at the time of use of the multimedia template to generate the communication, such as data related to the user for whom a communication is being generated or data unrelated to the customer such as a time a communication is being generated. One of these conditional settings may be, for example, related to a communication level setting related to a media type. Such a conditional setting may specify, for example, that a communication is to be generated in a particular format (e.g., video, audio, a slide show, etc.) based on certain data.

As another example, conditional settings may be a frame level setting for a frame related to the inclusion, or a display time, of content for a frame, or even the inclusion or display time of the associated frame itself. Such a frame level conditional setting may, for example, be related to conditional inclusion of the frame, specifying whether the corresponding frame should, or should not, be included in a generated communication based on certain data, including data related to the user (e.g., customer) for whom the communication is being generated. Similarly, a frame level conditional setting may, for example, be related to how long a frame should be displayed in a communication generated for a particular user based on certain data (e.g., user or other types of data).

Each of the settings may also specify one or variables such that customer data corresponding to that variable may be substituted for that variable when generating a communication for a specific user (e.g., customer) based on the data associated with that user (e.g., a “name” variable may be substituted with “Dave” when generating a communication for a user whose user data specifies that the user's name is “Dave”).

As the user is designing the multimedia communication template, the designer may allow the multimedia communication designer user to preview the multimedia template in each of the multiple media formats, including allowing a preview of individual frames of the multimedia template in individual media formats.

In particular, the multimedia communication designer may utilize one or more sets of example or actual customer data to generate such a preview so that the designer can ascertain how an entire communication of a particular format generated from that multimedia template may appear. Moreover, in a similar manner, the designer may utilize one or more sets of example or actual customer data to generate a preview such that the designer can ascertain how an individual frame in a particular format generated from a frame of that multimedia template may appear. The designer may thus allow a preview of a multimedia communication template at a granular level, including at a frame by frame level corresponding to frames included in that multimedia communication template.

Accordingly, at some point a designed multimedia communication template may be used to generate a communication for one or more users This is sometimes referred to as a production environment or the like. When generating a communication for a particular user in a production environment, user data for that user may be obtained. Based on the user data and the multimedia communication template, one of multiple media formats for the generation of the communication may be determined. Such a media format for the content of the communication to be generated may include video (e.g., video with audio), audio (e.g., audio only), a slide show (e.g., a set of ordered static images) or another format. Such a media format may be determined for example, by a setting in that user's data or be a conditional setting specified in the multimedia template, or from other data.

Based on the media format determined, it can be determined if video content is required. If video content is required (e.g., video or static image data) the multimedia template may be provided to an image processing or video processing engine which will generate the required video data using the assets (e.g., as stored in the asset store of the CCM system specified by the multimedia communication template to generate the video component of the multimedia communication. If audio content is required (e.g., video or static image data) the multimedia template may be provided to an audio content engine such as a text to speech engine which will generate the required audio data using the assets specified by the multimedia communication template to generate the audio component of the multimedia communication. Based on the media format determined for the communication it can also be determined if there is a need to merge the generated video content and the generated audio content for the communication. If there is a need to merge the video content and the audio content, the generated video and audio content can be merged to generate the communication according to the multimedia communication template in the determined media format. The generated multimedia communication can then be delivered via a desired channel (e.g., specified by the user or the designer of the multimedia communication template, etc.) such as an email channel, SMS channel, web page, accessible repository or link, or another electronic output channel.

As can be seen, embodiments may present a number of advantages with respect to tailoring of multimedia communications to users. As one particular advantage, embodiments may allow the tailoring of multimedia communications to users based on that user's attributes and the generation of such multimedia content in a variety of formats for different users based on their individual attributes using the same multimedia communication template.

DETAILED DESCRIPTION

Before delving into embodiments in more detail some additional context may be helpful. As discussed above, to address the need for multi-channel communication, an enterprise may utilize a customer communication management (CCM) system. A CCM system may allow a user to define templates for rendering customer communications on one or more channels (e.g., email, SMS, web page, print, PDF). Templates may specify static content as well as the content that can change based on customer data or other data and how content behaves (e.g., reflows or otherwise behaves). Such templates may include variables and have associated logic. A CCM system may process a template to render customer communications from the template.

As mentioned, the content, type, design and versatility of such communications is, however, quite an important step in many enterprise customer communication processes. While current CCM systems may provide improved control of outbound communications, they do not provide a straightforward ability to effectively design and generate certain types of communications at a production scale, including multimedia communications.

Recently with the prevalence of cloud computing platforms, social media and more generally the prevalence of effective video content across Internet touchpoints, users of CCM systems are increasingly desirous of sending video content in these types of targeted communications. The CCM workflow of template design and production scale generation of targeted communication based on those templates does not, however, readily lend itself to the use of video content for targeted communications of this type. As one problem, it is difficult to use templating in the context of video content. Part and parcel with this problem is that certain users may not be able to easily receive or engage with video content. Thus, a problem arises in generating targeted communications to those users in multiple formats while still providing video (or other types) of content for those users who can access this video content.

Embodiments as disclosed may thus provide a way to design, deploy and utilize multimedia (communication) templates to generate targeted communications at a production scale in multiple content formats, including video (e.g., video with audio), audio (e.g., audio only), a slide show (e.g., a set of ordered static images) or other desired formats. More specifically, embodiments may provide a designer through which multimedia templates can be designed on a frame by frame basis in a design mode or at design time. Such a design mode, may be a mode, time, or period in which a template is being created, generated or modified by a (designer) user that is generating or constructing the architecture of a template, including creating instructions, settings, rules, etc. that define instructions for generating a communication from that template.

Referring then toFIG.1, one embodiment of a computer implemented system100is depicted. System100includes an enterprise CCM environment that comprises a designer system102, a design data store104, a production server106, a document store108, an enterprise data source116and one or more external data source122.

Enterprise data source116may comprise a plurality of data sources including, but not limited to, digital asset management (DAM) systems, content management systems (CMS), web content management (WCM) systems, enterprise content management (ECM) systems, or other data sources that include (e.g., multimedia) assets or content (used herein interchangeably) that may be utilized for multimedia communications, such as video content, audio content, image content, document or text content or other types of content. Similarly, external data source122may comprise a plurality of external data sources from which such assets may be accessed or otherwise obtained or from which such assets may be uploaded. System100may be a distributed, networked computing environment comprising a plurality of computing systems or applications coupled through a network. The network may be the Internet, an intranet, a wireless or wired network, a local access network (LAN), a wide access network (WAN), a cellular network or some combination of these types of networks, or another type or types of networks.

The enterprise CCM environment implements a design environment that allows designers to create designs for multimedia communications that can be manifested across multiple channels. To this end, the enterprise CCM environment includes a designer system102that runs a design application124to provide the design environment in which designers (e.g., designer125) can create multimedia communication templates. The multimedia communication template design application124may be, for example, a resident application at the designer system102, such as a desktop application, or may be a web-based application. According to one embodiment, design application124provides an object-oriented design environment in which components of a design are represented by objects. Multimedia communication templates designs created by design application124, such as multimedia communication template130, may be stored to a design data store104.

In a design phase, a designer125(e.g., users at an enterprise) may create multimedia communication templates130. A multimedia communication template130can specify a number of assets (e.g., multimedia assets, including content items or other templates), such as assets from enterprise data source116, where each of these content items may be from one or more other distributed network locations such as a DAM system, WCM system or ECM system within that enterprise.

A CCM system may use the multimedia communication template130to generate a communication for a user associated with the enterprise (e.g., a customer, an agent, etc.) in one of a number of different media formats and deliver that generated multimedia communication in a format and through a communication channel associated with that user (e.g., as determined from a user or customer database). It is common for enterprises to have hundreds of thousands of multimedia communication templates130for use in their CCMs, where these templates can generate millions of communications per month or more.

The design application124may thus present the user with a graphical (or other) interface at the user's computing device (e.g., designer system102) to allow the user to design and select content items in data source116for inclusion in a created multimedia communication template130and to specify which areas of the multimedia communication template130accept content or where content may otherwise be changed, added, removed, or edited. The design application124may also allow the designed multimedia communication template130to be saved in a content management system of the enterprise such that the multimedia communication template130may be managed as content of the enterprise. An example of such an interface that may be presented by the design application is depicted inFIG.3.

The design phase, according to one embodiment, is not merely an edit phase, but is an application type development environment where multimedia communication template130. Design130may include all of the design objects and their property settings that make up a statement, letter, invoice, bill, or other customer communication. In some embodiments, multimedia communication template130sets a framework of how objects and portions of communications generated from multimedia communication template130are presented as well as the rules governing that presentation, thus setting the overall appearance of communications to end-users. Multimedia communication template130may also define the data sources available and the rules governing their selection, as well as the access and authentication regarding a designer user's ability to change certain content elements and access to any or all available data sources.

Multimedia communication template130provides an abstract description for how end-user communications should appear. Multimedia communication template130describes the overall layout of the communications and determines which parts of an end-user communication will contain static information, such as standardized text, which parts of the end-user communication will be filled according to rules. Multimedia communication template130can specify editable and viewable text, optional and selectable paragraphs, variables, values for variables or text areas, sources for content (e.g., values of variables, text for text areas, images), rules for populating content, resource rights, and user rights, among others.

Turning to briefly toFIG.2, one embodiment of a multimedia communication template130is depicted for reference with respect to one embodiment of a description of how such a multimedia communication template130may be designed in conjunction with designer124ofFIG.1, and what a multimedia communication template130may include.

As discussed, multimedia communication template design application124may provide an interface to create, edit or assemble the assets (e.g., content) utilized for a multimedia template for a multimedia communication. In particular, the design of a multimedia communication template130may involve the specification of communication (or template) level settings202for the multimedia communication template130. These communication level settings202may comprise settings (e.g., content generation parameters) that will be applied at a global level to communications generated from the multimedia template130under design, such settings may be related to a global script setting including the type (e.g., male or female) of script reading, or the speed of the audio or script reading among other settings, a specification of background music to present242, an intensity of such background music244, a time between presentation of frames, a transitioning effect240when moving between frames of the multimedia communication or other communication level settings.

The multimedia communication template130may thus also comprise one or more individual frames210a-210n(e.g., frame templates), where each of these frames210may be designed individually by a designer125utilizing (e.g., references to) assets selected from (or uploaded to) a repository116of the CCM system. Each frame (also referred to as a segment) may reference one or more multimedia assets and include content generation parameters that are adapted to be used to generate a (e.g., portion of) a communication based on those content generation parameters using the referenced multimedia assets.

In one embodiment, for each frame210, the designer125may specify frame level settings212on a frame by frame basis, including referencing a background214which may be an image or video selected from the assets of the CCM system, zero or more text areas218to include on that frame210, including a specification of a position220(e.g., X or Y coordinates) of the text area, the size222, the color224and the content of the text area (which may be static or conditional, such as customer variable data, etc.). The design of a frame210may include a script specification216or box including text that designer125wishes to present with the frame210in an audible format in a generated communication, and timing data250related to the frame (e.g., how long a generated frame210for a communication corresponding to that frame210is to be displayed in the generated communication).

Each of the communication level settings202or frame level settings212may be conditional, such that the related setting determined when generating a particular communication is generated from the multimedia communication template130may be dependent on associated data at the time of use of the multimedia communication template130to generate the communication, such as data related to the user for whom a communication is being generated or data unrelated to the user such as a time a communication is being generated. One of these conditional settings may be, for example, related to a communication level setting related to a media type. Such a conditional setting may specify, for example, that a communication is to be generated in a particular format (e.g., video, audio, a slide show, etc.) based on certain data.

As another example, conditional settings may be a frame level setting212for a frame210related to the inclusion, or a display time, of content for a frame210, or even the inclusion or display time of the associated frame210itself. Such a frame level conditional setting may, for example, be related to conditional inclusion of the frame210, specifying whether the corresponding frame should, or should not, be included in a generated communication based on certain data, including data related to the user (e.g., customer) for whom the communication is being generated. Similarly, a frame level conditional setting may, for example, be related to how long a frame should be displayed in a communication generated for a particular user based on certain data (e.g., user or other types of data).

Each of the settings (e.g., communication level settings202or frame level settings212) may also specify one or variables such that user data corresponding to that variable may be substituted for that variable when generating a communication for a specific user (e.g., customer) based on the data associated with that user (e.g., a “name” variable may be substituted with “Dave” when generating a communication for a user whose user data specifies that the user's name is “Dave”). One example of a multimedia communication template comprising multiple frames is included herein in the Appendix below.

As the user125is designing the multimedia communication template130, the multimedia communication template design application124may allow the multimedia communication designer user125to preview the multimedia communication template130in each of the multiple media formats, including allowing a preview of individual frames210of the multimedia template130in individual media formats.

In particular, the multimedia communication template design application124may utilize one or more sets of example or actual customer data to generate such a preview so that the designer can ascertain how an entire communication of a particular format generated from that multimedia template130may appear. Moreover, in a similar manner, the multimedia communication template design application124may utilize one or more sets of example or actual customer data to generate a preview such that the designer user125can ascertain how an individual frame210in a particular format generated from a frame210of that multimedia communication template130may appear. The multimedia template design application124may thus allow a preview of a multimedia communication template at a granular level, including at a frame by frame level corresponding to frames210included in that multimedia communication template130.

As discussed, embodiments may allow the targeting of communications generated from these multimedia communication template design application124to users based on user data. In one embodiment, to facilitate targeted communication and the design of associated multimedia communication templates130, embodiments may employ a customer data engine or platform (used here interchangeably)170. This customer data engine170may, for example, include one or more cloud deployed instances of such a customer data engine170, may be server deployed on-premise of an enterprise or may be deployed in an alternate configuration.

Customer data engine170may maintain user profiles171associated with visitors to a (e.g., the enterprise's) web site or other users for whom it is desired to provide communications. This user profile171may include an identifier for a user (e.g. the client ID, some combination of identifiers, etc.) provided in association with the provisioning of the web site to the user. The user profile171may also include other data associated with the user, including a browser identifier associated with a browser on the user's device120or data provided by the user as they accessed the web site of the enterprise or almost any manner of user data desired. This user data may include demographic data about a user, including the user's email or phone number or address. For example, when a user interacts with a web site (e.g., to register for an event, institute a communication such as an insurance quote, etc.) this user data may be stored in the maintained user profile171.

At some point then, it may be desired to generate a communication for a user based on such a defined multimedia communication template130. In some embodiments, then, this may entail the deployment of the multimedia communication template into a “production” environment (e.g., designating that the multimedia communication template130may actually be used to generate communications to users). To this end, production server106provides a CCM engine142that processes the multimedia communication template's abstract design description and produces a communication144.

In such cases, CCM engine142of the production server106may receive an event such as a request to generate a communication for a user, where the request may include an identifier of the multimedia communication template130to be used to generate the communication to the user along with an identifier for the user (e.g., a client ID for the user). Such a request may, for example, be initiated by a workflow engine or other application adapted to cause communications to users to be generated.

Specifically, CCM engine142may use multimedia communication generator180to evaluate the multimedia communication template130to determine the assets referenced by the multimedia communication template130, retrieve the referenced content from enterprise data source116, external data sources122or other data source and render these assets into a multimedia communication144as defined by multimedia communication template.

Processing of multimedia communication template130can include for example pulling sourced data into document144. Sourced data can be pulled into document144through network connections to enterprise data source116, external data source122, or other information sources. To process multimedia communication template130to generate a communication144for a particular user, CCM engine142can obtain the attributes associated with the identified user from the customer data engine170or such attributes associated with the identified user may be included in the request to generate the communication for the user. In one embodiment, the CCM engine142may send a request to the customer data engine170identifying the user (e.g., using the identifier for the user as received in the request to generate the communication) for whom the communication is being generated.

The customer data engine170can receive such a request identifying the user and obtain and return user data regarding the identified user. In one embodiment, the customer data engine170may utilize the identifier for the user as received in the request to determine the user data for the user. Specifically, the customer data engine170may utilize the user identifier to determine user data from a user profile171associated with the user identifier. Thus, user data may be returned from the customer data engine to the CCM engine142.

Based on the user data and the multimedia communication template130, one of multiple media formats for the generation of the communication144may be determined by multimedia communication generator180. Such a media format for the content of the communication144to be generated may include video (e.g., video with audio), audio (e.g., audio only), a slide show (e.g., a set of ordered static images) or another format. Such a media format may be determined, for example, by a setting in that user's data (e.g. obtained from customer data engine170) or be a conditional setting specified in the multimedia communication template130, or from other data.

Based on the media format determined, it can be determined if video content is required. If video content is required (e.g., video or static image data) the multimedia communication template130may be provided to an image processing or video processing engine182which will generate the required video data using the assets (e.g., as stored in the asset store116of the CCM system specified by the multimedia communication template130to generate the video component of the multimedia communication144).

In particular, each frame210of the multimedia communication template130may be evaluated to determine if that frame is to be included in the video content to be generated for the communication. For each frame210that is to be included, the (multimedia) assets references by the frame210(e.g., the background214, text definition218, etc.) may be obtained and, based on any content generation parameters associated with the frame210or multimedia communication template130, used to generate corresponding video content for that frame210.

If audio content is required the multimedia communication template130(or frames210thereof) may be provided to an audio content engine such as a text to speech generator184which will generate the required audio data using the assets specified by the multimedia communication template130and the content generation parameters to generate the audio component of the multimedia communication144.

Again, each frame210of the multimedia communication template130may be evaluated to determine if that frame is to be included in the audio content to be generated for the communication. For each frame210that is to be included, the (multimedia) assets references by the frame210(e.g., the script216, text definition218, etc.) may be obtained and, based on any content generation parameters associated with the frame210or multimedia communication template130, used (e.g., by text to speech generator184) to generate corresponding content for that frame210.

Based on the media format determined for communication144it can also be determined if there is a need to merge generated video content and the generated audio content for the communication. If there is a need to merge the video content and the audio content, the generated video and audio content can be merged by aggregator186to generate the communication144according to the multimedia communication template130in the determined media format. The generated multimedia communication144can then be delivered via a desired channel (e.g., specified by the user or the designer of the multimedia communication template, etc.) such as an email channel, SMS channel, web page, accessible repository or link, or another electronic output channel.

As can be seen, embodiments may present a number of advantages with respect to tailoring of multimedia communications to users. As one particular advantage, embodiments may allow the tailoring of multimedia communications to users based on that user's attributes and the generation of such multimedia content in a variety of formats for different users based on their individual attributes using the same multimedia communication template.

For example, using multimedia communication template130one communication144amay be generated in one media format (e.g., slideshow) and sent to a corresponding user121aat that user's device120ausing one channel where that communication144amay include only certain frames210specified by the multimedia communication template130. Similarly, using that same multimedia communication template130mother communications144b,144cmay be generated in other media formats (e.g., audio or video) and sent to corresponding users121b,121cat those users' devices120b,120cusing other channels, where those communications144b,144cmay include data for only certain (e.g., different) frames210specified by the multimedia communication template130.

Certain embodiments may be better understood with reference now toFIG.4which is a block diagram depicting the process of designing a multimedia communication template in a CCM system. As discussed, a design user425may interact with an interface of a multimedia template design application to create, edit or assemble assets (e.g., content) utilized for a multimedia template for a multimedia communication. The designer user425may utilize the interface to access or import content from a content store to utilize in designing the multimedia communication template, or to design or import content that may be stored in such a content store (e.g., and utilized in designing the multimedia communication template).

In particular, the design of a multimedia communication template may involve the specification of communication (or template) level settings (STEP402) for the multimedia communication template. These communication level settings may comprise settings that will be applied at a global level to communications generated from the multimedia template under design.

The designer user425can also design one or more individual frames for the multimedia communication template (STEP404). In designing an individual frame for the multimedia communication template the designer user425may set frame level settings (STEP406) including a background which may be an image or video selected from the assets of the CCM system (STEP412), add text or images (STEP408) to the frame using assets selected from (or uploaded to) the content stored, add zero or more text areas to include on that frame (STEP408), specify a script or box including text that designer425wishes to present with the frame in an audible format in a generated communication (STEP410), and add any additional audio or video content for the frame (STEP418). The designer425can also specify background music to present for the multimedia communication template, including, an intensity of such background music, a time between presentation of frames or a transitioning effect 0 when moving between frames of the multimedia communication (STEP414).

As the designing user425is designing the multimedia communication template, the multimedia communication template design application may allow the multimedia communication designer user to preview the multimedia communication template in each of the multiple media formats, including allowing a preview of individual frames of the multimedia template in individual media formats (STEP440).

Additionally, the multimedia communication template design application may utilize one or more sets of example or actual customer data to generate such a preview so that the designer can ascertain how an entire communication of a particular format generated from that multimedia template may appear (STEP450). Moreover, in a similar manner, the multimedia communication template design application may utilize one or more sets of example or actual customer data to generate a preview such that the designer user125can ascertain how an individual frame in a particular format generated from a frame of that multimedia communication template may appear (STEP440). The multimedia template design application may thus allow a preview of a multimedia communication template at a granular level, including at a frame by frame level corresponding to frames included in that multimedia communication template. When the designer user425is satisfied with the design of the multimedia communication template, the designer user425may utilize the design interface to generate and save the multimedia communication template for future use by the CCM system (STEP452).

Moving now toFIG.5, a flow diagram, one embodiment of a method for generating a communication for a user from a multimedia communication template by a CCM system is depicted. The generation of such a communication may be initiated by an event such as a request to generate a communication for a user, where the request may include an identifier of the multimedia communication template to be used to generate the communication to the user along with an identifier for the user. To process the specified multimedia communication template to generate a communication for a particular user, the attributes associated with the identified user can be obtained (STEP502).

An example of such user attribute data in JavaScript Object Notation (JSON) format (e.g., that may be returned in response to a request for such user data, or included in a request to generate a document for a user) is:

The multimedia communication template can also be evaluated to determine the assets referenced by the multimedia communication template (e.g., by each frame of the multimedia communication template that is to be included in the generated communication) and the media format in which the communication should be generated (STEP504). In particular, based on the obtained user data and the multimedia communication template, one of multiple media formats for the generation of the communication may be determined. Such a media format for the content of the communication to be generated may include video (e.g., video with audio), audio (e.g., audio only), a slide show (e.g., a set of ordered static images) or another format. Such a media format may be determined, for example, by a setting in that user's data or be a conditional setting specified in the multimedia communication template, or from other data.

Based on the media format determined, it can be determined if video content is required (STEP506). If video content is required (e.g., video or static image data) (Y Branch of STEP506) the video content may be generated (STEP516). Specifically, the multimedia communication template may be provided to an image processing or video processing engine which will generate the required video data for each frame specified by the media communication template which is to be included in the generated communication using the assets specified by the multimedia communication template.

If audio content is required (e.g., video or static image data) (Y Branch of STEP508) the multimedia communication template may be provided to an audio content engine such as a text to speech generator which will generate the required audio data for each frame of the multimedia communication template to be included in the generated communication using the assets specified by the multimedia communication template (e.g., the text script specified for each frame) to generate the audio component of the multimedia communication (STEP518). In certain cases then, to generate (e.g., a portion of the) audio content for a frame, the text of a multimedia asset referenced by a frame (or included in the frame, such as a script) may be supplied to the text to speech engine to apply the text to speech engine to that text to generate the audio content corresponding to that frame.

Based on the media format determined for the communication it can also be determined if there is a need to merge generated video content and the generated audio content for the communication (STEP512). If there is a need to merge the video content and the audio content (Y Branch of STEP512), the generated video and audio content can be merged to generate the communication according to the multimedia communication template in the determined media format (STEP514). The multimedia communication can then be generated and delivered via a desired channel (e.g., specified by the user or the designer of the multimedia communication template, etc.) such as an email channel, SMS channel, web page, accessible repository or link, or another electronic output channel (STEP524).

Embodiments as disclosed, or portions thereof, are implemented on a computing system. Any combination of mobile desktop, server machine, cloud deployed servers (virtual or actual) or containers, embedded or other types of hardware, etc. may be used as such computing systems.FIG.6is a diagrammatic representation of one embodiment of a distributed network computing environment where embodiments disclosed herein can be implemented. The computing environment includes a designer computer system1000, a production server computer system1020, and an end-user computer system1080connected to a network1005(e.g., a local area network (LAN), a wide area network (WAN) such as the Internet, mobile network, or other type of network or combination thereof). Network1005can represent a combination of wired and wireless networks that network computing environment may utilize for various types of network communications.

Designer computer system1000is one embodiment of a designer system, and end-user computer system1080is one embodiment of a user system. Production server computer system1020is one embodiment of a production server. Customer data computer1040is one embodiment of a customer data engine1050.

Designer computer system1000includes, for example, a computer processor1002and associated memory1004. Computer processor1002may be an integrated circuit for processing instructions, such as, but not limited to a CPU. For example, processor1002may comprise one or more cores or micro-cores of a processor. Memory1004may include volatile memory, non-volatile memory, semi-volatile memory, or a combination thereof. Memory1004, for example, may include RAM, ROM, flash memory, a hard disk drive, a solid-state drive, an optical storage medium (e.g., CD-ROM), or other computer readable memory or combination thereof. Memory1004may implement a storage hierarchy that includes cache memory, primary memory, or secondary memory. In some embodiments, memory1004may include storage space on a data storage array. Designer computer system1000may also include input/output (“I/O”) devices1006, such as a keyboard, monitor, printer, electronic pointing device (e.g., mouse, trackball, stylus, etc.), or the like. Designer computer system1000may also include a communication interface1008, such as a network interface card, to interface with network1005.

Memory1004stores instructions executable by processor1002. For example, memory1004may include a design application1010executable to allow a user to design a multimedia communication template. Designs may be stored to a design data store1018. Design data store1018may comprise a database, file system, other type of data store or combination thereof. According to one embodiment, design data store may be implemented by a DAM system, CMS, WCM system, or ECM system.

Production server computer system1020includes, for example, a computer processor1022and associated memory1024. Computer processor1022may be an integrated circuit for processing instructions, such as, but not limited to a CPU. For example, processor1022may comprise one or more cores or micro-cores of a processor. Memory1024may include volatile memory, non-volatile memory, semi-volatile memory, or a combination thereof. Memory1024, for example, may include RAM, ROM, flash memory, a hard disk drive, a solid-state drive, an optical storage medium (e.g., CD-ROM), or other computer readable memory or combination thereof. Memory1024may implement a storage hierarchy that includes cache memory, primary memory, or secondary memory. Production server computer system1020may also include I/O devices1026, such as a keyboard, monitor, printer, electronic pointing device (e.g., mouse, trackball, stylus, etc.), or the like. Production server computer system1020may also include a communication interface1028, such as a network interface card, to interface with network1005.

Memory1024stores instructions executable by processor1022. For example, memory1024may include a CCM software1030executable to process multimedia communication templates from design store1018to generate a communication and render the communication in multiple formats to a number of channels. According to one embodiment, CCM software1030is executable to provide a CCM engine that can pull data from a variety of enterprise data sources1092and external data sources1094.

According to one embodiment, CCM software1030is executable to generate communication in a plurality of media formats according to a design of a multimedia communication template.

Customer data engine (CDE) computer system1040includes, for example, a computer processor1042and associated memory1044. Computer processor1042may be an integrated circuit for processing instructions, such as, but not limited to a CPU. For example, processor1042may comprise one or more cores or micro-cores of a processor. Memory1044may include volatile memory, non-volatile memory, semi-volatile memory, or a combination thereof. Memory1044, for example, may include RAM, ROM, flash memory, a hard disk drive, a solid-state drive, an optical storage medium (e.g., CD-ROM), or other computer readable memory or combination thereof.

Memory1044may implement a storage hierarchy that includes cache memory, primary memory, or secondary memory. CDE computer system1040may also include I/O devices1046, such as a keyboard, monitor, printer, electronic pointing device (e.g., mouse, trackball, stylus, etc.), or the like. Customer data engine server1040may also include a communication interface1048, such as a network interface card, to interface with network1005. It will be noted that customer data engine

Memory1044stores instructions executable by processor1042. For example, memory1044may include a customer data engine1050for obtaining audience data from an analytics platform, store user profiles, correlating user profiles, and to allow access to such data through an interface, such as a services interface or the like.

End-user computer system1080includes, for example, a computer processor1082and associated memory1084. Computer processor1082may be an integrated circuit for processing instructions, such as, but not limited to a CPU. For example, processor1082may comprise one or more cores or micro-cores of a processor. Memory1084may include volatile memory, non-volatile memory, semi-volatile memory, or a combination thereof. Memory1084, for example, may include RAM, ROM, flash memory, a hard disk drive, a solid-state drive, an optical storage medium (e.g., CD-ROM), or other computer readable memory or combination thereof. Memory1084may implement a storage hierarchy that includes cache memory, primary memory, or secondary memory. In some embodiments, memory1084may include storage space on a data storage array. End-user computer system1080may also include I/O devices1086, such as a keyboard, monitor, printer, electronic pointing device (e.g., mouse, trackball, stylus, etc.), or the like. End-user computer system1080may also include a communication interface1088, such as a network interface card, to interface with network1005.

Memory1084stores instructions executable by processor1082. For example, memory1084may include an application1090such as a web browser.

Those skilled in the relevant art will appreciate that the invention can be implemented or practiced with other computer system configurations including, without limitation, cloud deployed computing systems or server (E.g., either physical or virtual), multi-processor systems, network devices, mini-computers, mainframe computers, data processors, and the like. The invention can be embodied in a general-purpose computer, or a special purpose computer or data processor that is specifically programmed, configured, or constructed to perform the functions described in detail herein. The invention can also be employed in distributed computing environments, where tasks or modules are performed by remote processing devices, which are linked through a communications network such as a LAN, WAN, and/or the Internet.

In a distributed computing environment, program modules or subroutines may be located in both local and remote memory storage devices. These program modules or subroutines may, for example, be stored or distributed on computer-readable media, including magnetic and optically readable and removable computer discs, stored as firmware in chips, as well as distributed electronically over the Internet or over other networks (including wireless networks). Example chips may include Electrically Erasable Programmable Read-Only Memory (EEPROM) chips. Embodiments discussed herein can be implemented in suitable instructions that may reside on a non-transitory computer readable medium, hardware circuitry or the like, or any combination and that may be translatable by one or more server machines. Examples of a non-transitory computer readable medium are provided below in this disclosure.

Although the invention has been described with respect to specific embodiments thereof, these embodiments are merely illustrative, and not restrictive of the invention. Rather, the description is intended to describe illustrative embodiments, features and functions in order to provide a person of ordinary skill in the art context to understand the invention without limiting the invention to any particularly described embodiment, feature, or function, including any such embodiment feature or function described. While specific embodiments of, and examples for, the invention are described herein for illustrative purposes only, various equivalent modifications are possible within the spirit and scope of the invention, as those skilled in the relevant art will recognize and appreciate.

As indicated, these modifications may be made to the invention in light of the foregoing description of illustrated embodiments of the invention and are to be included within the spirit and scope of the invention. Thus, while the invention has been described herein with reference to particular embodiments thereof, a latitude of modification, various changes and substitutions are intended in the foregoing disclosures, and it will be appreciated that in some instances some features of embodiments of the invention will be employed without a corresponding use of other features without departing from the scope and spirit of the invention as set forth. Therefore, many modifications may be made to adapt a particular situation or material to the essential scope and spirit of the invention.

Embodiments discussed herein can be implemented in a set of distributed computers communicatively coupled to a network (for example, the Internet). Any suitable programming language can be used to implement the routines, methods, or programs of embodiments of the invention described herein, including C, C++, Java, Javascript, HTML, or any other programming or scripting code, etc. Other software/hardware/network architectures may be used. Communications between computers implementing embodiments can be accomplished using any electronic, optical, radio frequency signals, or other suitable methods and tools of communication in compliance with known network protocols.

Although the steps, operations, or computations may be presented in a specific order, this order may be changed in different embodiments. In some embodiments, to the extent multiple steps are shown as sequential in this specification, some combination of such steps in alternative embodiments may be performed at the same time. The sequence of operations described herein can be interrupted, suspended, or otherwise controlled by another process, such as an operating system, kernel, etc. The routines can operate in an operating system environment or as stand-alone routines. Functions, routines, methods, steps, and operations described herein can be performed in hardware, software, firmware, or any combination thereof.

A “computer-readable medium” may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, system, or device. The computer readable medium can be, by way of example only but not by limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, system, device, propagation medium, or computer memory. Such computer-readable medium shall generally be machine readable and include software programming or code that can be human readable (e.g., source code) or machine readable (e.g., object code). Examples of non-transitory computer-readable media can include random access memories, read-only memories, hard drives, data cartridges, magnetic tapes, floppy diskettes, flash memory drives, optical data storage devices, compact-disc read-only memories, and other appropriate computer memories and data storage devices.

APPENDIX