# XMPie Complete Documentation > Comprehensive documentation for all XMPie products including Circle, uStore, uProduce, uCreate, uPlan, uImage, XES, and XVS. - **Navigation Index**: [llms.txt](https://help.xmpie.com/llms.txt) - **Support**: https://www.xmpie.com/support - **Security**: SOC 2 Type II certified Version: 2026-03-17-60bb63 Topics: 893 Projects: 14 --- # Circle Documentation ### Introduction # Introduction #### Introduction to XMPie Circle # Introduction to XMPie Circle Welcome to XMPie Circle, a SaaS component of XMPie PersonalEffect for managing your multichannel marketing communications.  It is a campaign management, visualization and automation tool.   This product allows service providers, agencies and clients to visualize, communicate and collaborate based on the campaign diagram. The campaign's interactive diagram is used for all phases of the campaign, from conceptualization through to execution and result monitoring. Circle makes campaigns easier to explain and sell and enables a broader adoption of lasting, strategic partnerships with your customers that grow your business and increase your revenue. In Circle, campaigns are represented and implemented as Projects. Circle allows you to manage the full campaign cycle  —  starting from the campaign conceptualization through its implementation and execution to tracking and analytics. Circle uses the on-premises uProduce as its data storage and production engine. The campaign creation process is a result of collaboration between various types of participants who contribute at different stages: - **Administrators****:** Circle users with full permissions. Administrators install the Circle Agent and establish a connection with uProduce. They invite other users to the account, grant them access to all the projects, create/delete projects, import/export projects and are responsible for all the payments. Administrators have permissions to all Circle features, including subscription, which enables them to assist other users if necessary. - **Power Users****:** Circle users with extended permissions. Power Users create new projects, archive/un-archive projects and invite reviewers, builders and planners to the project. - **Planners****:** Project creators (sales and marketing experts and marketing agencies) who design the project's diagrams, add/delete mockups, invite reviewers and send comments. - **Builders****:** Circle operators who are responsible for all production-related elements of the project, such as print and email documents, webpages and analytics reports. Builders are also responsible for scheduling delivery of project material. - **Reviewers****:** Project customers who collaborate with project creators by reviewing the project, inviting other reviewers and sending their comments. For more information, see User roles and permissions. Circle is a browser-based application and is fully functional in the following browsers: Chrome, Firefox, Safari. It is recommended that you use the most updated browser version. ## Circle workspace The following is the Circle workspace, where you plan, build and manage your project. The Circle workspace consists of the following four sections: - **Header area:** Includes the project and account name, a menu bar and toolbar. - **Toolbox (left panel):**  Provides tools for planning your project. - **Canvas (area on right):** Your work area for planning, building, and managing your project. #### User Roles and Permissions # User roles and permissions The following table describes the permissions assigned to different Circle user roles. | User | Permissions / Role | | --- | --- | | Administrator (Principal User) | Full permissions, including billing for the subscription: Installs the Circle Agent Configures Agent settings Invites users to an account Registers to an account Manages project users Inviting users to a project | | Power User (Principal User) | Extended permissions, used together with the planner or builder role: Creates new projects Archives / un-archives projects Invites reviewers, builders and planners to the project | | Planner | Permissions confined to project design: Designs project diagrams Adds/deletes mockups Invites reviewers Sends comments | | Builder | Responsible for implementing the project: Defines the data source Compiles the plan file Defines sample recipients | | Reviewer (Customers) | Collaborates on reviewing the project: Reviews projects Invites reviewers Sends comments | #### Admin setup tasks # Admin setup tasks The administrator is responsible for creating uProduce users, inviting users to an account, managing account and project users, and registering users to an account. ## Create uProduce users - Click the **Users** button on the navigation bar. The **Users** list is displayed. - Click the **New** button. The **New User** page is displayed. - Enter the following required information (other settings are optional): | Option | Description | | --- | --- | | Login Information | | Login Name | Name the user will use to log in. | | Password Confirm Password | User’s password (re-enter the password for confirmation). | | User Information (Required Fields) | | First Name, Last Name | First name and Last name of the new user. | | Email | Email address of the new user. | - Enter the optional information as necessary. If you have already defined accounts, you can choose on which accounts this user will be able to work, by selecting these accounts in the **Shared Accounts** section. - Click **Save** to save the user information. ## Invite users to an account The administrator can invite other users to participate in projects belonging to a particular account. - Click **File** > **Account** >**Account**-Invite. The Invite to Account page is displayed. The **Project** field value is automatically set to All and cannot be modified. The Account field displays the name of the account. - In the **To** field, type the email address of the user you want to invite. - In the **Roles** field, select the user role/s you want to assign to the invited user. You can combine roles, for example, Planner and Builder, if you want to grant the invited user both sets of permissions. See Circle user roles and permissions. - Optionally, edit the invitation message. - Click **Send** **Invitation**. An email is sent to the invited user with a link to the Circle Registration page. The user then clicks the link to register for a Circle Account. ## Manage account users Account administrators are authorized to view all account users, remove them and assign account roles. - From the **File** menu, select **Account** >**Account** - **Roles**. The Roles window is displayed. You can see all the users who have access permissions to the selected account. To re-assign account roles, select or deselect the corresponding checkboxes. - To remove an account user, hover over **User Name/Email** and click **Delete **.  As Power User and Administrator are chargeable user roles, you might want to remove them to reduce your expenses. - Click **Save**. In the **Roles** window, you can view and delete users assigned to a specific project within the selected account. Those users are marked with **(P)** in the **Name/Email** column. Note that deleting a project user deletes him or her from all the projects within the selected account to which he or she is assigned. ## Register users to an account When a new, unregistered user receives an invitation to collaborate on a specific project or on the entire account, he/she must register to Circle. The invitation email contains a link to the **Registration** window. - Fill in the registration form and click **Register**. ## Manage project users Users working on a project can view other project users. Administrators can also assign and re-assign user roles and remove users from projects. - Open a project. - Click **File** > **Roles**. The **Roles** dialog box is displayed with a list of all users with access permissions to the selected project. The **Name/Email** field displays the email addresses of new users and the first and last names of existing users. - To re-assign a role, select or deselect the checkboxes corresponding to the user's name or email address. Account administrators can assign any role. All other users can assign only the reviewer role. - To remove a project user, hover over the user name or email and click the **Delete** icon. Deleting a project user removes the user only from the current project. The user's access permissions to other projects within the account are not affected. To delete the project user from all the projects within the account, go to the **Account - Roles** window. - Click **Save**. #### Before you begin # Before you begin ## About PersonalEffect XMPie PersonalEffect® Cross Media is an award-winning Customer Communication Management (CCM) solution specializing in Variable Data Publishing (VDP). PersonalEffect is a modular solution including a suite of products which work together to produce multichannel personalized communications. These products are highly specialized to address the needs of the professionals they are serving: - Campaign management tool **Circle** is your campaign management, visualization and automation tool offering an interactive digital storyboard for planning, implementing, and automating multichannel campaigns. Circle makes it easier to explain, sell and manage your campaigns. Circle is a tool for sales representatives and marketing agencies that plan campaigns as well as for production managers who run operations. - Creative tools XMPie tools, which are fully integrated into the industry-standard Adobe suite, allow you to add personalization to your print and video designs. - **uCreate Print** plug-in for Adobe InDesign for creating personalized print documents. This tool is mainly used by designers and studio managers. uCreate Print may come with add-on modules for personalizing images (uImage® ) and charts (uChart®). For more information, see uCreate Print documentation and uImage documentation. - **XMPie Video Service (XVS)** is a plug-in for Adobe After Effects for creating personalized videos. Both email and web use the XMPie **Open XM** technology to add personalization. - Logic tool **uPlan** is a tool for specifying the Logic component of a print document, email or website (essentially the rules, the data schema and the content objects exported to the design). uPlan is used by programmers or database administrators. For more information on uPlan, see the uPlan documentation. - Production engine **uProduce** is server-based software for binding the logic, data, and design to create personalized print documents, emails or websites, and for processing them, as needed. uProduce serves as a back-end production engine whereas the production is managed via Circle user interface. For more information on uProduce, see uProduce setup and monitoring. - Analytics tool - **Circle Analytics** allows for tracking and analyzing campaign performance. For more information, see Circle analytics. Different members of the campaign development team can work on various aspects of the same campaign independently. After creating an initial plan that defines the content objects, the database professionals, programmers and sometimes even business managers can continue using uPlan, to further refine the campaign's data and logic. At the same time, designers and studio professionals can use uCreate Print to work on the print design and web developers can use Open XM or any web development tool to create web design. The PersonalEffect solution provides cost-effective variable data publishing implementations, without limiting the design scope or trivializing the data or rules model. Moreover, PersonalEffect provides a unified, consistent and streamlined approach to handling multiple media channels, integrating with other systems for automation, workflow, e-commerce, etc. ## XMPie Personalization The integration of design, logic, and data to serve multiple media channels is at the heart of XMPie’s personalization technology and multichannel customer communications management solution. Our software is engineered to make it easy to integrate each channel, with no compromise on creativity, into an effective cross media customer experience. The latest web technologies are supported with Open XM technology so that your digital content can holistically coexist with state-of-the art variable print designs. ### Binding Design, Data and Logic The PersonalEffect personalization is based on the concept of binding **Design**, **Data** and **Logic** to produce multichannel campaigns. Whether a campaign consists of print, email or web, or a combination of any of these – with XMPie, all designs share the same Logic and Data, thus, enabling a truly holistic brand experience. - **Logic** component: represented by a **p****lan** file containing the rules and logic of the campaign - **Data** component: represented by a **data source** (for example, an Excel sheet or a database); - **Design** component: marketing **print/email/web design**. These designs include content objects at all places where personalization is required. During production, content object values are resolved. The content object binds the design to the logic for the specified recipient’s data and the resolved value is the personalized output for that specific recipient. ## PersonalEffect Architecture ## Core Technologies ### ADOR technology PersonalEffect is built on top of XMPie's unique **Automatic Dynamic Object Replacement (ADOR®) Technology** which drives the cross media personalization capabilities of the XMPie solutions. The ADOR technology uses content objects to introduce personalization to the existing Design. A content object is an object of the plan that is visible to a design. Content objects can be of various design-centric types, for example, text or graphic. The designer uses simple point-and-click operations to tag a design object (say, a text frame or graphic frame) with the desired content object. Such a tagged design object becomes a dynamic object: a design object that derives its content and/or appearance from the content object’s value. Content object values are calculated by the plan’s rules, using the given data source(s). These calculations are performed iteratively, once for each recipient, resulting in a set of recipient-specific values for each content object. In a way, one can think of content objects as the intermediaries between the logic (that is, plan) and data (that is, data source) and the design (that is, XMPie tagged document). The ADOR technology also provides the campaign object (represented in 2G as project), which essentially defines a collection of dynamic documents. The unique property of a campaign is that all of its tagged designs can be matched to the content objects defined by its plan, and that the campaign's data source matches the data schema defined by its plan. ### Open XM Technology In addition, the Open XM™ cross-media technology is the core mechanism for achieving personalization for digital media (email and web). The Open XM is a stack including XMPL HTML, XMPL JavaScript and XMPL Rest API. The XMPL HTML extends the HTML tagging language by adding new directives (tags and attributes) that provide the needed personalization functionality. This is a very rich language and is covered in the XMPL SDK (https://github.com/XMPieLab/XMPL-SDK/wiki). Using XMPL HTML one can easily convert a standard HTML website to a personalized page by adding a few personalization tags and a code snippet. The XMPL technology uses HTML code snippets to modify the standard HTML behavior. This snippet method is a common practice in modern web development, for example, it is used to include Google Analtyics, Facebook Like, and other components in a webpage. The XMPL JavaScript provides a personalization JavaScript library for client side developers. The XMPL REST API provides personalization API for any client on the Internet, including mobile devices, servers, and web applications. ### Additional Resources # Additional Resources #### Customer Expectation Document # Customer Expectation Document This topic defines all supported environments, required system configurations, interoperability details, and limitations for operating Circle and the XMPL server. It ensures that administrators, integrators, IT teams and partners have the necessary information to deploy, configure and maintain compatible environments. The information contained applies exclusively to Circle (cloud application) and XMPL (web personalization server), as part of the XMPie PersonalEffect ecosystem. ## Product components ### Circle Circle is a cloud-based campaign orchestration platform for managing cross-media communications. It provides workflow management, campaign design, automation, execution, and analytics capabilities. ### XMPL server XMPL is the web personalization server used for hosting personalized websites, mapping friendly URLs, delivering web content dynamically, and recording visitor interactions. XMPL is controlled and configured by Circle and forms part of the PersonalEffect infrastructure. ## System architecture Circle connects with on‑premise PersonalEffect components via the Circle Agent installed on the uProduce server. XMPL runs as part of the PersonalEffect system environment. High-level architectural components include: - Circle (cloud) - Circle Agent (installed on uProduce server) - uProduce (production engine) - XMPL web server - Optional: uStore, XES ## Supported browsers | Browser | Support | Notes | | --- | --- | --- | | Google Chrome | Last 12 months versions | Full support. Recommended browser for best experience | | Mozilla Firefox | Last 12 months versions | Full support | | Microsoft Edge | Last 12 months versions | Full support | | Safari (macOS) | Last 12 months versions | Full support | | Safari (iOS/iPadOS) | | Not supported | ## Mobile & tablet support Circle is not optimized for mobile or tablet usage. The following environments are explicitly unsupported: - Mobile browsers (all) - iPadOS and Android tablets - Responsive UI layouts - Touch gestures ## Operating system compatibility (Circle Agent & PersonalEffect) Circle is a cloud-hosted service. Local system compatibility applies to the Circle Agent installed on the uProduce server. The supported operating system is: Windows Server 2022 Standard Edition. All machines within the PersonalEffect environment must run the same operating system version. Mixed-versions or mixed-OS deployments are not supported. ## XMPL server requirements XMPL requirements are defined by the PersonalEffect system requirements as follows: - Web server configuration - .NET runtime requirements - Network and firewall prerequisites - IIS configuration - Load balancing considerations (if used) | Processor | One physical Quad-Core Intel Xeon | | --- | --- | | Memory | 8 GB RAM or more | | Disk Storage | Two hard drives in RAID 1 (mirroring) configuration with two partitions: Partition C: Operating system (~80 GB); Partition D: (~150 GB) For XMPie applications and websites | | Network | Gigabit Ethernet adapter | | Operating System | Windows Server 2025 Standard Edition | **Note:** A server which is used for XMPie server applications is a dedicated server. No other software or web applications should be installed. ## Circle ecosystem integration | Product | Minimum Version | Integration Type | | --- | --- | --- | | PersonalEffect | 12.1 and up | Direct integration | | uStore | 19.0 and up | Campaign on Demand | | XMPL | 5.0 and up | Web personalization & APIs | | XES | 3.5 and up | Email services | ## API compatibility | Specification | Details | | --- | --- | | API Type | REST | | Authentication | Security Token | | Format | JSON (UTF-8) | ## Localization The Circle UI is available in English only. ## Management & deprecation policy - The Circle API follows semantic versioning. - Breaking changes are communicated at least 3 months in advance. - Backward compatibility is maintained for one major version. ## Unsupported platforms & incompatible versions - Mobile browsers (all) - Tablet devices (iPadOS, Android) - Internet Explorer (all versions) - uProduce versions earlier than 12.1 ### Planning your Flow # Planning your Flow #### Planning a Flow in the Canvas # Planning a flow in the canvas The **Plan** tab is the place where you draw your flow diagram. Here you can brainstorm and layout your initial ideas and then refine the diagram until it represents your project plan. The main area of the Circle workspace is the canvas where you plan your project. You design a flow by dragging and dropping nodes from the toolbar to the canvas. The diagram represents your project which you can brand with your customer's logo, and then share an image of the diagram or a link to the project with your customer. The toolbox on the left provides access to a variety of visually-rich nodes that can be used in your flow to plan the project: - **Touchpoints:** Represent an interaction with the target audience. Touchpoint interaction can be implemented through different media and channels, for example, a print touchpoint, an email touchpoint, and SMS touchpoint or a webpage touchpoint. - **Enhancers:** Can be added to the touchpoints to enhance the customer experience, for example, a QR code. - **Actions:** Can be added to the touchpoints to generate a specific action, for example, a report on whether the recipient visited the URL provided in the email. - **Orientation:** Can be added to the touchpoints to make the project clearer, for example, a separator to divide the flow into sections. - **Flow Patterns:** Allows you to incorporate previously defined flows into the new flow. For more information, see Working with the plan toolbox. ## Sample flow This sample demonstrates a birthday greetings project. Based on recipient communication preference, birthday greetings can be sent in the following ways: - **Print** (Birthday Greeting Self Mailer): Sent to a recipient whose birthday is the following month. - **Email** (Birthday Greeting Email): Sent every day, early in the morning, to all recipients whose birthday is on that day. The printed greeting contains a QR code leading to a webpage containing a personalized video. The email greeting contains a link leading to a webpage containing a personalized video. Recipients can share the experience with their friends through Facebook and email. ## Navigate the diagram with the Minimap A diagram may be too large to fit the screen. In this case, you can use the Minimap view to allow you to navigate to a hidden part of the diagram. As opposed to zooming out which makes large diagrams too small to be able to work with, Minimap allows you to view the diagram in full size by restricting the view to the desired area. For large diagrams, the Minimap is very useful since it gives you a quick bird's eye view of the entire diagram and an efficient way to navigate to a hidden part of the diagram. To navigate the diagram using Minimap: - Click the **Minimap** icon at the bottom of the screen. The **Minimap** window opens, displaying the entire diagram. - Drag the rectangle to navigate to the desired portion of the diagram. The area included in the rectangle is displayed on the screen. - Close the **Minimap** window by clicking X or by clicking the Minimap icon again. ## More topics These additional topics will help you design your flow diagram: Working with nodes Working with the plan toolbox Working with mockups Sharing your projects Branding your projects Reviewing a project #### Nodes # Working with nodes You can design the flow by dragging nodes from the toolbox and dropping them onto the canvas. A new node is marked with an asterisk (*) which indicates that this is a newly-added node that has not yet been saved. Once the diagram is saved, the node gets assigned a node ID according to its relative position in the diagram (for example, P1 for the first print touchpoint or E2 for the second email touchpoint). ## Add titles to nodes Although some nodes and connectors are self-explanatory, it is often helpful and sometimes necessary to add a title. Additional information can be added to any node by clicking the Information icon. If scheduling is defined for a node, the node title becomes the touchpoint name. - Select the node and click the **Title** text box. - Type the node title. - When you finish typing, click outside the node. ## Modify the node image Each node in Circle has a default icon that appears on that node. It is possible to replace the default image with a custom one. - Select the node and click the **Integration** icon . The **Integration** popup window is displayed. - In the **Node Image** field, click **Upload ****Image** to upload a new image. ## Group nodes Sometimes, there is a need to group nodes together. For example, several webpages might be grouped together into a website. - From the **Orientation** tools group, drag the **group** node to the canvas. - Edit the name of the **group** node name. - Drag the nodes you want to include in the group inside the **group** node. The nodes are automatically locked inside the group and the **group** node size automatically adjusts to include all the grouped nodes. ## Add information to the node Planners, Builders and Account Administrators can add information to nodes. Although some nodes are self-explanatory, it is often helpful to add more descriptive information. Additional information can be added to any node by clicking the Information icon and typing in a textual description or vital information, such as planned launch date and key performance indicators. - Select the node and click the **Information** icon . The **Information** popup window is displayed. - Enter the text description. - When you finish typing, click outside the popup window to close it. The information icon color will change from white to black to indicate that information exists. ## Node icons Hovering over touchpoints, enhancers, actions and orientation nodes in the diagram displays a number of icons that allow you to do any of the following: Highlighted icons indicate that they have content. Your user role determines which icons are available to you. ## Connect nodes After you have a few nodes, connect them by dragging a handle from one node to another. By adding connectors between the nodes, you can show the relationship between them and the sequence of steps in the workflow. There are two types of connectors: - Arrow: Connects touchpoints or touchpoints and the recipient nodes. This type of connector illustrates the sequence of events for a single recipient. The direction you drag determines the direction of the arrow. Example: - Dotted line: Connects a node - usually a touchpoint - with an enhancer describing a creativity effect. This connector shows that the two nodes are associated. For example, a postcard connected to a QR Code implies that the QR code appears on this postcard. An association between uImage and email implies that a personalized image is included in the email message. An association between a map and a webpage touchpoint implies that the map appears on that webpage. Example: All connectors can include text to clarify the process being depicted. Simply select the connector and type a description in the text box. When you connect two nodes, the connector type is automatically determined based on the start and end nodes. ## Add comments to nodes Adding comments to a node is an efficient way to give feedback on various project components and to initiate discussions with other project collaborators. Reviewers as well as all other users can add comments to diagram nodes. Adding comments can be done at any stage of the project life cycle: planning, building and reviewing. The comments are visible to all users who have access permissions to the account and project in which the comment was added. To add comments: - Hover over the node and click **Comments** . The **Comments** popup window is displayed. - Add your comment and click **Post**. Your comment is displayed in the thread. You can see the author name, the text of the comment and the date and time of the comment creation. The grey circle indicates that you have already read this comment. When you close the **Comments** popup window, the **Comments** icon turns grey . ### Receive email notifications As soon as a comment is created, users who have access permissions to the given account and project receive an email notification. The email notification contains the name of the comment creator, the names of the project and node to which the comment was added and the comment text. If the comment contains a number of replies, only the last two appear in the email in addition to the initial comment. To see the entire thread, you need to open the **Comments** popup window. To see the comment, click the **View Comment in Circle** link inside the email. Clicking this link opens the relevant project. Based on the information appearing in the email, find the node to which the comment was attached and click the **Comments** icon. By default, users who have permissions to a specific account or project automatically receive email notifications each time a comment is added. Users who do not want to receive email notifications of comments can disable this option in the **My Profile** dialog box. To stop receiving email notifications: - Click your username in the upper right corner of the Circle window and selectMy Profile. - In the **My Profile** window, deselect **Send me an email notification when a Comment is added**. - Click **OK**. Your settings are saved. ### Reply to comments Users can hold discussions using the Comments option. As soon as an initial comment is created, other users can respond to it. The entire discussion thread appears in the **Comments** pop-up. The replies are indented under the initial comment. Each comment is marked with a status circle: - Red circle: Unread comments - Grey circle: Read comments As soon as you have read a comment, click the red circle to mark the comment as read. To reply to a comment: - Open the project. If you received an email notification, click the **View Comment** **in Circle** link to open the project directly from an email. Click the **Comments** icon on the node in which the initial comment was created. - In the **Add a reply** text box, type your reply and click **Post**. As soon as you add a reply, an email notification is sent to all the users who have permissions to this project and account and who opted to receive email notifications. The email message contains the initial comment and the last two replies. #### Plan toolbox # Working with the plan toolbox The toolbox provides access to a variety of visually rich nodes that can be used in your flow. The toolbox contains the following groups: - Touchpoints - Enhancers - Actions - Orientation - Flow patterns ## Touchpoints Touchpoints are interaction points with a project's recipients. It is recommended to start your flow design by defining the touchpoints: a print piece, an email, an SMS, a web page or any other point where the recipient comes into contact with the brand. Touchpoint nodes are bigger than other nodes and each channel has a specific color for easy identification in the diagram. The following are the Circle touchpoint types: There are two way to add a touchpoint to the flow: - Drag the touchpoint node from the toolbox to the canvas. - Click the **Library Touchpoints** button. The list which opens contains only those touchpoints which have not been added to the flow. You can select a touchpoint to add it to the diagram. Touchpoints can be previewed by clicking the touchpoint title in the **Review** tab. ## Enhancers Enhancers represent information that can be added to a touchpoint to enhance its effectiveness. Adding elements, such as uImage, Google map and a QR code, can impact the project response. Integrating enhancers into the flow adds another level of detail that could be crucial for communicating price differences between low and high budget projects. When connecting a touchpoint to an enhancer, the connector appears as a dotted line instead of an arrow. The dotted line indicates that the enhancer is associated with the touchpoint. To preview the enhancer, click the link on the associated touchpoint.   ## Actions You can use the actions to add specific instructions to your flow. For example, you can use action nodes to add information about targeted recipients and recipient actions, such as Filter Recipients, Update Recipient, Insert Recipient. ## Orientation Orientation elements can be added to a flow to enhance its readability. For example, a separator is useful for dividing the flow into phases. A sticky note can be used for highlighting and adding explanations. A recipient can be used to indicate a referred recipient.   ## Flow patterns Flow patterns are templates that you can reuse in your flow. When a flow is saved as a flow pattern, it is displayed under the **Flow Patterns** tab in the toolbox. To include a flow pattern in a flow, simply drag it to the canvas. You can then connect it to other flow nodes. #### Mockups # Working with mockups Mockups are scaled or full-sized images of a design used for design evaluation, promotion or to acquire feedback from other users. You can enhance your project flow by adding mockups to its nodes. You can then switch between viewing the flow with the icons representing the touchpoint type or with the mockups representing the visuals. Mockups are static images and do not vary according to recipient. **Note:** Reviewers can view and magnify mockups. They cannot add, delete or save them. ## Add mockups to nodes - Select the node and click the **Mockup** icon . The **Mockup** popup window is displayed. - Click **Add Mockup**and navigate to the file(s) you want to add. - Select one or more mockup files. The supported file extensions for mockups are: .gif, .jpeg, .jpg, .png. - Click **Open**. The images are uploaded to Circle and displayed in the **Mockup** window. The mockup icon on the touchpoint is now highlighted . When the Mockup window is closed, you can click the mockup icon to open it. ## Resize mockups If the mockup you have uploaded does not fit the mockup frame, you can choose to resize it either by fitting its width within the frame or by fitting the entire image within the frame. ### Fitting Width - To fit the mockup’s width within the frame, click the **Fit Width** button until the image width fits the frame. When you choose to fit the image width, you may not be able to see the entire image since it may be truncated at the bottom. ### Fitting Image - To fit the entire mockup within the frame, click the **Fit Image** button . The image is scaled down while preserving its aspect ratio. ## Review the diagram with mockups After you've added mockups, you can review the diagram with the mockups. On the toolbar, click the **Show Mockups** icon to display the diagram. #### Sharing Projects # Sharing your projects Sharing your project is an easy and quick way of collaborating on a project. You can share your project with other project participants by either giving them a project URL or sharing its flow as an image. Users with administrator permissions can share projects by sending copies of the project or by publishing projects to samples. Administrators can also invite users to collaborate on a project. ## Share the project as an image Sharing the project flow as an image is a convenient way of collaborating with people or advisors who do not have access to Circle but whose feedback might be important for project creation. It can also be useful to include the project flow image in presentations, proposals and agreements. To share the project as an image: - Open the project you want to save as an image. - Select **File**>**Share** then click **Save as Image**. The  **Save As** window is displayed. - Type a name for the image and click **Save**. Your project is now saved as a PNG graphic file. ## Share the project's URL Sharing the project URL allows globally dispersed teams and organizations to collaborate in a secure environment. To share the project's URL: - Open the project flow you want to share. - Select **File**>**Share**, then click **Copy link To Clipboard**. - Paste the link, for example, into an email message, and send to the relevant collaborators. The link is accessible to collaborators who are authorized to view the project. ## Invite a user to a project Circle is a collaborative application in which multiple users can participate in the design, development, review, testing, live monitoring and analysis of the Project. To ensure an efficient collaboration, the application allows existing Circle users to invite new users to review a specific project. **Note:** Only Administrators and Power Users can invite users to collaborate on a project in the roles of Builder, Planner and Power User. To invite a user to a project: - Open the project to which you want to invite a collaborator. - Click**File**>**Invite**. The **Invite** window is displayed. The project and account fields display the name of the project and of the account, respectively. - Type the email address of the user you want to invite in theTofield. You can see the names and emails of other users in the account. - In the **Roles** field, specify the user role you wish to assign to the invited user. The roles that you are allowed to assign depends on your user role. Administrators and power users can assign all roles to the invited user. Builders, planners and reviewers can assign only the reviewer role. - Optionally, edit the invitation message. - Click **Send Invitation**. The email is sent to the invited user with a link to: - Circle's Registration page (new users) - Log in page (existing users) The user can then sign in to Circle and display the specified project. ## Watch a video Collaborating with customers and colleagues #### Branding Projects # Branding your projects You can customize your project by adding the logo of your customer's company to the header of the Circle workspace in place of the Circle logo. The logo is applied to the current project only. This is useful for customers who log into Circle and see the header area. For customers with whom you share the diagram, you can brand the diagram by uploading the company logo using an image node. ## Brand a project - Open the project flow you want to brand. - From the **File** menu, click **Brand**. The **Brand** page is displayed. - Click **Upload Project Logo** and browse to the image you want to upload. - Select the file and click **Open**. The selected logo replaces the Circle logo in the graphic field and is displayed in the header of the Circle workspace. - From the **File** menu, click **Save**. **Note:** If you wish to revert to the Circle logo, click the x on the right side of the graphic field. ## Brand the diagram - In the **Plan** tab, click the **Orientation** group on the left panel. - Drag the image node to the canvas. - Click the **Integration** icon of the new node. - In the **Integration** dialog, click** Upload Image** and browse to the image you want to upload. The image is added to the canvas. You can drag it to the required location on the canvas. #### Reviewing a Project # Reviewing a project Circle allows project collaborators to review the project diagram. The review can be performed during the planning, building and production phases of the project. If you receive an invitation to collaborate on a project during the planning stage, you can review the diagram flow and its components. At this stage, you can comment only on the project concept and logic. Once the project is connected to the uProduce system, you can review the document proofs, emails and webpages. Once the project is in progress, you can review Circle Analytics reports. Reviewing is performed in the **Review** tab, from the icons located above each node.   ## Review node information Each node can include additional textual descriptions. To view these descriptions, click . Click the Comments icon to review and post comments. Click to view all mockups that are related to this node. Note that these are static, non-personalized images. ## Review the diagram with mockups Click the Show Mockups icon to display the diagram with mockups. Note that these are static, non-personalized images. Click the icon again to hide mockups view. ## Review Circle Analytics Circle Analytics reports can be viewed directly form the node. Click to run reports to analyze the touchpoint events while the project is in progress. ## Preview the output You can preview the content of the node, whether an email document, webpage, PDF on demand document or SMS. This content is personalized to the recipient selected in the Sample Recipients list. First select a recipient from the Sample Recipients list, and then click the link within the node (node name) to view the personalized output. This option is available only if the project is connected to uProduce. The following is an example of a personalized email to the recipient Bruce Burton: ## Invite other reviewers to collaborate on this project Circle is a collaborative application in which multiple users can participate in the design, development, review, testing, live monitoring and analysis of the project. To ensure an efficient collaboration, the application allows existing Circle users to invite new users to review a specific project. Only Administrators and Power Users can invite users to collaborate on a project in the roles of Builder, Planner and Power User. To invite a user to a project: - Open the project to which you want to invite a collaborator. - Click**File**>**Invite**. The **Invite** window is displayed. - Type the email address of the user you want to invite in theTofield. You can see the names and emails of other users in the account. - In the **Roles** field, specify the user role you wish to assign to the invited user. The roles that you are allowed to assign depends on your user role. Administrators and power users can assign all roles to the invited user. Builders, planners and reviewers can assign only the reviewer role. - Optionally, edit the invitation message. - Click **Send Invitation**. The email is sent to the invited user with a link to: - Circle's Registration page (new users) - Log in page (existing users) The user can then sign in to Circle and display the specified project. ## Watch a video Collaborating with customers and colleagues ### Quick start for the Builder # Quick start for the Builder #### Get Started Wizard # Using the Get Started Wizard Circle provides a **Getting Started** wizard which makes it easy to get started building and implementing the project. The easy start is recommended for new users or for projects where the plan matches the data source. Once you have successfully connected to the uProduce system, you can access the library where you perform production and other project implementation tasks. The **Get Started: Choose an Option** window offers the builder various options of how to proceed: - Uploading the Data Source (easy start): This flow is the easiest way to start if you are a new user or if your project does not require logic. This flow prompts you to upload your data file and then it automatically creates the plan file for you, based on the data. - Upload a Campaign Package File (*.cpkg): This flow is for any builder who has a campaign package file (*.cpkg) and wants to use a previous project or campaign materials as the basis for the new project. - Upload the Plan File:  This flow is for experienced builders who either have experience with uPlan or have an existing plan file from another project. For projects requiring  advanced logic, this may be the fasted way to begin building the project. - Opening the Library: Opens the library which provides quick access to all production elements and allows you to implement the project from a centralized place. ## Watch a video Using Circle easy start ## More topics Uploading the data source Uploading a campaign package Opening the library Connecting to uProduce #### Uploading the Data Source # Uploading the data source with the wizard The data source contains all the recipient tables in the selected database. Uploading the data source to uProduce enables the system to retrieve all recipient data, such as First Name, Last Name, Email, etc. Every Circle project must include a single data source. Using the wizard, you can upload only to a local database. For details on connecting to a remote data source, see Connecting to a remote data source in the library. Uploading the data source automatically creates the plan file. The plan file contains the schema, which describes the structure of a data source that can be used by the logic. You can use a basic plan file created by the data source or alternatively, you can modify an existing plan file or create a new plan file and add complex rules and database expressions using XMPie's uPlan Editor. The plan file is uploaded to the library together with the data source that generated it. You can download the automatically created plan file and replace it with either a modified version or a different plan file. See Modifying the plan file. Using the **Getting Started** wizard, you can upload a  data source to the library in the uProduce system. To upload the data source: - In the **Get started: Choose an Option** dialog box, click **Upload the Data Source (easy start)**. The ** New Data Source** dialog box is displayed. - From the **Data Source Type** dropdown list, select the database format you want to import. Uploading the data source using the wizard enables you to select the following file formats: Excel (*.xlxs), Separated Values Text (*.csv) and Access. - Click **Choose File**, navigate to the file you want to upload and click **Open**. You are returned to the ** New Data Source** dialog box. - Click **Save**. The **Get Started: Identify the Recipients** dialog box displays the data source name. - From the **Recipient Table** dropdown list, select the table that contains the records of the targeted recipients. - To define the XMPieRecipientKey logic, select of the following: -  **One Field**: From the dropdown list, select the column header that uniquely represents the recipient, for example FirstName. - **Two Fields**: From the dropdown lists, select the column headers that uniquely represent the recipient, for example FirstName and LastName. - Click **Next**. The system creates the plan file with the default name **temp.plan**. The file includes all content objects derived from the column headers of the uploaded data source. **Get Started: Summary** is displayed. You can now view the data source and automatically created plan file in the library. ## Watch a video Uploading a data source (easy start) #### Uploading a Campaign Package # Uploading a campaign package A campaign package file (*.cpkg) contains an aggregate of project components and includes the following: - Document - Assets - Fonts - Data source - Plan file Using the Getting Started wizard, you can upload a campaign package to the library in the uProduce system. Using the Getting Started wizard is the only opportunity to upload a .cpkg file. The alternative is to use one of the other upload options in the wizard or upload each component manually either through the wizard or from the library. To upload a campaign package: - In the **Get started: Choose an Option** dialog box, click **Upload a Campaign Package File (*.cpkg)**. The **Upload Campaign** window is displayed. - Click the **Browse** button and select a *.cpkg file. - Click **Upload**. The system starts uploading the file. Once the process is completed, the **Upload Campaign: Done** window is displayed: - Click **Close** to exit the Getting Started wizard. The **Data Source** pane is displayed. - Set up your data source parameters, as follows: - If the *.cpkg file contains no data source, upload a new data source (see Uploading a file-based data source to the library) - If the *.cpkg  file contains one data source, select a **Recipient Table**. - If the *.cpkg file contains multiple data sources, first choose the Recipient data source from the **Data Source** dropdown list in the **Recipient List** section  and then select a **Recipient Table**. - If the plan included in the *.cpkg file contains additional data sources, then select the data source files matching the additional data sources in the plan file. - Click **Save**. ## More topics Uploading the data source (wizard) Uploading a file-based data source to the library Connecting to a remote database in the library Uploading the plan file (wizard) Adding recipient tables Opening the library #### Uploading the Plan File # Uploading the plan file with the wizard Each Circle project must have a single plan file. The plan file defines the logic shared by all the components in your project. It includes the schema that defines the structure of your project, including all required tables, the content objects, the data type they represent and the interaction between them. See Working with a plan file. Using the **Getting Started** wizard, you can upload the plan file to the library. To upload the plan file: - In the **Get started: Choose an Option** dialog box, click **Upload the Plan File**. - Click **Plan File**. The **Upload Plan** dialog box is displayed. - Click **Choose File** and navigate to the olan file you want to upload and click **Open**. The file name of the plan file you want to upload is displayed next to the **Choose File** button. - Click **Save**. In the library, the file name of the plan file is displayed together with a list of the content objects it contains. ## Watch a video Uploading a plan file #### Opening the Library # Opening the library From the **Getting Started** wizard, you can go directly to the library in the uProduce system and manually upload all your project components. You can also create touchpoints in the library. To open the library: - In the **Get Started: Choose an Option** dialog box, click **Open the Library**. The library is displayed. Existing touchpoints are displayed in the right pane and plan file is highlighted in the left pane. #### Connecting to uProduce # Connecting the Project to uProduce The builder is responsible for connecting Circle to uProduce. uProduce is the engine responsible for executing the production of your project. Once the project is connected to uProduce, you can begin building the project.   **Note:** To enable you to access uProduce, the computer from which you are operating Circle must be located on the same LAN as the uProduce system. Clicking the **Build** tab in the Circle workspace displays the **Connect** button that allows you to connect to uProduce. Once you are connected to the uProduce, the **Library** button is also displayed. The uProduce system you select represents the connection from your Circle account to the Circle Agent on uProduce. A single connection is used to connect all projects in your Circle account to uProduce. When specifying your credentials, it is recommended that you grant access permissions to all relevant uProduce accounts. Only those uProduce systems to which your Circle account has access permissions are available. Note that the administrator is responsible for setting up the uProduce System by installing and setting up the Circle Agent. If you are unable to establish a connection to the uProduce system or the uProduce System dropdown box is empty, it could be because your Circle Agent was not configured to permit access from your specific Circle account, your Circle Agent version is out-of-date or has been installed or configured incorrectly. An updated version of the Circle Agent can be downloaded from the **uProduce Connection** dialog box. ## Connecting to uProduce - In the **Build** tab, click **Connect**. The**Get Started: Connect to uProduce** dialog box is displayed. - Select a uProduce System from the **uProduce System** dropdown list. - Select an account from the  **uProduce Account** dropdown list. Available uProduce accounts are determined by your uProduce system credentials. Only those uProduce accounts accessible by the specified uProduce credentials are displayed in the list. Clicking the** Add** icon allows you to create a new account. See Adding an account. - Click **Next**. The system begins the connection process. A green icon indicates that the system was successfully connected. The **Get Started: Choose an Option** window is displayed. See Getting started with your project. Failure to establish a connection with the uProduce server could be due to the following reasons: - Agent Service is not currently running. - Selected Circle Account is no longer assigned to the Agent. - uProduce was not found at the specified location. - Unknown or deleted uProduce account. - Internal server error. - You are not authorized to work with the specified account. - Invalid user name and/or password. ## Adding a uProduce account When connecting to the uProduce system, you can select an existing uProduce account or add a new account. To add an account: - In the **uProduce Connection** dialog box, click the **Add** icon in the **uProduce Account** field. The **New Account** page is displayed. - In the **New Account** dialog box, type the name of the new uProduce account in the **Name** field. - Optionally add a comment in the **Comments** text box. If the project for this account includes email touchpoints, see Defining email account settings for details on defining email settings. - Click **Save**. The new account is displayed in the uProduce Account field in the **uProduce Connection** dialog box. ## Editing account details When connecting to the uProduce system, you can select an existing account and optionally change its name and add comments. Changing the account settings affects all projects which are associated with that uProduce account. To edit an account: - In the **uProduce Connection** dialog box,  select an account from the **uProduce Account** dropdown list. The selected account is displayed in the **uProduce Account** field. - Click the **Edit** icon in the **uProduce Account** field. The **Edit Account** page is displayed. - In the **Edit Account** dialog box, optionally type a new name for the new account in the **Name** field. - Optionally add or edit the comment in the **Comments** text box. If the project for this account includes email touchpoints, see Defining email account settings for details. - Click **Save**. The edited account is displayed in the **uProduce Account** field in the **uProduce Connection** dialog box. ## Watch a video Connecting a Circle project to uProduce ### Library # Library #### Touchpoints # Working with touchpoints Once connected to the uProduce system, all the touchpoints in your project diagram are displayed in the library. The library is where project components are managed and configured. To access the library, you first have to connect to the uProduce system. See Connecting the project to uProduce. ## Add touchpoints You can add new touchpoints to your project from the library or return to the diagram and, in the **Plan** tab, add more touchpoints there. If you create a touchpoint in the diagram, you need to save the project to see it in the library. To add a touchpoint from the library, simply click the plus button and select the required touchpoint. The new touchpoints are added at the top of the list. You can click the Refresh icon to sort the list in the default sort order (i.e. Type, ID). Once new touchpoints are added, you can place them in the diagram using the **Library Touchpoints** button. The list which opens contains only those touchpoints which have not been added to the flow. You can select a touchpoint to add it to the diagram. ## Show touchpoint ID Click the **Show/Hide IDs** link to show the touchpoint IDs. This is particularly useful for copying the touchpoint GUID from the screen and pasting it into the API code. ## Duplicate touchpoints In the library, you can duplicate an existing email touchpoint with all its settings and definitions (i.e. name, header, body, list, settings, schedule), excluding touchpoint ID, tracking and runs. This speeds up defining similar touchpoints, with slight variations. It is typically used when doing manual A/B testing and manual throttling. To duplicate an email touchpoint, select it in the Library and then click . The newly duplicated touchpoint is added to the top of the touchpoint list. You can then rename it by clicking . ## More topics Print touchpoints Email touchpoints Web touchpoints PDF on demand touchpoints External touchpoints SMS touchpoints #### Plan File # Working with a plan file Every Circle project must include a single plan file. The plan file includes the project's schema, which defines the business logic shared by all components in your project. The plan file consists of the following elements: - A data schema, which describes the structure of the data source needed to drive the campaign. The schema fields are the collection of all recipient information required to produce the campaign. These fields must all come from a single data source, but not necessarily a single table in a database. - A set of content objects, which can be used for tagging design objects (for example, by using uCreate Print), thereby transforming them into dynamic objects. - A set of variables, which are similar to content object except that they cannot be used for tagging design objects (they are internal to the plan). Their use is for computing intermediate results, and using such values in computing values for content objects. - A set of rules, which are QLingo or SQL expressions that compute the values of the plan's content objects and variables, once for each recipient. In high-level terms, one should think of a plan as a program that is being repeatedly executed, once for each recipient. In each of these iterations, the plan performs computations that result in a set of values: one recipient-specific value for each content object. For example, a plan may have a variable called "discount" that holds the percentage discount one is entitled to, based on the given individual’s purchase history, or affiliation with the Platinum, Gold, or Silver levels of some membership club. This discount variable can be used to compute the value of a content object called, for example, "discountAmount", which will appear in the document, showing the monetary value (as opposed to the percentage value) of a discount that one receives. Variables allow for avoiding repetitive computations or data retrievals, as well as improved readability of the plan, for later revisions, etc. ## Create a plan file You can create a plan file in any of the following ways: - Using the Get Started wizard allows you to upload the data source, which automatically creates the plan file. The automatically created plan file is based on the selected recipient table column headers and XMPieRecipientKey you define. See Uploading the data source. - Linking to the data source in the uCreate Print plugin in InDesign generates a plan file based on the column headers of the data source and the rules applied to each content object. For details, see the uCreate Print documentation. - Using XMPie's uPlan editor. Creating a plan file with uPlan allows you to add complex rules and database expressions. For details, see the uPlan documentation. ## Upload the plan file There are a number of ways to upload the plan file: - From the Get Started wizard - Bundled in a .cpkg file - Directly from the library   Upload the plan file in the library - Open the library. - In the left pane, click **Plan File**. The **New Plan File** link is displayed in the right pane. - Click **New Plan File**. The **Upload Plan** dialog box is displayed. - Click **Choose File**, navigate to the plan file you want to upload and click **Open**. The file name is displayed next to the **Choose File** button. The plan file has a *.plan extension. - Click **Save**. In the library, the plan file name and a list of the content objects it contains are displayed. You can replace the existing plan file at any time using the upload and download buttons . ## Generate a proof set A proof set is a file (*.proof) or a package (*.ppkg) that contains recipient data that have been resolved according to the rules specified in the plan. Generating a proof set allows you to preview the final outcome of your document. The proof set generation procedure evaluates all content objects in your plan and inserts their values into the document, thereby producing real-life examples of your final product. When this process completes, you can download the output proof set file. **Note:** To view a proof set, you must have uPlan installed on your computer. uPlan contains the Proof Set Viewer module. To generate a proof set: - In the library, select **Plan File**. - In the **Plan File** details pane, click **Proof Set**. - From the **List** dropdown, select the filtered list for which you wish to generate a proof set. It is possible to use plan filters to generate a proof set. For example, you can generate a proof set for failed recipients. - Specify a range of recipients: - To generate a proof set for all recipients in the selected list, select **All**. - To generate a proof set for specific recipients, select **Range** and specify the recipient's range (e.g., 1-5). - Click **Generate Proof Set**. The proof set generation is initiated. The proof set production status is displayed at the top of the window. The icon indicates the proof set production status:  Waiting / In progress  Completed successfully Completed with warning 0 Recipients (no recipients satisfied the criteria) Completed with errors/ Timed out/ Failed/ Aborted Clicking the **Jobs** link opens the uProduce Job Center and highlights the job associated with the current proof set. The detailed information about the proof set is available in the details section of the Job Center. Clicking the **Output** link downloads the proof set file or package. Clicking the **Alerts** link displays errors and warning related to the current run in the new browser tab. See Viewing alerts. ## Modify the plan file You can modify the current plan file or upload a different plan file to replace the existing one. The plan file remains in the system until you replace it with the edited version. You can modify the plan file in three places: - Plan editor within Circle - uPlan - uCreate Print - Circle connectivity ### Modify the plan file within Circle You can modify the plan file directly within Circle’s library. This allows for basic plan file editing, such as creating and editing content objects, variables, simple rules, and more. For more advanced editing, use uPlan. **Notes:** - A prerequisite is PersonalEffect version 12.1 or above and Circle Business Edition. - Once you make changes to your plan file, you cannot revert to the original one. We strongly recommend that you back up your plan file before making any changes to avoid losing your original settings. #### Create a content object Content objects are defined based on a number of attributes: their name, type (i.e. text, graphic), expression type (read/write) and their business rule. A rule is an expression that is part of the campaign logic, and defines how to calculate the content object’s value for each recipient. #### Content object types You can set or edit any of the following types of content objects: - **Text:** A text object. This string of text that will be displayed in the document is the result of the calculation of the content object's expression. - **Text file:** A text file containing a large amount of text or text formatted in a specific style. This content object points to an asset that will be shown in the document. - **Graphic:** A graphic object. This content object points to an asset that will be shown in the document. - **Link:** A link to a URL, most often used to include a PURL in a design. The link will be active only in an interactive PDF output. - **Visibility:** Controls the visibility of the document layers/spreads to which the content object is assigned. Visibility content objects also support layer names. This allows one visibility content object to control the visibility of all layers, whose names match its values. - **Style:** Applies a desired format, using one of the following types of Adobe InDesign styles: - Character styles: when applied to text, the style content object can be used to format text attributes such as color, font, size, etc. You can also override a text style attributes with an alternative font, including the font size, font style and font color. Once a character style content object is applied to text, it overrides any static InDesign style: existing, static styles are replaced by the style content object, and new styles cannot be applied on top of the style content object. - Object styles: when applied to a frame (whether a text frame or a graphic frame), the style content object can be used to format frame attributes such as fill, stroke, corner effects, etc. **Note:** Table content objects cannot be edited in Circle. #### Content object's read/write properties Circle allows you to create content objects that support three expression types, as follows: - **Read:** Enables you to define an expression that is used to calculate a content object value. Content object values can only be based on data that is read from the database. - **Write:** Enables you to define an expression that is used to update database entries based on the calculated content object value. - **Read & Write:** Content object values of this type can be based on data that is read from the database or they can be used to update database entries. An indication of the content object's read/write status is provided in the plan file window's **Read/Write** column: #### Rule editor Content object rules are both created and edited using the rule editor. The rule editor enables you to define expressions that perform conversions and manipulations on the data source values. The rule expression calculates the content object’s value for each recipient. These expressions are defined using XMPie’s proprietary QLingo Language. Expressions can be defined manually by editing the content object’s rule definition as a QLingo expression. Alternatively, you can use the **Advanced Rule Editor** to easily create a rule by selecting the most commonly-used expressions directly from the rule editor’s dropdown lists. The following is the Advanced Rule Editor: - The **Data Fields** dropdown lists the database fields - schema. - The **Variables** dropdown lists any variables that have been created. - The **Functions** dropdown lists all functions used to easily define rules by performing conversions and manipulations on the data source values. Note that the rule definitions vary, depending on the type of content object you are currently editing or adding (text, graphic, etc.). To create a new content object: - In the **Plan File** window, click the plus icon, and select **New Content Object**. - Enter a name for the content object. - Select the content object type: text, text file, graphic, link, visibility or style. - Select the content object's read/write property. - Compose a rule by typing in the expression in the text box, or use the **Advanced Rule Editor**. - Click **OK** to save the changes in Circle. - Back in the **Plan File** window, click the **Save** button to write the changes to the plan file on your uProduce server. Or, if you change your mind, click **Cancel** to ignore your edits and revert to the current uProduce plan. #### Create a variable Variables can be used to calculate values per recipient or store a value, and can be used in the content object rule editor expression. This is helpful when you want several content objects to use the same logic or value - you can calculate it or define it once in a variable, and then use the variable in several content objects. If you later want to change the logic or value, you only have to change it in that one variable, and all the content objects will use that updated logic. To create a new variable: - In **the Plan File** window, click the plus icon, and select **New Variable**. - Enter a name for the variable. - Select the variable type: string, number, boolean or date. - Compose a rule by typing in the expression in the text box, or use the **Advanced Rule Editor**. - Click **OK** to save the changes in Circle. - Back in the **Plan File** window, click the **Save** button to write the changes to the plan file on your uProduce server. Or, if you change your mind, click **Cancel** to ignore your edits and revert to the current uProduce plan. ### Modify the plan file using uPlan - Open the library. - In the left pane, click** Plan File**. The **Plan File** details pane is displayed. - Click the**Download** icon. It is highly recommended to always download the plan file from Circle to make sure you are using the latest version. It is also recommended to download the data source from Circle, so when you edit the plan file, you are connected to the updated data source. - Navigate to the location where you want to save the plan file and click** Save**. - Edit the plan file in the uPlan editor. - In the library, click the **Upload** icon. The **Upload Plan** dialog box is displayed. - Click **Choose File** and navigate to the modified plan file and click **Open**. - Click **Save**. The modified plan file is uploaded to the library and replaces the earlier version. ### Modify the plan file using uCreate Print - Circle connectivity This method allows you to create read expressions only. To create write expressions, use uPlan. - In uCreate Print **Dynamic Content** menu, click **Open from Server **to open a document bound to a touchpoint on Circle. - In the **Dynamic Content** panel, you can perform the following changes: - Add new content objects: from the right-click menu, select **New Content Object** - Add new variables: from the right-click menu, select **New Variable** - Edit an existing content object: select a content object in the panel and from the right-click menu click **Edit Content Object** - Edit an existing variable: select a variable in the panel and from the right-click menu click **Edit Content Object** - From the **Dynamic Content** menu, click **Save to Server** to save the document and the updated plan to Circle. ## Additional functions ### Search If your project contains a long list of content objects/variables, you can search to quickly locate the content object/variable you are looking for. ### Group You can organize content objects or variables into groups. Groups help you better organize the elements you are working with. For example, create a group of all content objects that are related to the recipient’s physical location, including street address, zip code, city, state, country. You can filter the list of content objects or variables to display content objects or variables of a specific group, thus filtering out the elements you don’t need to work with. To assign a content object or variable to a group, simply click it in the **Group** column and from the menu select the required group. If no groups have yet been created, select **New Group** and give the group a name. The object will be assigned to the new group. ### Include content objects in list reports You can select which text content objects to include in the analytics list reports of the project. Any read text content object can be selected for inclusion in list reports. A maximum of 20 content object is permitted. Selection of content objects is done in the **List** column. #### Lists # Working with lists Before launching production, you need to define recipients for a specific touchpoint. This is done by setting up a list of recipients. A **list** represents a group of recipients to whom you want to target production. A list is defined on a project level. For example, you can define a list representing VIP members and reuse this list in multiple touchpoints of the same project. Changing the list in one touchpoint affects all the other touchpoints using this list. The largest possible list - the master list - is called **All Recipients** and is automatically created when you define the recipient table of the data source. In the List section, click the **Count** link to see the number of recipients in that list. Other lists which are subsets of the master list are created by defining a **filtered list**. You can filter recipients using the following tools: - **Plan filter**: allows filtering recipients based on something in their data such as gender, age or zip code. The recipient profile is defined in the plan filter using uPlan. - **Event-based rules**:  allows filtering recipients based on some behavior or event. For example, you can send a reminder email to those recipients who received the first email but did not respond to it.   **Note:** When using event-based rules and referring to a specific touchpoint (e.g., P1-Print Never Occurred), the touchpoint name is not relative. If you use the same list in another touchpoint (e.g., P2), it will still use the rule based on P1. If you need to use the same rule for P2 based on P2 events, you must create a new list. ## Add a list - Open the library. - In the left pane, click **Touchpoints**. The **Touchpoint**list is displayed. - Select a touchpoint from the list. The **Production** dialog box is displayed. By default, the **List** dropdown list displays **All Recipients**. - To add a new filtered list,  click the **Add** icon following the **List** dropdown. The **Filtered List** dialog box is displayed. - In the **List Name** field, enter a unique name of the list. - In the **Description** field, enter free text describing the recipient segment which the filtered list represents. - In  the **Rules** section, select a master list (**All Recipients**) or a plan filter.   By default, Rule A is always **All Recipients**.  For information on using plan filters, see the section below. - (Optional). Define rules based on events performed by the recipients, as explained below. - Click **Save**. ## Use a plan filter A plan filter allows filtering recipients based on something in their data such as gender, age or zip code. The recipient profile is defined in the plan filter using uPlan. In Circle, a plan filter is selected in the **Filtered List** dialog box > the **Rules** section> **Rule A**. By default, **Rule A** is always **All Recipients**.  If you have plan filters defined in your plan file, you can select them instead of using a master list. This is useful if you want to target a specific group of recipients. **Important:** To enforce consistent order and avoid unexpected results, it is mandatory that the plan filter query includes the ORDER BY clause. Without it, in certain cases (e.g. automatic or manual split production), some recipients may receive multiple outputs, while others receive none. To select a plan filter: - Click **All Recipients** and select your plan filter from the list. In the example below, there are three plan filters available for selection: GradeAvg bigger than 80, Last Name Green, State MA. The plan filters are indicated by the icon. ## Define event-based rules Event-based rules  allow filtering recipients based on some behavior or event. For example, you can send a reminder email to those recipients who received the first email but did not respond to it.   For examples of event rules, see Event rule examples.  To define event-based rules: - In the **Rules** section, define the event rules based on the events performed by recipients. Event rules are added to Rule A which can be either **All Recipients** or a plan filter (see "Using a plan filter above). - Click the **Add Rule** icon to add a new event rule. The **Filtered List >Event** dialog box is displayed. The name of the current project appears in the **Project** field. - From the **Touchpoint** dropdown list, select the name of the touchpoint for which you wish to define an event filter. **Note:** If you wish to define an event filter for a web touchpoint, make sure that a **Tracking Page Name** is specified for this touchpoint in the **Production**dialog box. A **Tracking Page Name** is assigned to a webpage. For more details, see the Cheat sheet for web. - From the **Event** dropdown list, select an event. The dropdown list displays events that are applicable for the selected touchpoint type.**For example, if you define an event filter for an email touchpoint, events, such as Email Sent , Email Opened are displayed.   Supported event types Print touchpoint **Print Occurred**: a print output file has been created. - **Ema**il touchpoint** - **Email Failed**: an email failed to be delivered. - **Email Failed Hard Bounce**: an email returned to the sender because, for example, the recipient's address was invalid. - **Email Failed Soft Bounce**: an email gets to the recipient's email server but is bounced back undelivered before it gets to the intended recipient (for example, if the recipient’s inbox is full). - **Email Link Clicked**: a link inside an email message has been clicked. For such events to be tracked, the Email Delivery Provider must have the capability to report such events to uProduce (for example, the ET Enhanced Delivery Provider). - **Email Opened**: an email has been opened. Be aware that not all Email Viewers report Email Open events. This fact should be taken into account when using this event. - **Email Sent**: an email was sent. - **Email Unsubscribed**: the Unsubscribe link inside the email has been clicked. - **Web touchpoint** - **Action Performed:** an action has been performed on the specific webpage. - **Link Clicked**: a link has been clicked on the specific webpage. - **Webpage Visited**: the specific webpage has been visited. - **SMS touchpoints** - **SMS sent:** an SMS was sent. - **SMS failed:** the SMS failed to be delivered. - **SMS delivered:** the SMS has been delivered. - From the **Qualifier** dropdown list, select the event qualifier: - **Occurred**: the event took place. - **Never Occurred**: the event never took place. - **Hours Since Last Occurred**: the number of hours since the event was last performed. If the event occurred more than once, the time of the last occurrence is used. When selecting this qualifier, you must choose a comparison operator from the **Comparison** dropdown list and specify the number of hours in the text box. Note that a value of 1.5 hours represents 90 minutes. - **Calendar** **days since the event last occurred**. If the event occurred more than once, the time of the last occurrence is used. When selecting this qualifier, you must choose a comparison operator from the **Comparison** dropdown list and specify the number of days in the input field.**For example, if today is October 30th and if the filter specifies that only recipients that last performed a specified event more than 3 days ago must be retrieved, the recipients who performed the event 3 days ago (October 27th) will be filtered out whereas the recipient who performed the event 4 and more days ago (October 26th and earlier) will be filtered in. - Click **OK** to complete the definition. ## Event rule examples ### Example 1 Suppose that you want to send your email in several batches. To avoid duplicate sending to the same recipient, you need to verify that you only send to those recipients to whom an email has not been previously sent. The rule will look as follows: - Select the touchpoint for which you wish to define a filter. - In the **Event** field, select the **Email Sent**. - From the **Qualifier** dropdown list, select **Never occurred**. ### Example 2 Suppose you want to send a reminder email to those recipients who opened the previously sent email but did not visit the landing page of the website. In this case you will need to define two event rules. Rule 1: - Select the touchpoint for which you wish to define a filter. - In the **Event** field, select **Email Opened**. - From the **Qualifier** dropdown list, select **Occurred**. Rule 2: - Select the webpage touchpoint that represents the landing webpage. - In the **Even**t field, select the **Webpage Visited**. - From the **Qualifier** dropdown list, select **Never Occurred**. Both rules will be applied and the event filter summary will look like this: ## Sample recipients The Sample Recipients option allows you to preview your production-related elements as they will be viewed by a selection of recipients who represent a specific segment of the project's target audience. The **Sample Recipients** button is displayed on the toolbar in the **Build** tab after you connect a project to uProduce. The **Sample Recipients** button is available only to the project builder. ### Define sample recipients The **Sample Recipients** button appears on the Circle toolbar only after connecting to uProduce. To define sample recipients: - In the **Build**tab, click **Sample Recipients**. The **Recipient Details** wizard is displayed. - In Step 1:** - Specify the range of sample recipients. You can choose the first 200 recipients, or specify a range. - In the **Display **area,** **select the content objects you want to display for each recipient. The first two content objects will appear in the sample recipient list and in the Recipient Details dialog. It is recommended to use First Name and Last Name to identify the recipient. The additional content objects will be shown in the Recipient Details dialog only. - Click **Next**. All the recipients corresponding to the criteria defined in the previous step are displayed and selected. - Choose the recipients you want to use in your project preview. **Note:** Since the details of sample recipients are stored on the cloud, for security reasons create and select fake sample recipients which showcase your campaign. Avoid selecting real recipient data. - Click **Save**. The **Recipient** dropdown list is displayed on the toolbar in the **Plan**, **Build** and **Review** tabs. By default, the **Recipient** dropdown list displays the name of the first sample recipient in the list, in alphabetical order. This recipient will be used when clicking a link in a node to preview its content. ### Select sample recipients In the **Sample Recipients** dropdown list in the toolbar, you can view a list of recipients, together with their content object values. You can then select the recipients who are most suitable for previewing the specified project element. #### Documents # Working with documents A document is your design which can be personalized for each recipient. Circle allows you to generate output for print and email documents. A print document must be uploaded to Circle, whereas an email document can be either directly created in Circle using the email editor, or uploaded to Circle similarly to a print document. In addition, Circle allows you to upload uImage documents or document packages, which can later be referenced by print or email documents or by webpages through a uImage graphic content object. The following document formats are supported: - Print: InDesign (*.indd), XLIM (*.indx, *.xlim) - Email: HTML (*.html), Plain text (*.txt) - uImage: Photoshop (*.psd) Documents can be added to Circle either directly from the touchpoint, or via the **Library > Documents page**. ## Upload a document to the library You can upload a document (print or email) or a document package (*.dpkg) to the library and later associate it with a touchpoint. **Notes:** - It is recommended to upload a document package rather than an individual document. When uploading an individual document, all resources associated with it are lost. - uImage files (*.psd) and document packages (*.dpkg) containing uImage are used differently than print or email documents. See uImage workflow in Circle. To upload a document/document package to the library: - Open the library. - On the left pane, click **Documents**.**The**Documents**list is displayed. - Click **Add** to add a new document. - From the menu select **Upload File**. The **New Document** window opens. - In the **New Document** dialog box define the following: - From the **Document Source** list, select **Upload File**. - Click **Choose File **and navigate to the file you want to upload. You can upload - Packages: *.dpkg, *.zip - Layout files: InDesign (*.indd), HTML (*.htm, *.html), Plain text (*.txt), XLIM (*.xlim, *indx), Photoshop (*.psd). On uploading a package file (*.dpkg), the system checks the document to verify that its' content objects are consistent with the plan file used with the current project. The document name is displayed in the**Document Name**field. You may rename it. - Click Upload**. The uploaded document is added to the **Documents** list in the library and becomes available for use in print or email touchpoints of the project. When uploading a document package containing uImage, the *.psd document is added to the Documents list in the library. Any packaged uImage effect components (fonts, uImage assets, actions, brushes, styles and scripts) are placed in the proper locations. The uploaded document package can be replaced with another document or downloaded for editing or exchange. If you wish to create a new email document using the email editor, see Defining email documents using the editor. ## Watch a video Uploading a document package ## Create a document in the library An email document can be created directly in Circle using the email editor. The email editor allows you to create an email in HTML or plain text and to insert content objects, images and footers. You can create responsive email documents that will look well on a variety of devices and screen sizes (desktops, tablets and phones) using the responsive layout and building blocks provided by the email editor. Creating email documents in the library is done in the same way as creating email documents directly from the touchpoint. To create a document using the email editor: - Open the library. - On the left pane, click **Documents**. The**Documents**list is displayed. - Click **Add** to add a new document. - From the menu select one the following options: - **Upload File:** Upload an existing document. You may then continue working on it in the editor. - **Open HTML Editor:** Open the editor and start working on a blank HTML document. - **Open TXT Editor:** Open the editor and start working on a blank plain text document. For details on how to work with the email editor, see Defining email documents. Once created, the new document is added to the Documents list in the library and becomes available for use in email touchpoints of the project. ## Watch a video Creating an email message in Circle ## Modify a document in the library Circle offers three ways to modify a document: - Upload a document to replace the one currently displayed. - Download a copy of the current document, edit it and upload it to replace the earlier version. - Edit the document in the email editor (for email documents only). You can download a single document or a document package for editing. When you download a document with or without its resources, the original version remains in the system until replaced with the edited one. You can edit the downloaded document's content and name, but you cannot change the document's format. When you have finished editing the document, upload it to replace the original version. Although the content and/or the name of the document may have changed, the document's ID number remains. If the document is associated with other touchpoints, their output reflects the modified version. To modify a document: - Open the library. - On the left pane, click **Documents**. The**Documents**list is displayed. - Select a document. The **Document**details pane opens, displaying the current email document's details, including its ID number, creation and modification dates and the name of the user who created and modified it. - Select one of the following options: - **Upload** **:** Replaces the current document with a different one. - **Download** **:** Saves the document locally where you can edit it and then upload it, replacing the earlier version. In case of an InDesign document, select between: **Download File**: Downloads a copy of a single document. Components associated with this document (for example, fonts, assets) are not downloaded. - **Download Package**: Downloads a document with other associated components that are included in the package. - **Edit** **:** Opens the email editor where you can edit the email document. If the current email is in HTML, the editor opens with HTML as the default. If the current email is in TXT format, the editor opens with TXT as the default. #### Assets # Working with assets Assets include elements, such as graphic files and text files, that are used by the content objects as dynamic content in your print document, email document or webpage. ## Define asset sources From the library, you can define the sources that contain the assets you want to use in your project. Assets include elements, such as graphic files and text files, that are used by the content objects as dynamic content in your print document, **Note:** The plan file and the data source must be uploaded to the library before assets becomes available in the library. To define assets in the library: - Open the library. - In the left pane, click **Assets**. The **Asset Sources** window is displayed. - Click **New**. - In the **Asset Source Type** dropdown list, select one of the following: - **Local**: Creates an asset source from which assets are uploaded. Selecting this option requires that you specify the name of the source. - **File System**: Creates an asset source that is linked to a folder where the assets reside. Selecting this option requires that you specify the following: Folder name - Path that the system uses to locate the assets folder - Web path that the system uses to locate the assets folder - **File System with Authentication**: Creates an asset source that is linked to an authenticated location where the assets reside. Selecting this option requires that you specify the following: - Folder name - Path that the system uses to locate the assets folder - Web path that the system uses to locate the assets folder - Username required to connect to the assets folder - Password required to connect to the assets folder - Domain of the server on which the assets folder resides - Click **Save**. The Assets folder is displayed in the **Asset Sources** window and includes the number of assets it contains, its type, the date and time it was last modified, the name of the user who modified it and an option to edit the details.  The asset source is active by default. - Repeat step 1 to step 4 to define additional asset sources. ## Upload assets to the library Once you have defined the asset source, you can upload the selected files to the library. You can also upload assets bundled in a .cpkg file from uCreate Print. A .cpkg file can be uploaded only from the **Get Started: Choose an Option** wizard. See Uploading a campaign package. Assets are automatically included in the .dpkg file when you upload a print document to the library. To upload assets to the library: - Open the library. - In the left pane, click **Assets**. The **Asset Sources** window is displayed. - Click an asset source to display the Assets window and click **Upload**. - Click **Browse** to navigate to the file you want to upload. You can upload a single file in any standard graphic format, or a zip file containing multiple files. - Click **Save**. Details about the uploaded assets are displayed in the current window. - Click the **Close** icon (**x**) in the top, right corner of the window. ## Edit asset source details You can edit the name of a local asset source and update the path that the system uses to locate a remote assets folder. To edit asset source details: - Open the library. - In the left pane, click **Assets**. The **Asset Sources** window is displayed. - Select the checkbox next to the asset source you want to edit and click **Edit**. - Change the details as required and click **Save**. The asset source details of the selected assets folder are updated. ## Change the priority of asset sources During production, the system first looks for assets with the highest priority. You can change the current priority status to each of your asset sources. The priority level is displayed in the **Asset Sources** window. To change the priority of asset sources: - Open the library. - In the left pane, click **Assets**. The **Asset Sources** window is displayed. - Select the checkbox next to the asset source whose priority you want to change and click **Move Up** / **Move Down**. - Click **Save**. ## Activate/de-activate asset sources During production, the system searches only for asset sources that are activated. De-activated asset sources are ignored. For example, if you have two asset sources, one for high resolution graphics and one for low-resolution graphics, you can opt to activate one source or the other according to the requirements of the individual production run. All asset sources are initially activated by default at upload. To activate / de-activate asset sources: - Open the library. - In the left pane, click **Assets**. The **Asset Sources** window is displayed. - Select the checkbox next to the asset source you want to activate / de-activate and click **Activate** / **Deactivate**. - Click **Save**. ## Download an asset file Circle allows you to download a copy of an asset to modify it. You can then upload it and replace the original version with the modified version. To download an asset file: - Open the library. - In the left pane, click **Assets**. The **Asset Sources** window is displayed. - Click the asset you want to download. - In the window that is displayed, click **Download**. - Do one of the following: - Click **Open**: The asset opens in the default graphic program. - Click **Save**: Navigate to where you want to save the asset.   - Modify the asset, as required. - Click **Close**. When you upload the modified asset, it replaces the earlier version. ## Search for assets In cases where an asset file does not display it file extension or path, the system first checks if the file is for print or HTML production. It then checks if the files are text files or graphic files in order to populate the content object with the correct values in the document. Print documents For a printed text file, the system searches for a matching file name with one of the following extensions: .txt, .rtf, .doc, .docx For a printed graphic file, the system searches for a matching file name with one of the following extensions: .eps, .pdf, .tiff, .bmp, .jpg, .png, .gif, .psd #### HTML documents The system searches for a matching file name with one of the following extensions: - Web text file: .html, .htm, .txt - Web image file: .jpg, .png - Web flash file: .swf ## Handle missing assets during production Circle allows you to specify how the system handles missing assets during production of print touchpoints. To handle missing assets: - In the diagram, click the **Production** icon above the print touchpoint to open the **Production** dialog box. - Click **Settings**. The **Production Settings** window is displayed. - In the **Policies** area, select one of the following from the **When a record has missing****Assets** dropdown list: - **Ignore**: Continues to process the touchpoint in spite of the error. The output file includes the erroneous customer information. - **Skip Record:** Processes the next record in line. The output file does not include a document instance for this record. - **Fail Job**: Stops processing this job altogether. No output file is generated. - Click **OK**. ## Delete assets and asset sources You can delete a single or multiple assets and remove an asset source. You can delete assets only from local asset sources. To delete an asset file and asset source: - Open the library. - In the left pane, click **Assets**. The **Asset Sources** window is displayed. - Click the asset source name to display the **Assets** window and do one of the following: - **To delete a single or multiple assets**: click the asset source link to view its contents, select the checkboxes next to the assets you want to delete and then click **Delete**. - To delete all assets from the asset source, click **Select all****.** - **To delete an asset source**: select the checkbox next to the asset source you want to remove and then click **Delete**. - Click **OK**. #### Fonts # Working with fonts Uploading non-standard fonts to the touchpoint in the library ensures that your documents display text correctly. If you do not upload the fonts, the system might default to a system font that could compromise your document design. ## Upload fonts to the touchpoint If you are using non-standard fonts in your document, you must upload them to the touchpoint. Uploading non-standard fonts to the touchpoint ensures that your documents display text correctly.  If you do not upload the fonts, the system might default to a system font that could compromise your document design. Before you can upload fonts, you must first upload the plan file and the data source. **Note:** You can also upload fonts bundled in a .cpkg file from uCreate Print. A .cpkg file can be uploaded only from the **Get Started: Choose an Option** wizard. See Uploading a campaign package. To upload fonts: - Open the library. - In the left pane, click **Fonts**. The **Fonts** window is displayed. - Click **Upload**. - In the **Upload Font** window, click **Browse** and navigate to the font or fonts you want to upload. You can select a single font file or a zip package containing different fonts. - Click **Open** and in the **Upload Font** window, click **Save**. Information about the uploaded fonts is displayed in the library. ## Handle missing fonts during production Circle allows you to specify how the system handles missing fonts during production of print touchpoints. To handle missing fonts: - In the diagram, click the **Production** icon above the print touchpoint to open the **Production** dialog box. - Click **Settings**. The **Production Settings** window is displayed. - In the **Policies** area, select one of the following from the **When fonts are missing** dropdown list: - **Ignore**: continues to process the touchpoint in spite of the error. The output file includes the erroneous customer information. - **Fail Job**: stops processing this job altogether. No output file is generated. - Click **OK**. ## More topics Setting policies #### uImage # Working with uImage uImage® is an award-winning image personalization software solution from XMPie®, A Xerox Company. uImage is used to create unique, recipient-specific images for one-to-one marketing communications. uImage allows you to create a template for generating personalized images. The template is created by designing a regular Adobe® Photoshop® file and then embedding it with uImage tags: placeholders for variable text, such as the recipient’s first name; variable images, such as the company logo; or both. At production time, the uImage tags are replaced with recipient-specific text and images, thereby personalizing the generated image for each recipient. For example, the following figure shows the same base image, personalized for two recipients by embedding a text tag: the recipient's first name, Bo or Christiana.   The figure below shows another base image, personalized for two recipients by embedding an image tag: a photo of a family or a photo of people in a boat.     For more detailed information on uImage functionality, see the uImage documentation. ## uImage workflow in Circle **Pre-requisite**: Data source, plan, assets, fonts are all uploaded to Circle. #### Recommended flow (uCreate Print-Circle connectivity mode) **In Photoshop** - Create your Photoshop document template with the desired personalization effect. - Save your template. - Export the uImage template, along with all components required to create the uImage effect, as an XMPie Document Package (*.dpkg file). **In uCreate Print** - Using Circle connectivity, open a document located on Circle or create a new static document and upload it to Circle (for details on uCreate Print - Circle Connectivity, see the uCreate documentation). - Create a graphic content object that refers to the uImage function. - Upload the *.dpkg file referenced by uImage graphic content object to Circle. - Define the uImage content’s settings, such as output format (for example, JPG), output folder, output file name. - Click **Save on XMPie Server** to save and update the document and the plan on Circle. In a document or webpage - If you wish to use the uImage graphic content object in additional documents or webpages, insert the uImage graphic content object into your print document, email document or a webpage. In Circle - Run production for a touchpoint containing a document with uImage (**Test** or **Print** for print documents and **Test** or **Send** for email documents). #### Advanced (using uPlan) **I**n Photoshop - Create your Photoshop document template with the desired personalization effect. - Save your template. - Export the uImage template, along with all components required to create the uImage effect, as an XMPie Document Package (*.dpkg file). **In uPlan** - Download the plan file and the data source from Circle. - Open the plan file in uPlan and create a graphic content object using the uImage function. - Associate the uImage graphic content object with a dkpg file. - Define the uImage content object’s settings, such as output format (for example, JPG), output folder, output file name. - Generate a proof set. - Save the plan with the new graphic content object. **In Circle** - Upload the project components: a plan, a data source, documents, etc. - Upload the uImage *.dpkg file. The uImage template (*.psd file) is added as a regular document to the library. Any packaged uImage effect components (fonts, uImage assets, actions, brushes, styles and scripts) are placed in the proper locations. See Working with documents. In a document or webpage - Insert the uImage graphic content object into your print document, email document or a webpage. In Circle - Run production for a touchpoint containing a document with uImage (test or print for print documents and test or send for email documents). ## uImage On Demand In cases when pre-processing of personalized images is not possible, the uImage On Demand feature allows you to optimize the load time of webpages containing personalized images created on demand. Typically, it is recommended to pre-process personalized images that are going to be embedded in a webpage instead of generating them on demand. For more information on uImage pre-processing, see uImage dcumentation. However, in some cases, pre-processing of personalized images is not possible, as in the case of a Self-Registration procedure, during which you wish to display a personalized image of a newly registered user. In such cases, you want be able to generate a personalized image on the fly and load it to a web page without affecting the loading time of the web page. Adding a graphic content object in an on-demand workflow while using the regular content object tagging mechanism in an XMPL website might result in a slow loading time of personalized web pages, depending on the load of the site. Therefore, in order to dissociate the personalized image generation by uImage from the webpage load, it is recommended to use the XMPL asynchronous loading methods of the XMPL language: `xmp-asyncandmp-load-async-ador.` These methods help you control whether certain content objects are fetched asynchronously. For more information, see the "Forced Async Loading" section of the XMPL SDK: https://github.com/XMPieLab/XMPL-SDK/wiki/Markup-Reference. #### Project Parameters # Working with project parameters Project parameters are project-specific variables that can also be used in Parameterized Scheduling. The **Project Start Date & Time** value indicates when this project was set to Live. This parameter can be used in touchpoint scheduling and it represents the earliest opportunity that a touchpoint can be triggered.   The value is set on going Live only if the **Project Start Date & Time** has no value. To clear the value, click the **Clear value** link. A typical scenario in which the value should be cleared is after completing your tests with sample data and before going Live with the real Recipient List. The **Project Time Zone** value is set once in the Project Parameters page and used in all touchpoint scheduling. You can add up to 20 **custom dates **and** times**, which can be renamed for easy reference and used in Parameterized Scheduling. **Note:**The project parameters values can be updated in a Campaign on Demand project in uStore. ## More topics Setting up parameterized scheduling ### Print Touchpoints # Print Touchpoints #### Print touchpoint basics # Print touchpoint basics This topic describes how to work with print touchpoints to generate personalized printed documents. The tasks you perform include associating a dynamic document with a print touchpoint and defining recipients lists and production settings. You can trigger immediate output to multiple recipients or set a schedule in which output to selected recipients is based on time, date and frequency.   To generate personalized documents, you first select a print touchpoint and then upload a single document, a document package or a campaign package. Once the document is uploaded, it becomes associated with the touchpoint you selected. The same document can then be used by other print touchpoints in the project. Configuring print touchpoints for outbound production is performed in the **Production** window in the **Build** tab. Once you connect your project to the uProduce system, you can access the **Production** dialog box directly from the touchpoint. **Note:** You can define production parameters only if you have first connected your project to the uProduce system. During the production process, you can view the status of the current project in the Run Center, from where you can also view warning messages and download project documents for printing. ## Configure print touchpoints - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - In the **Document** dropdown list, select an existing dynamic document or create a new one (see "Uploading a print document to the touchpoint" below). - From the **List** dropdown list, select an existing recipient list or click the **Add ** icon to add a new list (see Adding a list). By default, **All Recipients** is selected. To edit an existing list, select it in the dropdown list and click the **Edit** icon. - In the **Settings** section, accept the default parameters or click the arrow to modify the production settings. See Print touchpoint production settings. - Set up scheduling definitions, if necessary. By default, scheduling is not active and the email is sent immediately. To define scheduling, see Scheduled production. The scheduling becomes active once the project is set to Live. - Click **Save** to save the touchpoint changes. - Click **Close** to close the dialog box. Once a document has been associated with a touchpoint and the touchpoint has been saved, this document becomes available for preview when clicking the node title link in the diagram. ## Upload a print document to the touchpoint To generate personalized documents for each recipient, you upload the document and associate it with a print touchpoint. There are two ways to upload a document to the uProduce system: - From Circle - From uCreate Print A document can be shared by multiple touchpoints, if required. You can upload an individual document or a document package (recommended). The document package file includes the document, all the information pertaining to it, and its related resources. If you choose to upload the document on its own, you run the risk of losing all the resources associated with the document. - **Single document:** You can upload a single document file with any of the following extensions: .indd, .xlim, .indx. If your single document uses non-standard fonts and / or alternating graphics, you need to upload these items manually to the system to enable the system to locate them during the production process.  In addition, if you choose to upload a single document, Circle cannot verify that the content objects in the document are consistent with those defined in the plan file. A mismatch between the content objects and the plan file could result in a failed production process for the associated touchpoint. - **Document Package (*.dpkg):** A document package file has a .dpkg extension and includes the following components: - Dynamic Document: The uCreate Print document you created in InDesign - Resources: Graphics files that are static, that is, files that are not referenced by content objects - Assets: Graphic and text files that are dynamic, that is, files that are referenced by the content objects - For example, the Asset Sources folder might contain three different images for three different membership types, such as Normal, Gold and Platinum. - Fonts: The font set used in the dynamic document - Content objects: Content objects are design objects, for example text or graphics, that derive their content and / or appearance from the content object's value. - Dimensions of the print output - Thumbnails of the print output Circle checks the document package to verify that the content objects in the dynamic document match those defined in the plan file. If there are inconsistencies, you will be unable to upload the package. Before attempting to upload the document again, you first need to either correct the document or modify the plan file.    To upload a print document to the touchpoint: - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Click the **Add** icon in the **Document** field to upload a new document. **Note:** Clicking the dropdown list displays a list of documents that were previously uploaded. The **New Document** dialog box is displayed. - Click **Choose File** and navigate to the file you want to upload. On uploading a package file (*.dpkg), the system checks the document to verify that its content objects are consistent with the plan file used with the current project. The document name is displayed in the**Document Name**field. - Optionally, rename the document in the **Document Name** field. - Click **Upload**. You are returned to the **Production** dialog box with the name of the uploaded document displayed in the **Document** field. The document’s ID number, the date it was last modified and the user who modified it are displayed under the document name.  Note that the Document ID is the same in uProduce and in Circle.   When the **Document** field displays a document name, the **Edit** icon becomes available. See Modifying a document for details. **Note:** You can replace the document associated with the touchpoint with a previously uploaded document by clicking the dropdown list and selecting another document from the list. ## Modify a document You can download a single document or a document package for editing. When you download a document with or without its resources, the original versions remain in the system until you replace it with the edited versions. You can edit the downloaded document's content and name. You cannot change the document's format. When you have finished editing the document, you can upload it to replace the original version. Although the content and / or the name of the document might have changed, the document's ID number remains the same. **Note:** The system assigns an ID to the document’s ID when it is uploaded. If the document is associated with other touchpoints, their output reflects the modified version. ### Download a document for editing - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Select the document you want to edit from the **Document** dropdown list. - Click the **Edit** icon in the **Document** field. The **Edit** icon becomes available when a document name is displayed in the **Document** field. The **Document** dialog box is displayed. **Note:** If the document was uploaded as a package (.dpkg), clicking the **Edit** icon also displays the current document's details, including its ID number, page dimensions, number of pages, creation and modification dates and the name of the user who modified it. - Click the **Download** icon to display the **Download** menu. - Select one of the following: - **Download File**: Downloads a copy of a single document. - **Download Package**: Adds the **Download** tab to your browser. When the download is successfully completed, the package name is displayed in the tab. You can now save the file locally and begin editing. ### Upload the edited document - If necessary, navigate to the **Document** dialog box and click the **Upload** icon . The **Update Document** dialog box is displayed. The original name of the document is displayed in the **Document Name** field. - Optionally, change the file name in the **Document Name** field. - Click **Choose File**, navigate to the edited document or document package and click **Open**. - In the**Update Document**dialog box, click**Upload**. The **Upload** counter displays the status of the uploading file. - In the **Document** dialog box, click **Close**. You are returned to the **Production** dialog box. The edited version of your document is now displayed in the **Document** field. ## More topics Production settings #### Production settings # Print touchpoints production settings When creating a print output file, you can use predefined production settings. Different production settings are available based on the print format you select. The parameters you define can be saved as a template for future use. To define the print production settings: - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Hover over **Settings** and then click the right-pointing arrow. The **Production Settings** dialog box is displayed. - Set document processing parameters in any of the following sections: - Split - Production and deployment - Policies and copies - Imposition - Advanced Parameters - INDD Document Advanced Parameters - JDF Different options become available depending on the print format you selected. **Note:** When you have completed your settings, you can save them as a template to apply to other documents in the future. You can also load an existing template and apply it to the current document. - When you have finished setting production parameters, click**OK.** You are returned to the**Production**dialog box. ## More topics Working with Templates #### Splitting the Print Job # Splitting the print job The default option is to produce a single print output file for all the tables in the data source. However, you have the option of splitting the print job into either multiple batches or a specified number of records per batch. **Notes:** - The parameters of this section are not included in the template because they are project-specific. - You can use the batching (job split) option to pipeline jobs and begin printing in prepared batches without waiting for the entire job to complete. This feature also makes it easier to reprint specific batches instead of the entire job, when required. - **Important:** To enforce consistent order and avoid unexpected results, it is mandatory that the plan filter query includes the ORDER BY clause. Without it, in certain cases (e.g. automatic or manual split production), some recipients may receive multiple outputs, while others receive none. To split the print job into batches: - In the **Split** area, select the **Split job to** checkbox. - Type the required number of print batches in the text box. - From the dropdown box, select one of the following options: - **Records per batch**: The number of records to be included in each batch - **Batches**: The number of batches in which the records are evenly divided. The batch ID is added to the name of each Print Output batch file. #### Production and deployment # Production and deployment In the **Production and Deployment** section, you set formats, define compression settings, specify output destinations and set job priority. Available options are displayed according to the selected parameter. ## Set output format To set the output format: - From the **Output Format** dropdown list, select one of the following formats in which to produce the Print Output file: - Legacy PDF (up to uProduce version 7.1.1) - PDF (from uProduce version 7.2) - VPS - VIPP - PPML - VDX - PostScript - PDF/VT-1 Interactive PDF PersonalEffect 9.3 and above provides you the ability to generate interactive PDFs for use with your digital marketing. You can produce interactive PDF files which include interactive links, buttons, bookmarks and form elements such as checkboxes and radio buttons. Links can be personalized using the link content object. Other interactive elements cannot be personalized. For example, in an interactive PDF document, you can add a button that jumps to another location in the document or to a specific URL. You can also create a link content object that will refer to a personalized website. - JPG - PNG - EPUB (Fixed Layout) and EPUB (Reflowable) You can produce print output files in EPUB (electronic publication) format. EPUB is the most widely-used file format for digital books. EPUB files can be downloaded and read on devices such as smartphones, tablets, e-readers or computers. You can choose between two EPUB file formats: - Reflowable: This is the standard format, which is used for publications that have a simple, one-column layout and mostly include text. - Fixed: This format is needed for graphic-heavy publications, if the text is in multi-column layout or there are other design-related needs. **Note:** EPUB export setting are defined in InDesign, when exporting the document to the EPUB format. The selected print format determines available production options. The following options become available according to the format you selected: - **Separate file for each record**: Available for PDF and Legacy PDF. Allows you to create a separate file for each recipient. By default, the uProduce production engine automatically splits the job between all the available uProduce instances to optimize the production speed. However, if you select this checkbox, production optimization is disabled for this job. - **Version #**: Available for the PPML. From the dropdown list, select  version 1.5 or 2.1. ## Set the output file name You can set the name of the output file as follows: - **Automatic** - If your production is via uProduce, the output file name is based on the processed document name. - If the production is via Circle, the output file name is based on the selected touchpoint name. - **Custom**: Type the name you want to use for the print output file. - You can optionally select the **Append Job ID to File Name** checkbox to add a job ID to the file name. - **Content Object**: Selecting a text content object from the **Content Object** dropdown list automatically generates file names according to a text content object. The content object value must use valid filename characters only. Invalid characters such as  \, ?, * are replaced with valid ones when an output file is created. In addition, the content object value must not contain the file extension, for example, PDF, Legacy PDF or PS, because the extension is automatically appended when the Print Output file is created. The ability to set the file name according to a content object can be used in several scenarios, for example: - When selecting the Separate file for each record checkbox, each generated file is given a name that matches the value of the text content object in the corresponding record. When setting up production to automatically split the job into multiple batches, the name that is applied to the output files of each batch matches the value of the textual content object in the first record in each corresponding batch. When selecting a different data source (or a table in a data source) for each production run, the name applied to output files matches the value of the text content object in the first table or the first record in the selected data source. ## Set up compression Compression allows you to significantly reduce the size and network transmission time of the print output file. Select compression options as follows: - No Compression - **Compress Output (ZIP)**: Compresses the print output file to a ZIP file. - **Create VI Container (VPC)**: Compresses the print output file to a Variable Information (VI) Container (VI Project Container, or VPC). A VPC is a package the can be submitted to a compatible printer for printing. It contains the print output file and any referenced images. If you want to include Assets and/or Resources in the VI Container file, the printing process is faster if deselect **Embed Assets and/or Embed Resources** in the Advanced Parameters section. ## Set up an output destination In the **Copy Output To** section, you define whether to copy the output file and to specify the output files' destination. The available destinations are set up by the administrator in the **Destinations** section of the uProduce **Settings** page. For information on primary and secondary destinations, contact your administrator. Select **Copy Output** file options as follows: - No Copying - **All to Primary Destination**: All output streams are sent to a single location, defined by the **Primary Destination** option. All assets are embedded in the output file. - **Separate to Primary and Secondary Destinations**: The main output stream is copied to the **Primary Destination**. The main output includes the code and references to job files. All other job files (for example, assets and resources) are copied to the **Secondary Destination**. These files are shared among all output for the specified document. - **Primary Destination**: Choose one of the uProduce destinations as your main destination. You can then copy all output streams, or just the main stream, to this destination. The primary destination can be any of the following: - An FTP site - A network path - A network printer, which can also be used be used as a printer queue for the FreeFlow Output Manager mechanism. - Xerox FreeFlow Print Manager, which provides an Automatic Submission functionality. **Note:** If you choose FreeFlow Print Manager as a destination, you are prompted to select a printer queue. Click **Refresh Queue**s to retrieve any new queues that were defined for the Digital Front End (DFE) you are using. If you want to use an automatic submission mechanism for the main print output file, make sure to set the primary destination to a hot folder or a virtual printer. - **Secondary Destination**: If you prefer to divide the output between different destinations, you need to define a Secondary Destination. The secondary destination can be only a network destination, and is available exclusively for uncompressed output. The main output stream is copied to the primary destination, while all other job files (for example, assets and resources) are copied to the secondary destination. If you want to use an automatic submission mechanism for the main Print Output file, make sure to set the **Secondary Destination** option to a location that is defined on the print server to accommodate referenced job files. If you are using a VIPP format, set **Secondary Destination** on the printer server to  X:\xgfc\projects, where X is a local drive, for example, C:\xgfc\projects When referenced job files are copied into the secondary destination, uProduce creates a subfolder, named after the project, and copies the files into this - **Copy Assets**: Copies the assets (dynamic images referenced by content objects) to a remote destination. Copy assets are relevant only for VPS, VIPP and PPML output formats. - **Copy Resources**:  Copies resources (static images referenced by the document) to a remote destination. Relevant only for VPS, VIPP and PPML output formats. - **Delete Output After Copying**: Deletes the print output file from the uProduce server after it has been copied to the specified destinations. This option is useful for saving disk space. - **Job Priority**: When submitting either a process job or a proof job, you can determine its priority. Priority controls the order of the job in the waiting queue. It can also be used to interrupt currently running jobs in favor of a rush job. Select one of the four priority options: - **Immediately****:** Submit a rush job (the default option for proof jobs). The job is processed immediately. If all production instances are busy, one of the currently running jobs is paused in favor of processing the rush job immediately. If all instances are currently handling jobs set to Immediately, the job is placed at the top of the waiting queue until one of the instances becomes available. - **Normal**: Submit the job with a normal priority, the default option for process jobs. The job is placed among other normal jobs in the waiting queue. - **High**: Submit the job with a high priority. The job is placed at the top area of the waiting queue. - **Low**: Submit the job with a low priority. The job is submitted to the lowest level of the waiting queue. #### Setting Policies & Copies # Setting policies and number of copies ## Missing fonts, assets, styles and text overflow You can set policies to handle different types of errors that might occur during production. In instances of missing fonts, missing assets, missing styles or text overflow,  select one of the following options from the corresponding dropdown list to handle the error. - **Ignore**:  Continues to process the touchpoint in spite of the error. The output file includes the erroneous customer information. - **Skip Record**: Process the next record in line. The output file does not include a document instance for this record. This option is available only for missing assets and missing styles. - **Fail job**: Stops processing the current job. No output file is generated. ## File size Circle allows you to produce large files of 2 GB or more. However, because some RIPs might have problems processing files larger than 2 GBs, you have the option to select **Fail Job** from the dropdown list.   ## Transparency (X-DOT) You can select how to implement X-DOT in your document. Available options are: - **Use XDOT**: Use X-DOT technology. - **Ignore XDOT as needed**: Do not apply X-DOT in this production run in the following cases: - The resulting mega object is reusable where at least one of the atomic objects is fixed. - The resulting mega object is unique where at least one of the atomic objects is reusable or is fixed. - The resulting mega object is reusable where at least one of the atomic objects is reusable. - **Ignore X-DOT**: - Special effects are not visible. All shadows, feathering and opacity effects are removed. - For transparent images, their transparent parts appear white (paper color). - **Fail job**: Fails the current production run in each of the cases that affect the **Ignore XDOT as needed** option. ## Setting the number of copies In the **Copies** section, you can set the number of document copies to be printed for each recipient record. - **Number of copies**: Type the number of personalized document instances you want to create for each recipient in the text box. - **Based on the value of**:  The specified number of copies is based on the value of a content object. Select a content object from the dropdown list. #### Imposition # Imposition Imposition determines the arrangement of the printed document’s pages on the printer’s sheet. It enables you to optimize the press sheet surface, by placing several different pages on one printed sheet and printing the Documents duplex head-to-head. By default, the imposition settings are disabled: the **Imposition Template** dropdown list displays **Disabled** and all the imposition parameter fields are unavailable. When imposition is not applied, each recipient’s document is printed on different printer's sheets. XMPie offers two imposition options:    - **Step and Repeat**: An imposition type that enables you to optimize the press sheet surface, by placing several different pages on one printed sheet and printing the documents duplex head-to-head. Step and Repeat is often used for double-sided planning, labels, postcards, and packaging printers. When you select the **Step and Repeat** option, you have to set up its imposition parameters. - **Cut and Stack**: An imposition type that enables you to optimize the press sheet surface, by ordering the pages on the sheet as follows: front-back, left-right, top-bottom. When you select the **Cut and Stack** option, you have to set up its imposition parameters. All measurement values are by default in points. See Changing measurement units during the process phase to change the measurement unit. | Options | Description | | --- | --- | | Sheet Size | Select a standard sheet size (for example, Letter, A4, etc.) from the drop-down list, to determine Sheet Dimensions. Alternatively, enter your custom Sheet Dimensions. | | Change Units | Change the measurement units that are used to calculate the page size and print attributes of your Print Output file. Available options are: Points (PostScript), Inches, Millimeters, Centimeters, Picas, and Ciceros (see Changing measurement units during the process phase). You can change measurement units using the Change Units option. Click Change Units. The User Preferences dialog box is displayed. Select your preferred measurement units. Available options are: Points (PostScript), Inches, Millimeters, Centimeters, Picas and Ciceros. Click Save to put your settings into effect. | | Sheet Dimensions (Width, Height) | Enter the Width and Height of the physical sheet used for printing. When you select a preset Sheet Size, these values are set automatically.; If your Sheet Size is Custom, set these values manually | | Page Dimensions (Width, Height) | The Width and Height of the logical design page. These values are used to calculate the number of pages that can fit on a sheet and should not be negative or zero. These values are entered automatically when you upload a document package file. | | Margin (Width, Height) | Enter the Width and Height of the margins to be maintained between the edges of the logical pages and the edges of the sheet. To use cut (crop) marks, you must set the margin values. Make sure the margins are large enough to draw cut marks (it is recommended to set them to at least nine points). | | Gap (X, Y) | Enter the X and Y values to set the gap that will be maintained between the logical pages on the sheet. These settings are required only if you wish to print or draw page information. | | Pages on Sheet (Columns, Rows) | Manually enter the number of logical pages (Columns and Rows) that should fit on each sheet or paper. If the values you set do not fit the Sheet Size selection, a warning is displayed, specifying range of allowed values. Alternatively, click Calculate to automatically calculate how many documents fit into the chosen sheet or paper size. To adjust this number, change the Sheet Size selection. | | Duplex | Select this checkbox to order even sheets, so the front side and backside match for each recipient (flip horizontally). This setting is optional. | | Center Pages on Sheet | Select this checkbox to center all the pages to be printed on the sheet. If you do not select this option, the pages start from the bottom-left corner of the sheet. This setting is optional. | | Draw Page Information | Select this checkbox to add page information above each logical design page. This information includes the recipient number, and the page number of this recipient. This information is printed in the Gap/Margin area. This setting is optional. | | Draw Cut Marks (X, Y) | Adds cutting (crop) marks on the margin area of the sheet, by defining their coordinates from the outside of the document to the inside of the document (note that this value does not set the length of the cut marks). Select this checkbox to add crop marks, and then set their inset value in the Bleed section. Cut Marks require room to draw within the margin area (not next to the Document). If you add Cut Marks, make sure the Margin field has Height and Width values that are large enough to include cut marks. | #### Advanced Parameters # Advanced parameters In the **Advanced Parameters** area, different options are available depending on the print format you select in the **Production and Deployment** section. | Print Format | Options | Description | | --- | --- | --- | | PDF Legacy PDF VPS PS | Bleed | The space beyond the document size you define. By default, the Use Document Bleed Settings checkbox is selected to indicate that the bleed settings used in the document design in Adobe InDesign will be applied for the print output. Alternatively, you can deselect this checkbox and set up different bleed settings by entering inset values in the Top, Bottom, Left and Right fields. If the document has facing pages, bleed settings can be entered in the Top, Bottom, Inside and Outside fields. The inset value is measured from the edge of the document size. Once the production bleed settings have been set, they can be used for future jobs instead of the default option that consists in using the Document bleed settings. | | VPS VIPP PPML PS | Complete Fonts | Select to embed a complete font definition in the print output file. When this checkbox is not selected, the print output file contains only references to the used fonts. Note that CID fonts are an exception: these fonts are not referenced but are embedded as a subset. This option controls the embedding of all fonts except for Chinese, Japanese and Korean (CJK) fonts. If the document uses CJK fonts, they are always embedded as subsets, regardless of this setting. | | VPS VIPP PPML | Assets Resources | Select to embed assets and / or resources in the print output file. When these checkboxes are not selected, the print output file includes references to external asset /resource files resulting in a smaller file. If your printer’s RIP (Raster Image Processor) supports external Assets / Resources, you may choose the Do Not Embed options. Note that when Require InDesign Rendering (Better color management) is selected, assets and resources are always automatically embedded and these options are disabled. | | PPML | Supplied Resources in PPML Stream | Select to embed PPML Resources in the PPML Print Output file if your RIP supports PPML 2.1, or supports embedding reusable resources in earlier PPML versions. When this checkbox is selected, uProduce generates a single file to be submitted to the RIP (no additional actions are required). Selecting this option also allows you to compress the output file (see Set up compression). When this checkbox is not selected, uProduce produces two print output files: PPML file: Contains a reference to reusable resources, which is submitted to the RIP Printer Server.; Reusable resources file: Before submitting the PPML to the RIP, this file should be placed in the RIP’s images folder (sometimes referred to as the HighRes folder). When processing the PPML file, the RIP resolves the reference to this file. Select this option if your RIP does not support PPML 2.1, or does not support embedding reusable resources. | | VPS PPML PDF/VT-1 | Use RIP Global Caching | Select this checkbox to enable the RIP to make use of cached elements from previous runs. The cached elements are shared between runs of the same document (with possible differences of the target data set). For more information, see Working with the RIP Global Caching. | | VIPP | Project Name | Name the project to be generated in the VIPP Print Output format. This name enables the RIP to locate referenced images of the VIPP file that reside in the corresponding project folder. Select Automatic to use an automatically-generated name, or type the name you want to use in the text field. | | VPS VIPP PPML | Extract reusable content to external files | Select this checkbox to create external files that hold the document’s reusable elements that are referenced by the VPS, VIPP and PPML and print output file to optimize the document’s processing by certain print controllers. This option is useful for troubleshooting errors in the PPML file. | | VIPP PPML | Extract unique content to external files | Select this checkbox to create external files that hold the document’s unique elements that are referenced by the VIPP and PPML print output files to optimize the document’s processing by certain print controllers. This option is useful for troubleshooting errors in the PPML file. | | PDF/VT-1 | Add metadata to each record | Select this checkbox to add recipient content object values (single-value fields) to the print output file. To see the metadata, open the PDF file and check the code. | | PPML | Tag each record as a document group | If your RIP supports document groups, determine how to mark a document set (in PPML version 2.1) or a job (in PPML version 1.5) in the PPML file. When this checkbox is selected, each record in the collection of documents is tagged as a document set/job.; When this checkbox is not selected, the entire collection of documents in the PPML file is tagged as a single document set/job (this is the default option, compatible with most RIPs). | | PPML | Tag fixed background as a master page | This option applies only to Xeikon RIPs. It allows you to mark a background that is used for all records in a way that enables the RIP to process the print output file more efficiently. If the document contains one or more spread visibility rules, no tagging as the master page is performed, even if this option is selected. | #### INDD document advanced parameters # INDD document advanced parameters In the **INDD Document Advanced Parameters** section, you set advanced parameters for InDesign print production. The available options vary according to the selected print format. **Note:** This section is available only if you are working with an InDesign document. - **PDF Export Settings (Legacy PDF, PDF, PDF/VT-1)**: Select the job options file for producing this PDF. All job options files installed on the uProduce server are available for selection. For information on managing and using job options, see Working with PDF job options. - **Image Rendering** (VPS, PS, VIPP, PPML, Legacy PDF, PDF and PDF VT-1): Select one of the following methods of rendering images in the XMPie print output: - **Allow non-InDesign Rendering (optimized for performance)**: Allow XMPie to bypass InDesign handling of images. This option enables reference features in VPS, VIPP and PPML, and sometimes improves performance in all of these formats (VPS, PS, VIPP, PPML and PDF). Note that in this case, the image color profile is ignored. - **Require InDesign Rendering (Enhanced color management)**: Images will always be handled by InDesign, which uses the image color profile to render the output. Note that when choosing this option, images are always embedded in the print output file. - **Use uProduce Global Caching** (PPML, VPS, VIPP, PS, Legacy PDF, PDF ): For PPML, Scitex VPS, Xerox VIPP, Postscript and Legacy PDF output formats, you can optimize the production speed by enabling theUse uProduce Global Cachingoption. This option caches the graphic descriptions of reusable elements in the process of producing Print Output files. For more information, see Working with uProduce global caching. - **Transparency Implementation (PDF/VT-1)**: Define how transparency is implemented in the PDF/VT-1 output, by choosing one of the following options: - **Flatten Transparency** (default): All transparent content is flattened when XMPie produces the print output file, without relying on the RIP’s ability to implement transparency.**Choose this option in the following cases: The RIP has no transparency implementation. - You are not sure if the RIP PDF/VT-1 implementation supports transparency. - The RIP transparency implementation is significantly slower than the production of flattened PDF/VT-1. - **RIP Transparency**: Transparency is implemented when the RIP processes the print output file, using the PDF/VT-1 transparency definitions and avoiding X-DOT. Choose this option when you can rely on the RIP transparency implementation, in order to create a significantly more efficient print output file. Before using this option, verify with your RIP vendor that the PDF/VT-1 transparency capabilities are implemented. - **Use only single instance** (to allow other jobs to run in parallel): By default, uProduce production engine automatically splits the job between all the available uProduce instances to optimize the production speed. If you want to disable the automatic production optimization and to perform the entire job on a single uProduce instance, select this checkbox. This will allow other jobs to run in parallel on other uProduce instances. Production optimization is not available in the following cases: - XLIM documents - uProduce system with SI license - If the **Separate File for each ******Record** checkbox is selected in the **Production and Deployment** section of the **Process** page (see Production and deployment). - When the number of recipients processed in the job is below a certain limit (100 recipients by default). #### JDF # JDF In the **Job Definition Format** (JDF) section, you can create JDF files in addition to the output file. **Note:** JDF is an industry standard designed to simplify information exchange between different applications and systems in and around the Graphic Arts Industry. JDF authoring is implemented to match the JDF dialect used with Xerox FreeFlow machines. The JDF file is compatible with the Xerox FreeFlow JDF conventions, and can be submitted to the FreeFlow Print Manager and FreeFlow Process Manager. - **Create JDF**: Enable JDF production. - **Copy** **To**: Specify a predefined network path, to which a produced JDF file will be sent. - **Finishing**: Set up finishing options. - **Customer** **Information**: Type the customer's information. When the production process is complete, a new link labeled **Download** **JDF** appears at the JDF section of the processed job in the Run Center page. Click this link to open the JDF file or to save it to another location. #### Print setting templates # Print setting templates After defining your settings in the **Print Production Settings** page, you can save these settings as a template for future use. When you next need to process a document, you can load the required template including all of the settings defined in the template. This saves you the lengthy process of having to fill in the parameters for each individual document. A template created by non-admin users is specific to the account in which it was created. Templates created by an administrator are called global templates and are available for use for all Circle users, but can only be modified or deleted by the administrator. When you save your settings as a template, you are prompted to give the template a name. This template is then saved in the account in which you are currently working. You can select a template from a list containing global templates and templates associated with the current account. After loading the template, you can edit it and save it under a new name using the **Save as**** **option. You cannot save an edited template under its original name. All templates are stored and managed in the **Settings** section of uProduce. **Note:** The **VDX** print format cannot be saved as a template. ## Create a template In the **Print: Production Settings** page, click **Save** at the top of the page. - The **Save as** dialog box is displayed. - Type a name for the template in the text field and click **Save**. The template is now stored under **Production Settings** in the uProduce dashboard's **Settings** page. ## Upload an existing template - In the **Print: Production Settings** page, click **Load** at the top of the page. The **Load template** dialog box is displayed. - From the dropdown list, select a template and click **Load**. The values defined in the selected template are applied to the current project. #### Working with PDF Job Options # Working with PDF job options When processing a print output file, where the **Print Format** is either PDF or PDF/VT-1, you can control its PDF generation settings. These settings include choices of image compression parameters, fonts handling and output intent color profiles. These settings are controlled by choosing an Adobe *Job options* file. Job options files contain PDF generation settings and are normally created and edited in either Adobe InDesign or Adobe Distiller. ## Use job options uProduce uses PDF job options to print and proof PDF and PDF/VT-1 Documents. uProduce provides two default job options files: - XMPieHighQuaility High quality, default for creating print output through the **Process** page. - XMPieProofQuaility  Proof quality, default for creating proofs through the **Proof** page. For process jobs, you can replace the default job options file with other files. This is done by going to the **Process** page’s **Advanced** section and changing the selection in the **PDF Export Settings** list. For proof jobs, you cannot replace the default job options file. However, you can edit its settings, as explained in the following section. ## Modify or add new job options You may want to set different selections for the PDF generation settings, for example, a specific color profile for the output intent. To do this, either modify the existing job options files, or add a new job options file (for process jobs only). This is done by changing the contents of the uProduce job options folder. Job options files are placed in the following uProduce folder: :\XMPie\XMPieData\Shared\Settings\JobOptions You can modify existing job options files, to change the way these files create PDF print files. For example, to change the PDF generation settings of a proof job, edit the XMPieProofQuaility file. You can also add new job options for process jobs. The new files you place in the JobOptions folder are added to the **Process** page’s **PDF Export Settings** list. **Note:** When adding new job options, make sure that no InDesign instances are running. ## Work with job options on extension servers If you are working in a PersonalEffect Cluster configuration, the uProduce Director that manages the Cluster synchronizes its JobOptions folder with those of all extension servers. There is no need to manually update the JobOptionsfolders on the extension servers. While job options are handled automatically, you are required to handle color profiles manually. A job options file allows you to choose a color profile that serves as the output intent for PDF output. Color profiles are NOT synchronized by the uProduce Director on all Extension Servers. Therefore, if you use a non- system-default color profile, you must install it on all Extension Servers. ## Restrict on job option selections The XMPie production process requires certain hard-coded settings, which override the settings in the Job Options file. You should be aware of these restrictions when you modify job options or add new ones. These overridden settings depend on the type of PDF you are processing, with some uProduce internal considerations: - **PDF Print Format** - **Single-Record PDF**: When generating a separate PDF for each recipient (that is, when going to the **Process** page’s Production and Deployment section, setting **Print Format** to **PDF** and enabling **Separate file for each record**), there are no restrictions. - **Legacy PDF**:** ** When generating a batch PDF print output for *more than five recipients,* the production process creates an optimized PDF file. In this case, the Adobe InDesign job options are applied to the file, with the following exceptions: **Optimize for fast web view**: Set of Off - **Acrobat Compatibility Level** and **Standard** are ignored. - **Marks and Bleeds**: All settings are ignored. - **Others**: When generating batch PDF print output for fiver or fewer, the production creates a PDF directly with InDesign. In this case, the following settings are ignored: - Optimize for fast web view: Set to **Off**. - Marks and Bleeds**:** All settings are ignored. In some cases an Optimized PDF will be generated, for example when using Imposition. - **PDF/VT-1 Print Format** - **Optimize for fast web view**: Set to **Off**. - **Acrobat Compatibility Level** and **Standard** are ignored, as PDF/VT-1 requires specific settings. - **Marks and Bleeds**: All settings are ignored. - **Legacy PDF**: When generating batch PDF print output for more than five records, the production process creates a postscript file, which is later transformed into a PDF file through a mechanism called distilling. In this case, any job options that apply to Adobe InDesign, but not to Adobe Distiller, are ignored. Note that any settings that are implemented in PDF, but not in postscript, are ignored as well. #### Working with uProduce Global Caching # Working with uProduce global caching uProduce global caching caches the graphic descriptions of reusable elements in the process of producing print output files. This feature is available for PPML, Scitex VPS, Xerox VIPP, PostScript, PDF and Legacy PDF Print Output formats. To enable uProduce global caching: - In the **Advanced Parameters** section, select **Use uProduce Global Caching**. - Click **Submit**. While the job is being processed for the first time, reusable content is identified and saved along with uProduce’s temporary files. The next time you process this document, this content will be reused. In addition, any new content created by the current job will be added to the temporary files. ## Caching and clearing uProduce global caching (temporary files) The temporary files created by global caching take up disk space. It is recommended to clear the temporary files periodically to ensure you have sufficient disk space to complete the production successfully. The following procedure explains how to clear the uProduce global cache. To clear global caching: - Log in to uProduce as an administrator. - Click **Settings**. The **Settings** page is displayed. - On the **Temporary Files** page, click **Delete**. #### Working with the RIP Global Caching # Working with the RIP global caching The RIP Global Caching feature caches the Ready to Print (RTP) graphics of reusable elements in the process of printing print output files. This feature is available on printers that support global caching for PPML and The following sections provide instructions on Enabling the RIP Global Caching and on Enabling the RIP Global Caching. To enable RIP global caching: - In the uProduce Dashboard, select a document you intend to produce multiple times and click Process. - On the**Process** page, go to the **Advanced Parameters** section and select **Use RIP Global Caching**. - Click **Submit**. While the job is being processed for the first time, each reusable element receives a global name. The association between a reusable element and its name is saved in uProduce. The next time you process this document, each reusable element will receive the same global name. The global names allow the RIP to identify and reuse elements that appeared in previous jobs. ## Clearing RIP global caching uProduce has a naming generation mechanism that can create an extensive amount of global names. In the rare event that all possible names are used, a warning will be displayed, requiring that you clear the RIP global cache. To clear RIP global caching: - Log in to uProduce as an administrator. - Click the **Settings** button. The uProduce for Administrators - **Settings** page is displayed. - From the **Server Settings** tree, select **Global Caching.** - Click **Clear**. The RIP Global Caching information is cleared from uProduce. **Note:** When you clear the RIP Global Caching via uProduce, you must also go to the RIP and clear the **Global Elements** cache. ### PDF On Demand Touchpoints # PDF On Demand Touchpoints #### PDF On Demand touchpoint basics # PDF On Demand touchpoint basics The **PDF On Demand** feature allows you to include a link to a personalized PDF document in a webpage or an email. This link may reference any of your PDF On Demand touchpoints in the project including InDesign or XLIM documents. As soon as a PDF On Demand node is added and saved in the project diagram, the PDF automatic link content object is available to be included in a webpage or an email document. A PDF On Demand content object name consists of an “XMPie.PDF” prefix, followed by the touchpoint's friendly ID, for example: XMPie.PDF.P1. Whenever a webpage visitor or an email recipient clicks such a link, a personalized PDF on demand is available for viewing. You can use PDF on demand as follows: - **Web usage:** create webpages with links for downloading PDFs on demand. Webpage visitors can then  generate personalized documents and save them to a file or print them on their local printer. This is useful for scenarios such as buying concert tickets, creating a personalized "book" based on the visitor's website choices, etc. Since the PDF is created on demand, that is, when the visitor clicks the link, it reflects the most up-to-date data. - **Email usage:** create emails with links for downloading PDFs On Demand. When a recipient clicks such a link, a personalized PDF is presented on demand. The PDF reflects the status of the data at the time the email was sent (as opposed to the status of the data at the time the link was clicked). This way, the PDF On Demand emulates an attachment, without actually being an attachment. Since the PDF is generated only for recipients who click the email link, this feature saves you the need to produce PDFs for your entire recipient list, thereby significantly reducing production and storage resources. The PDF On Demand shows time-dependent data, defined as follows: - **Web usage:** the PDF On Demand shows the data available at the time the link was clicked. For example, you can use PDF On Demand to show the current bank account balance. - **Email usage:** the PDF On Demand shows the data available at the time the email was sent. This is useful, for example, for issuing monthly bank statements. The email sent in January will show the January details, the email sent in February will show the February details, etc. Clicking the January statement link at any latest stage will still open the January statement. A PDF On Demand touchpoint is similar to the print touchpoint except for the final output format and tracking. When using a print touchpoint, a recipients receives a hard copy of a document, whereas when working with a PDF On Demand touchpoint, a recipient views the document online and can optionally print it.  For PersonalEffect version 9.3 and above, PDF On Demand documents can include interactive elements. ## More topics Configuring PDF On Demand Touchpoints Adding PDF on demand links to email and webpages #### Configuring PDF On Demand Touchpoints # Configuring PDF On Demand touchpoints A PDF on Demand touchpoint represents a personalized PDF document in a webpage or an email. You may save a copy of a PDF on Demand document at the time the document is requested by the recipient, e.g. when the PDF on Demand link is clicked. This can be very useful for keeping an exact copy of what the recipient initially viewed. The copy is saved to a target destination which you define in the uProduce dashboard. Note that the copy is not kept when generating a live preview from the diagram. It is kept only when executing the PDF on demand document from an email or webpage. You can protect the PDF on Demand document with a password. You can choose which textual content objects will be used as the password field. When opening the PDF, a Password window opens requesting the user to enter the password. If you wish the PDF to be password protected and secured, you will need to set several system settings. For information, see Configuring a Password Protected PDF to work with HTTPS. To configure a PDF On Demand touchpoint: - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - From the **Document** dropdown list, select an existing dynamic document or create a new one (see Uploading a print document to the touchpoint). - In the **Settings** section, select the output file name. You can choose one of the following options: - **Static**: select this option to create a static name for the output PDF file. By default, the name of the document selected in the **Document** field is automatically filled in. - **Content object**: select this option to create a dynamic file name and then choose a content object from the dropdown list. Using this option, you can personalize the PDF file name. Learn more By selecting the **XMPieRecipientKey** content object you are assured that each file has a unique name within the scope of a single project. - If you are using the same destination for more than one project, create in uPlan a content object that will ensure uniqueness between projects. For example, prefix the recipient key with the project name as in the following example: `"SummerSale_" + AsString(|->[?])` Result: `SummerSale_Joe.Smith.pdf` - If the same document is generated more than once and you would like to keep a copy of each version, append a time stamp to differentiate between versions: `"SummerSale_" + AsString(|->[?]) + FormatDate(Now(), "yyyy_MM_dd_HH_mm_ss")` Result: `SummerSale_Joe.Smith_2018_11_11_20_11_05.pdf` - The following is an explicit example which includes Job ID and labels for the different parts of the file name: `"SummerSale_RecipientKey_" + AsString(|->[?]) + "_JobID_" + AsString(GetEnv("JobID")) + "_TimeStamp_" + FormatDate(Now(), "yyyy_MM_dd_HH_mm_ss")` Result: `SummerSale_RecipientKey_ Joe.Smith_JobID_537_TimeStamp_2018_11_11_20_11_05.pdf` - If you wish to keep a copy of the document, in the **Keep a Copy** section select the destination for the document from the **Destination** dropdown list. This list includes uProduce destinations of type FTP Site and Network Path. Destinations are defined in uProduce at the **Settings > Destinations** area. When a PDF on Demand document with a **Keep a Copy** setting is produced (e.g. on clicking the link in the email or webpage), a copy of the document is generated and saved to the specified destination, using the specified output file name. If you wish to generate a password protected PDF, in the **Password Protection** section choose which textual content object will be used as the password field. ​ When opening the PDF​, a password is requested. Note that if the password value of a specific recipient is empty, the document opens without requesting a password. - Click **Save** to save the touchpoint changes. Once saved, the PDF on demand document becomes available online and the PDF automatic link content object will now function. - Click **Close** to close the dialog box. ## More topics PDF On Demand Touchpoints Adding PDF on Demand Links to Email and Webpages #### Adding PDF on demand links to email and webpages # Adding PDF On Demand links to email and webpages Each PDF On Demand touchpoint in your project is represented by a link content object, which can be easily added to your webpage or email document, as explained below. From PersonalEffect 9.3 and above, all PDF On Demand documents are executed as Interactive PDFs. If the document contains interactive elements, they will be visible and operable in the PDF On Demand, otherwise the document functions as a static PDF. Whereas a static PDF usually marks the end of a conversation, since there is no digital way to continue the flow, the power of the interactive PDF is that it has digital elements such as links, which can drive the recipient to a PURL or GURL thus prolonging the conversation. Note that in Interactive PDFs, links can be personalized using the link content object. Other interactive elements cannot be personalized. However, you can personalize other elements such as a button by displaying an image of a button behind a personalized link. ## Add a PDF On Demand link to an email document - Create a document as described in Creating an Email Document from the Touchpoint. - In the online email editor, place your cursor where you wish to add a link to the PDF On Demand document. - Click **Insert Content Object**. The **Insert Content Object** dialog box is displayed. - Scroll down to the bottom, where PDF On Demand link content objects are listed. A PDF On Demand content object name consists of an “XMPie.PDF” prefix, followed by the touchpoint's friendly ID, for example: XMPie.PDF.P1. - Select the relevant PDF On Demand link content object from the list and click **OK**. A reference to the PDF On Demand touchpoint is inserted into your email body. - Click **Save**. You can now use this document as an email body. Once the email is sent and the recipient clicks the PDF on demand link, a personalized PDF is presented on demand. The PDF reflects the status of the data at the time the email was sent (as opposed to the status of the data at the time the link was clicked). ## Add a PDF On Demand link to a webpage - Open the webpage and place your cursor where you wish to add the PDF On Demand link. - In code mode, create a link to a PDF on Demand touchpoint as in the following examples: View the PDF Get your coupons The PDF on Demand shows the data available at the time the link in the webpage was clicked. - Complete the webpage design as usual. The link to the PDF On Demand touchpoint is created. When the recipient clicks this link, a personalized PDF On Demand document will be generated, showing the most up-to-date data. #### Branding PDF On-demand Status Windows # Branding PDF on demand status windows Once a recipient clicks the PDF download link, Circle loads a **Progress** window, followed by either a **Success** window or a **Failure** window. By default, Circle shows the following status windows: - **Progress** — displayed while Circle is in the process of generating the PDF on demand. The name of the output file is displayed. - **Success** — displayed once the PDF has been generated successfully. - **Failure** — displayed in case the PDF generation fails. You can replace the default pages with your own branded pages. ## Create branded PDF status pages If you wish to replace the default PDF status pages, you need to provide alternate, branded pages. You need to create 3 different pages: Progress page, Success page and Failure page. A custom page may be static or personalized. For static pages, just create the webpages using any web development tool and enter their URL into the corresponding fields in the configuration file, as explained below in "Replacing the default pages with your branded pages". A static page can also be an image. For personalized pages, follow the steps described below: To create a personalized custom PDF download page: - In the project's website, create the three personalized pages (Progress, Success, Failure) using any web development tool combined with XMPL personalization tags. - Upload these pages to the remote site and test them. - Copy the URL of these pages without any query string parameters (e.g. rid, etc.) - Paste these URLs into the configuration file, as described below. ## Replace the default pages with your branded pages To brand the PDF generation status windows, replace the default pages with your branded pages as follows: - Open the **XMPieDownloadLink.config**  file in the **XMPieEmail** folder on uProduce. The file content looks as follows: xml version="1.0" encoding='utf-8' standalone="no"?>                             false  - In the  tag enter the ID of the uProduce campaign for which you want to override the PDF on demand default download pages. The CampaignID can be seen in the **uProduce Connection** dialog box next to the **uProduce Campaign** field. If you want to override the default pages for all campaigns for which there is no specific override setting in the configuration file, enter "0" value for this tag. - In the tag, enter the URL of the custom Progress page. - In the tag, enter the URL of the custom Success page. In the tag, enter the URL of the custom Failure page. **Example:** In the example below, the URLs for CampaignID=0 is valid for all campaigns except for CampaignID=1252, which has different URLs specified for PDF on demand download pages.  xml version="1.0" encoding='utf-8' standalone="no"?>        0     http://www.site1.com/Progress.html     http://www.site1.com/Success.html     http://www.site1.com/Failure.html        1252     http://www.site2.com/Progress.html     http://www.site2.com/Success.html     http://www.site2.com/Failure.html      false  ### Email Touchpoints # Email Touchpoints #### Email touchpoint basics # Email touchpoint basics Circle supports two types of email touchpoints: - **Mass email:** Email messages that are distributed to your recipient list. For example, you may send all recipients an email, inviting them to visit their personalized websites.   - **Triggered email:** An email message that is sent in response to an action performed by a recipient in a website. You can define the actions that trigger such emails when designing your website. For example, the loading of a webpage, registration of a new recipient, referral of a friend, etc. For more information, see Working with triggered email. Configuring email touchpoints is performed in the Production dialog box. Once you connect your project to the uProduce system, you can access the production dialog box directly from the touchpoint on the canvas, or from the library. You can test the email by defining an email address for testing purposes. Emails are subject to legal regulations and must be classified as either Commercial and Transactional. ## Manual A/B Testing Email A/B testing is the process of sending one variation of your email to a subset of your recipients and a different variation to another subset of recipients, with the ultimate goal of working out which variation of the email brings the best results. In Circle, either the subject or the body of the email can be customized to create different versions that you want to evaluate. Create your first version of the email, duplicate it to create a second version and customize the subject and body to differentiate it from the first version. Then define a filtered list to specify the subset of recipients to receive each of the email variations. After both versions of the email have been sent, you can view the individual touchpoint metrics to determine the best option, and send that variation to the rest of the list. In the following example, two variations of an email invitation have been created and sent (E2, E3). After viewing the analytics of each touchpoint to determine the best option, you can customize E1 to the best option and send it to the rest of the list. You may now want to see the analytics of E1, E2 and E3 consolidated into a single view to see how well the invitation did in total.   In order to see metrics of **multiple** touchpoints together, use the **Consolidated View** option from the Analyze dashboard as follows: - Select the checkbox of the thouchpoints whose metrics you want to combine. - Click the **Consolidated View** button to view an aggregation of the analytics of the three touchpoints in a single view. ## Manual throttling Email throttling is splitting up a huge number of emails into several smaller sends over a longer period of time, for example to improve deliverability or to reduce the load on the website or on call centers.   Imagine you had 40,000 emails to deliver. You could send 10,000 a day over four days at 8 o'clock in the morning.   To do this, create the email, duplicate it three more times, customize the list and then schedule each to be sent on the relevant day. When you look at the analytics, you can consolidate all four touchpoints into one view to see how well they did in total. In order to see metrics of **multiple** emails together, use **Consolidated View** option from the Analyze dashboard as follows: Select the checkbox of the touchpoints whose metrics you want to combine. Click the **Consolidated View** button to view an aggregation of the analytics of the four touchpoints in a single view. ## More topics Configuring Email Touchpoints Defining Email Documents Creating Multi-part Emails Modifying an Email Configuring Email Settings Working with Triggered Email #### Configuring Email Touchpoints # Configuring email touchpoints - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Fill in the headers. - From the **Body** list, select an email document or create an email document using the email editor. - From the **List** dropdown list, select an existing recipient list or click **Add** to add a new list. **By default, **All Recipients** is selected. To edit an existing list, select it and click **Edit**. - In the **Settings** area, define the account email settings. - In the **Schedule** field, set up scheduling definitions. By default, scheduling is not active and the email is sent immediately Scheduling becomes Active once the project is set to Live. - Click **Save** and then **Close **to exit the **Production** dialog box. Once a document has been associated with a touchpoint and the touchpoint has been saved, the document becomes available for preview when clicking the node title link in the diagram. ## Define headers The header fields available to you vary according to the delivery provider you select. The administrator is responsible for setting up supported delivery providers for your account. Circle supports the following delivery providers: - XMPie Email Service (XES) - SMTP - Third-party delivery providers An email header typically includes the following fields: - **From** (name and email address) - **Reply To** (This field exists for SMTP and for the latest XES version. If you do not see this field, you may contact Support for an upgrade.) - **To Email** - **Subject** To define headers: - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Click **Header** to display the **Production > Header** dialog box. Notice that the default delivery provider for the current account is displayed at the top right corner of the dialog box. The fields in the dialog box change according to the selected delivery provider. - You can change the default delivery provider by clicking the provider's name and selecting a different one from the popup menu. - Fill in the fields as required. Note:** The XES delivery provider requires that before you send emails you verify each email address that you plan to use as a "From" or "Sender" address, to prove that you own it. Verify the "From" address by clicking the **Verify** link. You can check the verification status of the address using the **Status** link. For further information on why you must verify emails, see About XMPie Email Service (XES) in the XES documentation. - You can add content objects to any of the fields in the message header by doing one of the following: - Manually type the content object between two open and close curly brackets {{Address}}. - Type two open curly brackets to display the content object list and then select the relevant content object. All fields in the **Header** page can include static text as well as multiple text content objects. The only exception is the **Address** field, which can include only a single text content object or email address. Examples: - In the **To** field: {{EmailAddress}} - In the **Subject** field: Greetings {{FirstName}} {{LastName}} from Cars4U - Click **OK**. The delivery provider is saved together with the touchpoint with which it is associated. You can assign a different delivery provider for other touchpoints without affecting those that have already been saved. #### Defining Email Documents # Defining email documents using the email editor You can create an email document in HTML or plain text in any of your preferred tools, and then upload it to an email touchpoint. Alternatively, Circle provides you an email editor so you can quickly and easily design responsive emails. You can create email documents in HTML or plain text, and easily insert content objects, images, footers, and more. The email editor includes the following benefits: - **Responsive layout:** Compose your emails using a responsive layout. - Your emails will look well on a variety of devices and window or screen sizes (desktops, tablets and phones). In order for your email to be responsive, you must also use the editor's responsive building blocks. - **Responsive ****building blocks:** Select from a list of reusable responsive layouts to organize the content of your email. - **Preview:** Preview your email using sample recipients in both desktop and mobile views. After you edit and change the code, you must ensure that the changes have not affected the responsiveness of the email. ## Create an email document from the touchpoint - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - In the** Body** area, click **Plus** . - Select one of the following options: - **Upload File:**  Upload an existing document. You may then continue working on it in the editor. - **Open Editor:** Open the HTML editor and start working on a blank document. - If you wish to add a PDF attachment to your email, see Add PDF attachments to email campaigns. - Compose your email message in the white rectangular area using the design options provided on the top toolbar and left panel.   Left-panel options include: - Content objects, organized into three categories: Plan content objects (such as First Name, Last name, Address) - Special content objects (such as XMPieRecipientKey, XMPie.PDF.P1, XMPie.Web.W1) - Email content objects (such as Email Footer, Unsubscribe URL, View in Browser) Simply click a content object to add it to the insertion point. - Building Blocks Click a building block to add it to the insertion point. - You can add the following automatic link content objects: - **View in Browser link:** Allows the email recipient to view the email content as a webpage in addition to viewing it in the email client. You can add the **View in Browser** content object to your document body. The **View in Browser** content object is located in the **Email Content Objects** group. This content object displays a link in the resulting email message. Clicking this link opens the email in the recipient’s default web browser. You can edit the default "View in Browser" link text. The View in Browser content object is not functional when sending emails via the SMTP delivery provider. - **Webpage touchpoint links:** For each webpage touchpoint in your project there is an automatic object created in the **Special Content Objects** group. Each link is named with **XMPie.Web** and the touchpoint ID, for example XMPie.Web.W1 or XMPie.Web.W2. When placed into the email document, the XMPie.Web.W1 link will create a link to the W1 webpage by using the settings defined on the webpage touchpoint itself, and the website configuration in the Library. - **PDF On Demand link:** The content object list includes content objects beginning with "XMPie.PDF". These content objects represent PDF On Demand touchpoints. These content object are used in emails as well as in webpages. This content object displays a link in the resulting email message or a webpage. Clicking this link opens the personalized PDF document. The "XMPie.PDF" content object is displays in the **Special****Content Objects** group once the PDF touchpoint has been added to the canvas and configured. For instructions on creating PDF On Demand touchpoints, see PDF on demand touchpoints. - If your document is in HTML, - Click to display and edit the HTML code. You can use the Search function to search the text. Click to return to design mode. - If you wish to preview your document with sample recipients, click and then browse between recipients using the recipient list selector You can see the preview in both desktop and mobile views by clicking . - Click **Save**. The document name is added to the **Body** list, and is now available to other email touchpoints in the project. After you edit and change the code, you must ensure that the changes have not affected the responsiveness of the email. ## Add PDF attachments to email campaigns Circle allows you to attach PDF documents directly to your mass email campaigns. This feature enables you to send personalized documents (such as invoices, statements, reports, or certificates) alongside your email communications. Prerequisites: Before adding attachments to your email campaign, ensure you have: - A configured PDF on-demand touchpoint in your project. The PDF attachment can be up to 20MB in size. - An email touchpoint set up for batch production. Attachments are supported for batch email campaigns only. - You can attach one PDF document per email. It's file name must be static. - Sufficient credits in your subscription (attachments consume additional credits based on file size) Note that Circle cannot track whether recipients open or view PDF attachments. When you select a PDF on-demand touchpoint as an attachment, you have access to all the features available in PDF touchpoints, such as password protection. In the Run Center, you’ll see separate job IDs for each step, allowing you to track the progress of PDF generation and email delivery independently. ## Upload an email document to the touchpoint - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - In the**Body**area, click the**Plus** icon. - From the menu, select **Upload File**. The **New Document** window opens. - From the **Document Source** list select **Upload File**, and then click **Choose File** to select your document. Note that the document name must be unique. If another file with the same document name exists elsewhere in the project, you can type a new name for the file in the **Document Name** field. The document name is now displayed in the **Body** list in the **Production** dialog box. The document's format, ID number and creation date are also displayed. This document is now available to other email touchpoints in the project. ## Replace images with graphic content objects Static images in your email can be easily replaced with graphic content objects. To replace a static image with a graphic content: - In Design view, click the static image. - On the displayed toolbar, click **Graphic Content Object**. - From the list of graphic content objects, select the required one. ## Add a tracking name to a link **Prerequisite:** XES Client 3.5 or higher. Circle automatically assigns each link a tracking name. If you wish, you may define your own tracking name in order to easily identify specific links in your email, using "xmp-tracking-action" (see Link tracking name in the Email cheat sheet). The links and their performance can be seen in the Link performance report. Adding the tracking name is done in the Email Editor's Code view. Add xmp-tracking-action="trackingNameHere" to the link. Make sure not to add spaces or special characters to the value. If you do not wish to track a specific link, add View in Browser Note that "1" indicates no tracking and it is not a customizable value. ## Add a footer to an email document You can add a footer to the body of an email in the email editor. Footers can be added to both HTML and plain text documents. The footers can be added either manually (by typing the text of your footer from scratch with content objects included), or by inserting a predefined footer in the email editor. You can include content objects in the footer. **Note:**  Predefined footers are set in the **Edit Account** dialog box. See Defining email account settings. If you are editing a commercial email, you must add the email footer with unsubscribe information and the physical address of your company. You may do it either by using the Email Footer content object or by manually editing your footer. To add a default footer to an email document: - In the email editor, place your insertion point where you want the footer to appear, and in the **Email Content Objects** group click **Email Footer**. The email footer defined in the account settings is added to your email. - Edit the footer as required, including addition or removal of content objects. - Click **Save**. ## Watch a video Creating an email message in Circle ## More topics Creating multi-part email Modifying an email document Working with triggered emails #### Tagging email documents - cheat sheet # Tagging email documents - cheat sheet Email document tagging can be done code mode of the Circle email editor, or in any editor of your choice. Remember, emails can be in HTML and/or text formats. Both formats support the nesting of XMPL code. However, due to the limitations of text emails, some HTML email features are not supported in text emails. ## Supported in HTML Email ### Text content objects Below are examples of how to tag text content objects. A content name with a space must be enclosed in single/double quotes and square brackets. {{xmp.r['My TextAdor']}} {{xmp.r["My TextAdor"]}} {{xmp.r.MyTextAdor}} ### XMPieRecipientKey content object {{xmp.r.XMPieRecipientKey}} ### Graphic (Image) Using graphic assets and a graphic content object: Using a URL in Text content object: `` `` ### Style To switch the class of an HTML element based on the style content object, have the style content object return the value of the desired class. In the example below `MaleStyle` or `FemaleStyle` or `NoGenderStyle` are the value set for the style content object. Set the `xmp-class` to the content object. Note that email supports only class selectors (no expressions).  

Style

 
Text style varies per recipient
### Visibility Emails sent with XMPie Email Services (XES) can contain visibility content objects. Visibility can be used on either div or span tags. The content object must by a visibility content object, and the value can only be true or false. Expressions are not allowed.
Show if IsStudent is 'true'.
or Show if IsStudent is 'true'. ### Link Create a link to an address supplied by a content object. users blog ### Link Tracking Name Requires XES version 3.5 and above. Circle automatically assigns each link a tracking name. If you wish you may define your own tracking name to easily identify specific links in your email. View in browser Link tags can include the numbers 0–9, the letters A–Z (both uppercase and lowercase, English only), hyphens (-), and underscores (_). Spaces and special characters are not allowed. ### Disable Link Tracking Requires XES version 3.5 and above. If tracking email activity is enabled, all links in the email are tracked. To prevent tracking of a specific link, add View in Browser Note that "1" indicates no tracking and it is not a customizable value. ### View in Browser View in browser ### Web Content Objects Visit the website   ### Email Footer (for anti-spam legislation e.g. CAN SPAM act)
UNSUBSCRIBE
If you do not wish to receive future email publication from us please click here.

CONTACT US
You can reply to this email, or contact us via postal mail at:
{{XMPie.Email.Sender.BusinessName}}
{{XMPie.Email.Sender.Address}} {{XMPie.Email.Sender.City}}, {{XMPie.Email.Sender.State}}, {{XMPie.Email.Sender.ZIPCode}} {{XMPie.Email.Sender.Country}}
Note that all these content objects use the following format: {{XMPie.Email.Sender.Address}} ### Unsubscribe Unsubscribe ### PDF on Demand Create a link to a PDF on Demand touchpoint (where P1 is the touchpoint Friendly ID). The PDF on Demand shows the data available at the time the email was sent. View the PDF ### Table content object                  
First Name Last Name
{{Department.FirstName}} {{Department.LastName}}
Or
        
  •         {{item.Date}}:  {{item.Liter}} Liters                            
  ## Supported in Text Email ### Text content object Same as with HTML. {{xmp.r.myTextAdor}} ### Visibility Lorem Ipsum. The span tag also works in this case. ### Style content object Not supported in Text emails. ### Graphic content object Not supported in Text emails. ### Table content object `` `{{Department["First Name"]}} {{Department["Last Name"]}}` `` ### Link content object Link (href tag) is not available in a Text email. To write the URL as text, use the link content object as if it was a text content object: {{xmp.r.XMPieRURL}} ### Link Tracking Not supported in Text emails. ### Nesting Nesting is allowed. ">{{FirstName}} , you are entitled to 20% discount and a second item for 50% discount #### Creating Multi-part Emails # Creating a multi-part email Circle allows you to create single-part and multi-part emails. A single-part email contains an HTML or a plain text email message body. A multi-part document consists of both an HTML version and a plain text version. The multi-part email can be viewed in either format according to the settings of the recipient's email client software. HTML emails provide formatting options designed to enhance the email's message, such as graphics, colors, visually-pleasing fonts and links. Plain text provides few formatting options beyond upper and lower case characters and asterisks to provide a hint of visual interest. Most email client software supports HTML code and is more likely to open the HTML version than the plain text version. However, there are devices and some email clients that cannot support or display HTML correctly. In this case, the plain text version is displayed instead. Under these circumstances, if you did not define a plain text version, the HTML version is displayed by default. The HTML message might then be displayed in a distorted and unreadable fashion. In addition, some subscribers prefer to read their emails in plain text and might have disabled the HTML option on their devices. Another compelling reason to create two-part emails is that the visually impaired rely on screen readers to provide an audio rendition of the text contained in the email. However, screen readers are rarely equal to the task of successfully deciphering HTML code and can cause the potential subscriber to simply ignore the email. ## Create a multi-part email - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - In the**Body**field, click **Add Part 2**. The **Body** list is replaced by two lists: **Body-HTML** and **Body-Text**. - Do one of the following: - Select a document from the **Body-HTML** and **Body-Text** lists. - Click the **Add** icon corresponding to the second **Body-** field and select one of the following from the menu: **Upload File:**  Upload an existing document. You may then continue working on it in the editor. See Upload an email document to the touchpoint. - **Open Editor:**  Open the editor and start working on a blank document. See Create an email document from the touchpoint. The document is displayed in the **Body-** field. The email is delivered in both HTML and plain text formats. ## Remove documents from a multi-part email - In the**Production**dialog box, in the**Body-Text** area, click **Remove**. The **Body-HTML** list and the **Body-Text** list are replaced by the **Body** list. The **Body** list reverts to its previous status. #### Modifying an Email # Modifying an email document Circle offers three ways to modify an email: - Upload an email document to replace the one currently displayed - Download a copy of the current email document, edit it and upload it to replace the earlier version - Edit the current email body in the email editor Both uploaded HTML and plain text email documents, as well as email documents that were created using the email editor, can be edited in the email editor. To modify an email document: - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Select the email document you want to edit from the **Body** list. - Click the **Edit** icon . The **Document** dialog box opens displaying the current email document's details, including its ID number, creation and modification dates and the name of the user who created and modified it. - Select one of the following options: - **Upload ** **:** Replaces the current email document with a different one. See Uploading an existing email document to the touchpoint. - **Download** **:** Saves the email document locally where you can edit it and then upload it, replacing the earlier version. - **Edit ** **:** Opens the email editor where you can edit the document. If the current email is in HTML, the editor opens with HTML as the default. If the current email is in TXT format, the editor opens with TXT as the default. - Click **Close** to quit the **Document** dialog box. You return to the **Production** dialog box. - Click **Save** to save the changes. #### Configuring Email Settings # Configuring email settings Configuring email settings consists of the following steps: - Selecting a delivery provider. Default delivery providers are defined in the Account Settings. - Classifying an email as commercial or transactional. - Setting up email account settings. Email settings are defined in the email touchpoint Production dialog box. ## Define email account settings When defining account settings, you need to define a number of parameters specific to emails. By default, the account settings you define apply to all email touchpoints in the specific account. Changes to the account settings affect all projects connected to the specified uProduce account. When setting up email parameters, provide the following information: - **Default delivery provider** - **Placeholders Settings**: These settings are used to verify that commercial emails contain data required by the US Federal CAN-SPAM Act and similar anti-spam laws in other countries. - **Email Footers**: You can edit the text for HTML and plain text footers. You can define and edit account email settings from the following locations: - **uProduce Connection dialog box:** You can edit an existing account or create a new one. - **Email Touchpoint Production dialog box:** When defining parameters for an email touchpoint, you define settings that apply to the selected email touchpoint. ### Define account email settings from the uProduce Connection window - Click the **Build** tab, and then click **Connect** on the top toolbar. The **uProduce Connection** dialog opens. - In the **uProduce Account** field, do one of the following: - Click the **Edit** to edit the selected account's settings. - Click the **Add** icon to create a new account. The **Edit Account** window is displayed. - In the **Email Settings** area, fill in the details. | Configuring email settings | Select a delivery provider from the list. The listed options were set up by the administrator. Circle supports the following delivery providers: XMPie Email Service (XES), SMTP, Third-party delivery providers. The header information you provide is based on the delivery provider you select. The default delivery provider defined in the email account settings is by default displayed in the Settings field of the Production dialog box. | | --- | --- | | Configuring email settings | Select one of the following physical address options: Custom: Select this option to enter a custom physical address. The values specified in the fields are assigned to the corresponding XMPie content objects.; Use Delivery Provider defaults: Use the default Business Name and Physical Address settings that were specified during subscription to the Email.; Unsubscribe Web Address: Targets an Unsubscribe URL. The removal of the subscription is applied only to the current account.; Use the generic Unsubscribe page: the Generic Unsubscribe web page provided by Circle. This option is supported for all delivery providers. When this option is selected, the Unsubscribe web pages are created and managed using the XMPie system. In addition, the unsubscribe list is stored and managed in the XMPie database.; Custom: Type a custom Unsubscribe web address. When this option is selected, the Unsubscribe web pages are created and managed using XMPie system. Moreover, the Unsubscribe list is stored and managed in the XMPie database. To create a Custom Unsubscribe website you can use the RURL Wizard Email Unsubscribe Template.; Use defaults of delivery provider's: The Unsubscribe web pages and the Unsubscribe database are managed by the delivery provider. | - In the **Email Footers** area, set the values for email footer text. | Email HTML Footer | A preview of an HTML footer that can be inserted into your current email is displayed. The values appear as content object records. Clicking Edit Email HTML Footer allows you to edit the text in the email editor. | | --- | --- | | Email Text Footer | A preview of a text footer that can be inserted in to your current email is displayed. The values appear as content object records. Clicking Edit Email Text Footer allows you to edit the text in the email editor. If you opt not to use the provided footer templates, you will have to add it to the email and insert all the required content objects manually. | - Click **Save**. ### Define account email settings from an email touchpoint - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Click the menu icon at the top right corner, and then select **Account Settings**. The **Edit Account** dialog box is displayed. - In the **Email Settings** area, fill in the details. | Default Delivery Provider | Select a delivery provider from the list. The listed options were set up by the administrator. Circle supports the following delivery providers: XMPie Email Service (XES), SMTP, Third-party delivery providers. The header information you provide is based on the delivery provider you select. The default delivery provider defined in the email account settings is by default displayed in the Settings field of the Production dialog box. | | --- | --- | | Placeholders Settings | Select one of the following physical address options: Custom: Select this option to enter a custom physical address. The values specified in the fields are assigned to the corresponding XMPie content objects.; Use Delivery Provider defaults: Use the default Business Name and Physical Address settings that were specified during subscription to the Email.; Unsubscribe Web Address: Targets an Unsubscribe URL. The removal of the subscription is applied only to the current account.; Use the generic Unsubscribe page: the Generic Unsubscribe web page provided by Circle. This option is supported for all delivery providers. When this option is selected, the Unsubscribe web pages are created and managed using the XMPie system. In addition, the unsubscribe list is stored and managed in the XMPie database.; Custom: Type a custom Unsubscribe web address. When this option is selected, the Unsubscribe web pages are created and managed using XMPie system. Moreover, the Unsubscribe list is stored and managed in the XMPie database. To create a Custom Unsubscribe website you can use the RURL Wizard Email Unsubscribe Template.; Use defaults of delivery provider's: The Unsubscribe web pages and the Unsubscribe database are managed by the delivery provider. | - In the **Email Footers** area, set the values for email footer text. | Email HTML Footer | A preview of an HTML footer that can be inser```ted into your current email is displayed. The values appear as content object records. Clicking Edit Email HTML Footer allows you to edit the text in the email editor. | | --- | --- | | Email Text Footer | A preview of a text footer that can be inserted in to your current email is displayed. The values appear as content object records. Clicking Edit Email Text Footer allows you to edit the text in the email editor. If you opt not to use the provided footer templates, you will have to add it to the email and insert all the required content objects manually. | Click **Save**. ## Classify email as commercial or transactional Email messages must be classified as commercial or transactional. The terms Commercial and Transactional have legal significance under the U.S. Federal CAN-SPAM Act and in the laws of other countries. **Note:** If you are unsure of classification, XMPie recommends selecting Commercial and providing an unsubscribe link. However, this is not legal advice. We recommend seeking professional advice on this subject from your legal counsel.  ### Commercial email messages Commercial emails are defined as: "Any electronic mail message the primary purpose of which is the commercial advertisement or promotion of a commercial product or service." Commercial emails require details about the sender, such as business name and physical address, to allow the recipient to see from where the email was sent. In addition, Commercial messages must include a mechanism to unsubscribe, such as a link that allows recipients to opt-out from receiving further emails for a specific campaign or from a specific sender. Usually, the sender details and unsubscribe link are included in the email footer. When the email is classified as Commercial, the system checks for the presence of a physical address and unsubscribe link placeholders. ### Transactional email messages Transactional email messages, according to CAN-SPAM, are primarily emails that: "...facilitate, complete or confirm a commercial transaction that the recipient has previously agreed to enter into with the sender." According to the US Federal Trade Commission,  the subject line must be transactional in nature and non-promotional to be compliant with the US Federal CAN-SPAM Act. Transactional emails can be sent to existing recipients with whom the sender already has a relationship or to those who have explicitly requested receiving such emails. Sender details and an unsubscribe link are not required in Transactional emails. ### Switch between commercial and transactional emails - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - In the**Settings**field, click**Commercial**or**Transactional**. - From the menu, click the classification you want to switch to. ## Split email delivery By default, the system delivers all the emails in one batch. However, when sending an email to a large number of recipients, it is sometimes recommended to split the email delivery into several batches. When email delivery is split into batches, several corresponding jobs with a different Job ID appear for the given email touchpoint in the Run Center. See Run Center information. To split email delivery into batches: - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - In the **Settings** field, click the batch selection link (the default selection is **1 batch**). The **Split** window is displayed. - Enter the number of batches. - Click **OK**. - In the **Production** dialog box, click **Save**. #### Working with Triggered Emails # Working with triggered email Typically, at the launch of a project, you send a mass email to all or selected recipients. Unlike mass email, a triggered email is always sent to a single recipient. A triggered email is sent in response to an event, usually an action, performed by a recipient on a XMPL webpage. For example, submitting a registration form triggers a "Thanks for Registering" email to the person who registered. For information on how to define the triggered email in the XMPL webpage, see Triggered emails. An email touchpoint is a mass email by default. Circle allows you to switch from a mass email to a triggered email. When you switch from a mass email to a triggered email, all content associated with the mass email continues to be associated with the triggered email. Alerts for triggered emails can be accessed from the triggered email touchpoint. ## Configure a triggered email touchpoint To configure a triggered email, you basically follow the same procedure as configuration of a mass email. However, several options are **not** relevant for triggered emails: - List: The email is sent to a single specific recipient. - Schedule: The email is triggered by an action performed by the recipient in the webpage. - Send: The email is automatically sent when triggered by the action performed by the recipient in the webpage. To create a triggered email touchpoint: - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - In the top right corner, click the menu icon and select **Triggered Email**. - From the **Body** list, select an email document or create a new one. - Click the icon and select **Account Settings** to define account settings. - Click **Save**. This triggered email is now ready to be sent when the associated action occurs in the XMPL webpage. #### XES subscription # XES subscription The **Email Service - XES** window provides you an overall view on the status of your XES subscription. The **XES Subscription** area includes: - The date on which the subscription will be automatically renewed. The subscription renews automatically every 30 days. Credits which haven't been used are lost. - The number of credits at your disposal (plan credits and additional credits that you may have purchased) - The remaining number of credits. You may click **Upgrade/downgrade plan** to go directly to the XES store and purchase additional credit. - Plan status. In case there is a problem with the payment, the subscription will be suspended and the service will be automatically stopped. Click **Manage subscription** to sort out the payment. Once sorted out, the subscription will become active again and the service will resume. Why does my dialog look different? We have transitioned to a new XES store on July 2020, however you are still using the old store to monitor your XES subscription. Upon expiration of your subscription, your next subscription will be from the new store. ## Email account usage You can generate a report to easily keep track of how many emails have been sent from the selected account for a specific time range. Download the detailed report to receive a monthly breakdown for the specified time range. The **Total Sent this Year** displays the number of emails sent by the selected account for the current year. This value updates daily at 12 (UTC). ## Overage emails If you've exceeded the number of emails allowed by your subscription, an **Overage** row is added, detailing the number of emails which have exceed the quota. This number sums all overage emails sent from all accounts within the subscription. You can click the **Buy more credits** link to purchase additional emails. ## Multiple accounts per subscription If your subscription comprises multiple accounts, you will be notified that "This XES subscription is shared with other email accounts." In this case, the **Remaining** value is calculated based on emails that have been sent from the current account as well as **all** other accounts of this subscription. The **Total Emails Sent** value (in the email Account Usage area) is calculated only for the current account. In the following example, 30,000 emails have been sent from the selected account and 20,000 more from other accounts. This adds up to 50,000 emails that have been sent, and together with the remaining 10,000 amounts to 60,000 plan credits. ### Web Touchpoints # Web Touchpoints #### Web touchpoint basics # Web touchpoint basics A web touchpoint represents a webpage or a website residing on the XMPL server or on your own or your customer's network. Configuring a web touchpoint gives you added control over each webpage and involves defining the path to the webpage for previewing, setting a friendly URL and specifying the name of the page that contains a tracked event. A website can include webpages for both a managed and custom website deployment, based on how each respective web touchpoint is configured. **Example** You are creating a managed website for a customer’s new promotional campaign. All the web touchpoints in the website have been configured for a managed website. However, you want to provide a link from the managed website to the customer’s website, which is external to the XMPL server. To do so, you can configure a webpage touchpoint for a custom website.  ## Configure a web touchpoint for a managed website A web touchpoint represents a webpage or a website and can be configured for a managed or custom website. To configure a web touchpoint for a managed website: - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - In the **File Name** field, type the file name of the webpage you want to preview in this touchpoint. While you type, a link to where you can preview your webpage is displayed. This link will be displayed in the **Live Preview** field in the **Integration** window. In addition, the **Include rid in the URL** option is displayed. - Select **Include rid in the URL**. When selected, the URL and the content of the webpage are dynamic and can be populated with personalized information. To display the recipient's personalized information, the recipient ID is added to the URL. This option is selected by default. - If required, set a friendly URL. See Creating a friendly URL. - From the **Tracking Page Name** dropdown list, select the name of the page that contains the event you want to track.  See Defining a tracking page name. - Click** Save**. The first touchpoint you configure with a friendly URL becomes the default value for the RURL content object. Once a webpage file name has been associated with a touchpoint and the touchpoint has been saved, this webpage becomes available for preview when clicking the node title link in the diagram. The webpage URL is also displayed in the Live Preview field of the Integration window for that touchpoint. ## Configure a web touchpoint for a custom website A web touchpoint represents a webpage or a website and can be configured for a managed or custom website. To configure a web touchpoint for a custom website: - Open the library. - On the left pane, click **Website**. - In the **Website** pane, in the general **Configuration** area, select **Enable use of custom website deployment**. - In the left pane, click **Touchpoints**. - In the **Touchpoint** list pane, select the touchpoint for which you want to configure a custom website. The **Production** dialog box is displayed. It contains two buttons: - Managed - Custom You can also open the **Production** dialog box directly from the touchpoint on the diagram by clicking the **Production**  icon. The **Managed** and **Custom** buttons are displayed only if **Enable use of custom website deployment** was first selected in the **Website** pane in the library. - Click **Custom**. - In the **Page URL** field, type the URL required to preview the page associated with this touchpoint. This URL becomes a link once you save your settings. The URL must include the RID in order for the page to be personalized. - If required, set a friendly URL. See Creating a friendly URL. - If required, specify a name for the page to be tracked. See Defining a tracking page name. - Click **Save**. The first touchpoint you configure with a friendly URL becomes the default value for the XMPieRURL content object. ## More topics Creating a friendly URL Tracking Event Filters #### Creating a friendly URL # Creating a friendly URL (FURL) You can generate a URL that is easy to remember and simple to type in the address field by creating a friendly URL (FURL). The URL includes the XMPieRecipientKey and you can specify where it appears. In a managed website, the XMPL server manages the mapping of the FURL to the webpage base URL. Before you create a friendly URL, you must first fill in the file name of the webpage to enable the XMPL server to map to it. In a custom website, you need to manage the mapping of the FURL to the webpage base URL. Filling in the FURL path allows the XMPL server to recognize the location of the recipient key in the URL. To create a friendly URL: - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - In the **File Name** field, type the name of the webpage. While you type, a link to where you can preview your webpage is displayed. - Click **Friendly URL**. The **Production > Friendly URL** window is displayed. - Type the domain name and the subfolder name in the **Domain** field. It is recommended that you add a virtual subfolder to differentiate the FURL from other FURLs in the same project.  A domain that is associated with a specific webpage can be used only once. - In the **Recipient Key Placement** area, select one of the following: - After domain: For example, http://ABCcompany.net/{{XMPieRecipientKey}} - Before domain: For example, http:// {{XMPieRecipientKey}}ABCcompany.net You cannot place the XMPieRecipientKey before the domain name if you are using an SSL certificate in your site. - Click **OK**. In a managed site, the system checks if the friendly URL is valid. - Click **Save**. In a managed site, the system maps the FURL to the webpage URL. #### Defining a tracking page name # Defining a tracking page name Defining a tracking page name is necessary if you wish to configure an event filter for a webpage touchpoint. To define the Tracking page name, see the Cheat sheet for web. By default, the **Tracking****Page Name**dropdown list in the web touchpoint is empty. To get the list of tracking page names to appear in the dropdown list, you need to actually visit the pages in the website. To go to the website, define sample recipients and click the website URL or friendly URL. In the website, go to the pages you wish to define for tracking and click the tracked items (links, buttons, etc.). Once you visited the webpages, the**Tracking Page Name**dropdown list is populated with the names of the pages defined for tracking and the tracked items on those pages become available for defining an event filter. ## More topics Configuring a web touchpoint Configuring a web touchpoint Creating a friendly URL #### Using Web ADORs # Using Web content objects **Prerequisite:** PersonalEffect version 10.2 Each web touchpoint in your project is represented in the Circle project by an automatic link content object which we call **Web Content Object**. This content object can be easily added to your email or SMS. In case of print documents, the content object should be created manually. To add a web link to an email document: - Create a document as described in Create an email document from the touchpoint. - In the online email editor, place your cursor where you wish to add a link to the web touchpoint. - On the left panel, select **Special Content Objects**. - Select the required web content object and drag it into the document. A web content object consists of an “XMPie.Web" prefix, followed by the touchpoint's friendly ID, for example: XMPie.Web.W1 A reference to the web touchpoint is inserted into your email body. This reference is a URL to the specific webpage configured in the web touchpoint. If a friendly URL was configured for the web touchpoint, the web content object will resolve to the friendly URL. If not, the web content object will resolve to the full URL. - Click **Save**. You can now use this document as an email body. Once the email is sent and the recipient clicks the new link, the recipient is redirected to the webpage represented by the web content object. To add a web link to SMS: - Configure your SMS touchpoint, as described in Configuring SMS touchpoints. - In the **Message** area, type two open curly brackets to display the content object list, and then select the web content object. A web content object consists of an “XMPie.Web" prefix, followed by the touchpoint's friendly ID, for example: XMPie.Web.W1\ A reference to the web touchpoint is inserted into your SMS message. This reference is a URL to the specific webpage configured in the web touchpoint. If a friendly URL was configured for the web touchpoint, the web content object will resolve to the friendly URL. If not, the web content object will resolve to the full URL. To add a web link to a print document: - Add a new link content object to the plan file. - Define the content object expression. It should be a call to the GetTouchpointData QLingo function. Example: GetTouchpointData("W1", "URL") This returns the URL of the web touchpoint W1. - The content object is now ready for use in your print document. Once the document is ready and the recipient clicks the new link or scans the QR code, the recipient is redirected to the webpage represented by this content object. If a friendly URL was configured for the web touchpoint, the content object will resolve to the friendly URL. If not, the content object will resolve to the full URL. ## More topics Web URL Source and Media Parameters ### Websites # Websites #### Working with Websites # Working with websites To fully exploit all available tools to promote your products and services, a website is a required component of any integrated marketing project.   Circle allows you to create websites with pages that can dynamically display content unique to the user accessing it. The user-specific content is populated with information derived from your project’s plan file and data source. Using Circle, you can create an easy-to-remember friendly URL, track who visits specific webpages and trigger a response based on an action performed by a user, such as referring a friend. In addition, you can update your data source using web forms. Circle gives you the option of deploying two types of website: - Managed website: The website resides on the XMPie XMPL server and is managed by XMPie. - Custom website: The website resides on your own or your customer's network, such as Amazon, and is created and managed by you. You can personalize the webpages and track page visits, links and buttons (see the Cheat sheet for web). Once the project is running, you'll be able to see the Circle web analytics of any page or action that you tracked. ## More topics Managed websites Custom websites Website Security #### Managed websites # Managed websites Each project can support one managed website only. Before you can create a managed website, you need to first upload the plan file and data source to the system. The plan file’s logic and data source content objects can then be used to personalize your web pages. In a managed website, Circle manages the site directories, which include all the files associated with a website, including HTML files and images. Creating the site generates the following folders to the XMPL server: - Test: For testing purposes - Live: For the public domain You can create, design and personalize your website pages using any web design tool, and add XMPL tags using the Cheat Sheet for web. In a managed website, Circle generates a site directory containing the following two files: - Sample HTML file, named default .htm - Configuration file, named xmpcfg.js, which contains the following: - XMPL server URL - Token: Confidential code that is exclusive to your current project and enables your website to securely access data. ## Create a managed website Before creating a managed website, you need to first connect your project to uProduce and upload a plan file and data source to the system. **Note:** If you want to create a custom website that resides on your local network, see Working with a custom website. To create a managed website: - Open the library. - In the left pane, click **Website**. The **Website**pane is displayed. - In the **Managed Website** area, click **Create Managed Website**. The website name is displayed. By default, the website name is the same as your project, without spaces. You can rename the website by typing a new name into the **Website Name** text box, if required. This is your only opportunity to change the website name. - Click **Create Managed Website** again. The system begins the process of creating the website. When successfully completed, the **Server Details** pane is displayed. - Click the **Base URL** link under the **Testing** folder to display a sample landing page. Scrolling down the pane displays the Base URL link under the **Remote (Live)** folder. Circle generates a site directory containing a sample HTML file named **default.htm**. - If you're using XMPL 3.5 and lower, in the **General Configuration** area, click the  icon to download the generated configuration file (xmpcfg.js) and place it in the site root folder. If you're using XMPL 5.0, your configuration file (xmpcfg.js) will be uploaded automatically to the site root folder. - Click **Upload** to upload your HTML files to your website. You can download these files to update them, and then upload them again. Note that for every additional website upload, a backup of the website content will be created (up to 10 backups). ## Watch a video Creating a website in Circle ## Define the XMPieRURL content object value When uploading a data source to the system, you are asked to create a recipient ID. Creating a recipient ID allows you to adapt the data source to the web. Adapting the data source to the web allows you to create a friendly and unique personalized URL. The friendly URL can then be used as the auto-created XMPieRURL content object value to represent the full URL path to the site’s targeted page. The friendly URL includes the domain name and the recipient key. You now need to apply a value to the content object. The value is the friendly URL (FURL) you configured for the associated touchpoint. FURLs are defined from the webpage touchpoint. Only touchpoints with a defined FURL appear in the dropdown list. The first touchpoint that includes a FURL is the default value in this field. To define an XMPieRURL content object value: - Select a touchpoint that includes the FURL you want from the dropdown list. The FURL belonging to the touchpoint you select is the value applied to the XMPieRURL content object. ## The configuration file The configuration file is generated by the system when you create a managed website. It contains the following information: - **XMPL server URL:** The URL you use to access the XMPL server. - **Token:** Confidential code for the current project to allow your website to securely access the content objects and their values for each recipient. **Note:** The same configuration file can be used with multiple custom sites within the same project. If you are working with a custom website, you need to create the configuration file manually. ## Revoke the token Circle creates a configuration file, which is exclusive to each project. The configuration file includes a confidential code that allows access to your project data.  To prevent unauthorized personnel from accessing your project data, you can revoke the token. Revoking the token disables the current token and generates a new configuration file containing a different token for future use. After revoking the token, you need to replace the existing configuration file with the one containing the newly created token as follows:   - **Managed site**: Redeploy the site to replace the existing configuration file on the XMPL server. To preview the website in a local environment, you need to first download and replace the existing configuration file manually in order to accept recipient data. - **Custom site**: Download the configuration file and save it in your site Test and Live folders. To revoke the token: - Open the library. - In the left pane, click **Website**. - The **Website** details pane is displayed. - In the **Configuration file** area, click the **Revoke Token** link. A message is displayed, warning you that revoking the token disables the website and asking you to confirm this request. - Click **Yes**. Your site can no longer be accessed using the configuration file with the revoked token. A new token is available in the regenerated configuration file. To enable access to your project data, you need to redeploy the configuration file. ## Redeploy a managed site The system generates a configuration file with a new token following the revoking of the token that allows access to project data. When you are working with a managed website, you need to redeploy the website. **Note:**  If you are working with a custom website, you need to download the regenerated configuration file and replacing the existing one. To redeploy your website: - Open the library. - In the left pane, click **Website**. In the **Managed Website** area, click **Redeploy**. The system begins the process of recreating the website. When successfully completed, the **Server Details** pane is displayed, showing the name of the server and the respective paths to the Testing (Test) folder and to the Remote (Live) folder. #### Custom websites # Custom websites Circle allows you to personalize a custom website, providing you with the configuration file that gives you access to the project’s plan file and data source. You can work with multiple custom websites in a single project. The custom website resides on your own or your customer's network, such as Amazon, and is manually created and managed by you. Before creating a custom website, you need to upload the plan file and data source to the system in order to create the configuration file. **Notes:** - A project supports only one managed website. - You can create, design and personalize your website pages using any web design tool, and tag it with XMPL using the Cheat Sheet for web. ## Work with a custom website - Log in to Circle and open the project for which you want to create a website. - In the library, in the left pane, click **Website**. The website settings for the current project are displayed. - In the **Configuration file** area, click the **Download** icon. The system creates and downloads the configuration file. - Save the configuration file in your website folders. The configuration file contains the token that enables your webpages to access the plan file and data source. Using this token, your webpages can now access your recipient data. - Select **Enable use of custom website deployment**. Selecting this option allows you to configure webpage touchpoints for custom site webpages. To support you in building a custom website, Circle provides links to the following from the **Website** pane: - Information on XMPL - Download the SDK ## Download the configuration file to a custom website You might need to download the configuration file for the following reasons: - If you revoked the token enabling access to project data, the system creates a new configuration file and generates a new token. - If you are working with a custom website, you need to download the configuration file from the library and save it to your Test and Live folders. To download the configuration file: - In the library, in the left pane, click **Website**. The website settings for the current project are displayed. - In the **Configuration file** area, click the **Download** icon. You are prompted to save or open the file. - Save the configuration file in your website folders. #### Website Security # Website Security Two security methods for protecting your websites are available in Circle: - **HTTPS protocol** - Encrypts communication between the browser and the website. - **User authentication (SecURL)** - Protects access to recipient information stored in content objects. For an optimal security solution it is recommended that you use HTTPS protocol, User authentication and Secure ID. ## HTTPS protocol Use the HTTPS protocol to ensure that communication between the browser and the website is encrypted. When a user connects to a website via HTTPS, the website encrypts the session with a Digital SSL (Secure Sockets Layer) certificate. When HTTPS is configured and activated, Circle enforces HTTPS in webpage links, friendly URLs, XMPL APIs and Circle Live Preview. Currently HTTPS is not supported in email, PDF on demand and XMPieRURL content object. If you wish to continue using HTTP in email and PDF on demand in an HTTPS configuration, you can do so by leaving port 80 open. In an HTTPS configuration there is no automatic blocking of HTTP. For example, if a custom website link is hard coded as HTTP, it will continue to work in HTTP. After you enable HTTPS for a specific project, the XMPL server URL in the website configuration file (xmpcfg.js) changes from HTTP to HTTPS. Therefore, you must download this file and replace it in the site root folder. If you switch back to HTTP, replace the configuration file as well. **Note:** Before activating HTTPS, refer to the HTTPS configuration prerequisites article. To activate HTTPS protocol: - In the library, click **Website** on the left pane. - In the **Security** section, select the **Use HTTPS** checkbox. - Click **Save**. - In the **General Configuration** section, click the **Download**  icon to download the newly generated configuration file (xmpcfg.js) and replace it in the site root folder. ## User Authentication - SecURL **Important!** Before starting, it is recommended to watch the following video: Authentication on personalized websites. **Prerequisite:** Prior to enabling user authentication in Circle you must add authentication components to your XMPL site to support user sign-in. Learn how User Authentication protects unauthorized users from accessing private recipient information which is stored in content objects. User Authentication is used to increase online security. Protecting your Personalized URLs (PURLs) in this way is an important step towards GDPR compliance, and is typically used in conjunction with HTTPS. When using User Authentication, the system prompts the recipient, when trying to access a personalized URL, to sign in via a login page. The recipient must enter a password (or a user name and password, depending on the setup). If the password is correct, the recipient is granted access to the PURL. Access to read/write content object values will always be protected until the recipient signs in. Event tracking will not work until the user is signed in. Once User Authentication is enabled in Circle, all XMPL Rest API calls will require a security token for the project, and the site will not work without user login. User Authentication is implemented on a project level, and affects both managed and custom websites. The out-of-the-box authentication methods provided are No Hashing (clear text) and MD5. On insert and update, the password content object is encrypted according to the hashing method. Several technical points regarding User Authentication: - Once User Authentication is enabled in Circle, the XMPL site for this project will not work without user sign-in. - When User Authentication is enabled, all XMPL Rest API calls to this project will require a security token. - In order to redirect to the sign-in page, you must create a separate config file on the client called **xmpcustom.js**. To create this file, see Setting up the xmpcustom.js File. - In order to know which user to authenticate, the RID must be passed in the PURL. - The login session time out is one hour, after which the user is returned to the sign-in page. - XMPL version 3.0 or higher is required. **Note:** SecURL is not supported in Template-Instance and Campaign-on-Demand (uStore).  To activate User Authentication - Make sure you have added authentication components to your XMPL site to support user sign-in. - In the library, click **Website** on the left pane. - In the **Security** section, select the **Require user authentication** checkbox. Note that additional fields are added below. - From the **Username** and **Password** dropdown lists select text content objects. **Username** (for example First Name) is optional. **Password** can be a content object that represents an ID, a login code or a password content object (a given customer password). - From the **Password Hashing** list select the required password hashing method. The available methods are **MD5** and **No hashing**. Make sure that your hashing selection is compatible with the method applied to the passwords in your recipient list. If you wish to use a more complex hashing method, contact request@xmcircle.com. ### Change the password hashing method In order to change an existing SQL password column from clear text to MD5 encryption you can use the following script: Note that once you run the script you cannot go back to clear text. It is recommended to back up the database before running the script. -- Run once: createfunction dbo.XMPieHashMD5 (@input VARCHAR(250)) RETURNSVARCHAR(250) ASBEGIN     DECLARE @ret VARCHAR(250)        set @ret =(SELECT            CAST(N''ASXML).value(                   'xs:base64Binary(xs:hexBinary(sql:column("bin")))'                 ,'VARCHAR(MAX)'            )   Base64Encoding      FROM(            SELECTHashBytes('MD5', @input)AS bin      )as x);             return  @ret END   --Usage example - Update: updatedbo.[table] set[Column] = dbo.XMPieHashMD5([Column]) ### Integrations # External touchpoint **External touchpoints** allow Circle to communicate with external services in order to broaden its customer communication capabilities. This communication is outbound - when there is a change in Circle, actions in an external application/system will be triggered. Circle supports two types of external touchpoints: - **Triggered external touchpoint:** External touchpoint that transfers data/triggers an event to an external system based on a single event. Similarly to triggering an email to a recipient following a webpage event, using external touchpoints you can interact with the recipient via other channels to enhance the customer journey. For example, when submitting a form or clicking a button, a coupon can be sent to a recipient's wallet or a lead can be created in a CRM system. - **Mass external touchpoint:** Executing an external touchpoint transfers data/triggers events to an external system. Data is sent to an external system based on the selected recipient list. **Note:** Triggered external touchpoints require XMPL version 3.5 or above. External touchpoint is not supported in Campaign on Demand. ## Set up external touchpoints Your first task is to set the external touchpoint's production settings in Circle in order to push data out to an external system. This involves defining a webhook to "catch" the data coming from Circle. To set a triggered or mass external touchpoint: - In the **Plan** tab, place an external touchpoint in your flow diagram. Note that unlike other touchpoints, there is no default preview link for demoing the external touchpoint. You can add a URL to simulate the operation in the touchpoint's **Integration** window by clicking . To make the diagram more explanatory, replace the default image. - Move to the **Build** tab and click the **Production settings** button of the touchpoint to define the webhook settings. - Click the menu icon at the top right corner, and then select **Triggered External TP **or** Mass External TP**. - Define the following webhook settings: - **Headers:** (Optional) When setting up a webhook connection, the HTTP headers play a crucial role in ensuring the proper transmission and security of the data. Headers are key-value pairs sent in an HTTP request or response. They provide essential information about the request or response. The headers help ensure that the webhook request is correctly formatted, authenticated, and secure. For example, Content type, User agent, Authorization, Signature, and more. - **Webhook URL:** The URL to which data is sent when the trigger occurs. This can either be a URL that you've set up in Zapier or other service, or a REST API. - **Method:** Put or Post method. - **JSON Body:** The JSON data that is sent to the URL. The data can include static text, or any of the content object values. In this example, we wish to push the full name and email address into a CRM system. - In case of a **mass** external touchpoint: - From the **List** dropdown, select an existing recipient list or click **Add ** to add a new list. **By default, **All Recipients** is selected. To edit an existing list, select it and click **Edit **. - In the **Schedule** field, set up scheduling definitions. By default, scheduling is not active. Scheduling becomes active once the project is set to Live. - Click Execute**. - In case of a **triggered** external touchpoint, specify when to trigger the external touchpoint. In the HTML code of your webpage, specify when to trigger the external touchpoint. To trigger the external touchpoint, you will need to add the xmp-success-trigger parameter and the touchpoint ID to the form tag or to the page load, or the xmp-clicked-trigger parameter to the button click event. Note that these parameters can trigger either an email touchpoint or an external touchpoint, or both. Zapier is an example of a 3rd party integration web service which can assist you in pushing data to external systems. There are other similar services available. Also, if the system you want to pass data to has a REST API, you can connect directly from Circle to that system. Developers can also create a REST API to consume the data from the Circle touchpoint. - Test the configuration by clicking **Test** and selecting a sample recipient. This executes the webhook and allows you to check that it is valid. When using a 3rd party integration web service, clicking **Test** executes the webhook and establishes a connection between Circle and 3rd party system. ## Watch a video External Touchpoints - Introduction Set up External touchpoints in Circle and push customer data using Zapier ## More topics XMPL Github documentation #### External Touchpoints # External touchpoint **External touchpoints** allow Circle to communicate with external services in order to broaden its customer communication capabilities. This communication is outbound - when there is a change in Circle, actions in an external application/system will be triggered. Circle supports two types of external touchpoints: - **Triggered external touchpoint:** External touchpoint that transfers data/triggers an event to an external system based on a single event. Similarly to triggering an email to a recipient following a webpage event, using external touchpoints you can interact with the recipient via other channels to enhance the customer journey. For example, when submitting a form or clicking a button, a coupon can be sent to a recipient's wallet or a lead can be created in a CRM system. - **Mass external touchpoint:** Executing an external touchpoint transfers data/triggers events to an external system. Data is sent to an external system based on the selected recipient list. **Note:** Triggered external touchpoints require XMPL version 3.5 or above. External touchpoint is not supported in Campaign on Demand. ## Set up external touchpoints Your first task is to set the external touchpoint's production settings in Circle in order to push data out to an external system. This involves defining a webhook to "catch" the data coming from Circle. To set a triggered or mass external touchpoint: - In the **Plan** tab, place an external touchpoint in your flow diagram. Note that unlike other touchpoints, there is no default preview link for demoing the external touchpoint. You can add a URL to simulate the operation in the touchpoint's **Integration** window by clicking . To make the diagram more explanatory, replace the default image. - Move to the **Build** tab and click the **Production settings** button of the touchpoint to define the webhook settings. - Click the menu icon at the top right corner, and then select **Triggered External TP **or** Mass External TP**. - Define the following webhook settings: - **Headers:** (Optional) When setting up a webhook connection, the HTTP headers play a crucial role in ensuring the proper transmission and security of the data. Headers are key-value pairs sent in an HTTP request or response. They provide essential information about the request or response. The headers help ensure that the webhook request is correctly formatted, authenticated, and secure. For example, Content type, User agent, Authorization, Signature, and more. - **Webhook URL:** The URL to which data is sent when the trigger occurs. This can either be a URL that you've set up in Zapier or other service, or a REST API. - **Method:** Put or Post method. - **JSON Body:** The JSON data that is sent to the URL. The data can include static text, or any of the content object values. In this example, we wish to push the full name and email address into a CRM system. - In case of a **mass** external touchpoint: - From the **List** dropdown, select an existing recipient list or click **Add ** to add a new list. **By default, **All Recipients** is selected. To edit an existing list, select it and click **Edit **. - In the **Schedule** field, set up scheduling definitions. By default, scheduling is not active. Scheduling becomes active once the project is set to Live. - Click Execute**. - In case of a **triggered** external touchpoint, specify when to trigger the external touchpoint. In the HTML code of your webpage, specify when to trigger the external touchpoint. To trigger the external touchpoint, you will need to add the xmp-success-trigger parameter and the touchpoint ID to the form tag or to the page load, or the xmp-clicked-trigger parameter to the button click event. Note that these parameters can trigger either an email touchpoint or an external touchpoint, or both. Zapier is an example of a 3rd party integration web service which can assist you in pushing data to external systems. There are other similar services available. Also, if the system you want to pass data to has a REST API, you can connect directly from Circle to that system. Developers can also create a REST API to consume the data from the Circle touchpoint. - Test the configuration by clicking **Test** and selecting a sample recipient. This executes the webhook and allows you to check that it is valid. When using a 3rd party integration web service, clicking **Test** executes the webhook and establishes a connection between Circle and 3rd party system. ## Watch a video External Touchpoints - Introduction Set up External touchpoints in Circle and push customer data using Zapier ## More topics XMPL Github documentation #### Webhooks # Webhooks **Prerequisite:** Circle Business Edition. A webhook is an event-driven mechanism that allows one application to send real-time data to another application via HTTP callbacks. Webhooks allow communication between applications by triggering events when specific actions occur. The main advantage of the webhooks pattern is that your application doesn’t have to make periodic calls to APIs while it’s waiting for changes. Instead, APIs will call your application on a specific endpoint informing that something interesting has happened. Triggered webhooks allow Circle to communicate with external services in order to broaden its customer communication capabilities. This communication is inbound - webhooks trigger workflows in response to specific events from the outside into Circle. When the webhook is activated, the third-party system sends a signal to Circle to communicate that an event has occurred, and as a result the touchpoint is triggered or the data source is updated. Triggered webhooks can work with external touchpoints to allow both inbound and outbound communication. Webhooks can work with triggered touchpoints only. Circle supports three types of webhooks: - **Trigger only:** When an event occurs in the third-party system, the touchpoint is triggered. - **Insert & trigger:** When an event occurs in the third-party system, a new recipient record is added to the data source and the touchpoint is triggered. - **Update & trigger:** When an event occurs in the third-party system, a new recipient record is updated in the data source and the touchpoint is triggered. ## Set up a webhook - Choose a trigger event – decide which event in the chosen platform should trigger the webhook. For example, a newly crated lead, closed deal, friend request or form submission. - Decide which touchpoint and action in Circle should be triggered by the event (insert/update/trigger). - In the **Plan** tab, place the triggered touchpoint in the diagram. - Move to the **Build** tab, and set the touchpoint's production settings. - In the production window, click **Trigger Webhook**. - In the **Trigger Webhook** window, activate the webhook by clicking **On**. Circle automatically generates the API key and webhook URL Note that if this touchpoint has been duplicated, the triggered webhook settings will not be copied. - Set the webhook type: - **Trigger only:** Triggers the touchpoint as a result of an action in the third-party system. - **Insert & trigger:** Triggers the touchpoint and inserts a new recipient in the data source. - **Update & trigger:** Triggers the touchpoint and updates an existing recipient in the data source. - The JSON body can be automatically created by Circle (**Circle Expected Payload**), or custom created (**Custom Mapping Payload**), in which case you will need to copy the payload from the third-party system, and then match the content objects manually. - The Authorization method in the header can be one of two: API key, Bearer. In addition, you can include the authentication in the query string. by selecting the appropriate checkbox. Note that including the authentication in the query string is not the best practice, however, some major third-party systems may require it. - Copy the webhook parameters (headers, webhook URL and JSON body) and place them in the third-party system. ### SMS Touchpoints # SMS Touchpoints #### SMS touchpoint # SMS touchpoint **Prerequisite:** PersonalEffect 9.7 or higher, and XMPL version 5.1 or higher. Circle provides and easy method of adding SMS (text messaging) to your cross media campaigns. Circle supports two types of SMS touchpoint: - **Mass SMS:** SMSs that are distributed to your recipient list. For example, you may send all recipients an SMS, inviting them to visit their personalized websites.   - **Triggered SMS:** SMSs that are sent in response to an action performed by a recipient. You can define the actions that trigger such SMSs when designing your website. XMPie customers are expected to engage an SMS provider in order to use SMS. XMPie offers tight integration with Vonage SMS provider. However you can use any SMS provider of your choice. You define the touchpoint settings, and then execute it via the Production dialog box. SMS messages are subject to legal regulations. Only transactional SMSs are supported. Transactional messages can be sent to existing recipients with whom the sender already has a relationship, or to those who have explicitly requested receiving such messages. Even though currently in Circle SMS is a one-way communication, the power of SMS goes far beyond simply sending someone a text message. As the Builder, you can continue the customer journey by embedding a personal URL (PURL) in the SMS message. In the PURL (website), all events are tracked, giving you the full benefit of driving the customer journey based on the recipient's interaction with the PURL. Typical use cases for SMS are sending a reminder SMS to those who have already opted in (i.e. a doctor's appointment, conference participation), or invitation RSVPs. Note that SMS is also supported in Campaign on Demand. ## Setting up SMS providers XMPie customers are expected to engage an SMS provider in order to use SMS. XMPie offers tight integration with Vonage SMS provider. However, you can use any SMS provider of your choice. If you choose to engage Vonage, you will need to set up the API keys, given to you by Vonage, which allow integration with the provider. Once your campaign is running, Circle Analytics for your SMS touchpoints will be automatically available. If you've chosen a custom SMS provider, you will need to provide the webhook parameters. In order to view your events in Circle Analytics, you will need to inject the events into Circle. All SMS providers for the Circle account can be accessed from **File > Account >****SMS Provider**. The default SMS provider is indicated by a filled star. This provider will be used by default on any new SMS touchpoint, making your work more efficient by eliminating the need to redefine the provider upon the creation of a new SMS touchpoint. Important points: - If you have a specific SMS provider set up for large brands, it is recommended not to use it as the default provider. - If you have an account with your SMS provider which you share amongst all your brands, it is best to define a single provider. However, if you support multiple large brands, consider having separate SMS accounts per brand. In that way the brand's blacklist is kept separate. To set up an SMS delivery provider: - From the **File** menu, select **Account > ****SMS Provider**. A list of all SMS providers available for the Circle account appears. In this area you can create, update and delete existing SMS providers. - Click the **New SMS Provider** button. - In the **SMS Provider **window, enter the following: - Name of SMS provider. - SMS provider type. Choose **Vonage**, or **Custom** - to integrate with a provider other than Vonage. - If you are using **Vonage**, enter the **API Key** and **API Password**, which have been given to you by the provider, in order to allow Circle to integrate with the SMS provider. - If you choose **Custom**, define the **URL** and parameters (**JSON**) to connect between Circle and the SMS provider. The JSON will vary between the different providers. Only HTTPS URLs are supported. Note that the URL for custom SMS delivery providers is not encrypted so it should not include sensitive information. ## Configuring SMS touchpoints SMS touchpoints are configured in the Production dialog box. Once you've connected to an SMS provider, you can access the Production dialog box directly from the touchpoint in the diagram, or from the library. Important points to consider when configuring SMS touchpoints: - Long SMS messages are split into multiple messages. If the SMS carrier supports consolidation of the messages, then the message will arrive at the recipient's phone as a single message. However, be aware that if the message is split and sent in multiple messages, you will be charged per SMS. Therefore, be attentive to the length of your message. - It is likely that you will include a PURL in your message. If you wish to reduce the number of characters in the PURL, you can do one of the following: - Purchase a short domain and use it as the friendly URL. - Find and use a URL shortening service, which are available on the internet. - Each country and each phone carrier have different capabilities and legislation. For example, - Canada and the US do not support alphanumeric sender ID. You can only send from an identifiable number. - Legislation in France places time limits on promotional SMS messages. It is prohibited to send SMS messages early in the morning or late at night. - Some countries require that the number be a local number. Adherence to these laws is **your responsibility**. Therefore, when you define your SMSs and your recipient list has multiple countries, it is recommended that you have separate SMS touchpoints per country, and filter the recipient list according to county. To configure an SMS touchpoint: - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Click the menu icon at the top right corner, and then select **Mass SMS** or **Triggered SMS**. - Click the **From/To** area to display the **S1 > From/To** dialog box. Notice that the default SMS provider for the current account is displayed at the top right corner of the dialog box. You can change the default provider by clicking the provider's name and selecting a different one from the popup menu. - In the **From Sender** field, enter a dedicated number or an alphanumeric name, which is an alias for a number. - Use a **name** in the following cases: If you want to use one of Vonage's shared numbers. Type in a name, and one of the shared numbers will be used for delivery. - Alphanumeric sender ID is supported in the target country. - The name can only include alphanumeric characters (i.e., a-z/A-Z and 0-9). - Use a **number** if names are not supported, as is the case in Canada and the US, or in case of dedicated numbers of big brands. If you're using Vonage, make sure you also include the country code. Check the requirements when using other providers. A dedicated number is purchased on behalf of the brand, to keep the blacklist separate. Pay attention that the dedicated number applies to the brand. Number format requirements are per SMS provider. Vonage requires that the number format contains only digits. If you try to use a number which contains an alphanumeric character, it will be recognized as a name, and delivery will occur via a shared number. If you use a custom SMS provider, pay attention to the number format expected by the provider. - In the **To Recipient** field, enter a content object or number. The content object should be the mobile phone number in the format expected by the SMS provider. If you're using Vonage, make sure you also include the country code. Check the requirements when using other providers. You can add content objects by doing one of the following: - Manually type the content object between two open and close curly brackets {{Mobile}} - Type two open curly brackets to display the content object list and then select the relevant content object. Make use of the QLingo "CleanNumber" function in uPlan provided in PersonalEffect 9.7, to remove all non-digits and leave digits only. - Click **OK** to return to the **Production** dialog box. Notice that the **From/To** area now shows the values set in the **From/To** dialog box. - In the **Message** area, compose your text message in the text area. You may add content objects. Type two open curly brackets to display the content object list and then select the relevant content object. Pay attention that the number of characters in the SMS message is limited. This number depends on you SMS provider and language. Make sure you are familiar with this value. - For mass SMS only: - From the **List** dropdown, select an existing recipient list or click **Add** to add a new list. **By default, **All Recipients** is selected. To edit an existing list, select it and click **Edit** . - In the **Settings** area, the default SMS provider is selected by default (unless no provider has yet been defined). You can change the default delivery provider by clicking the provider's name and selecting a different one from the popup menu. - In the **Schedule** field, set up scheduling definitions. By default, scheduling is not active. Scheduling becomes active once the project is set to Live. - Click **Save** and then **Close **to exit the **Production** dialog box. The SMS is now available for preview when clicking the node title link in the diagram. ## Testing and sending an SMS touchpoint After you have configured your SMS touchpoint, you can test it. Testing can be performed for both mass and triggered SMS. You can send a test SMS to yourself or to a recipient that is not defined in the list. No tracking is activated when testing. Once you have finished testing, you can proceed to actually sending the SMS. ### Test an SMS touchpoint - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Click **Test**. - From the **List** dropdown list, select the filtered list for which you wish to execute a test. To create a new filtered list, click the **Add** icon .  See Adding a list. - Select a range of recipients. By default the range of 1-5 is selected. Initial testing is usually performed for a few records at a time in order not to waste time on testing the entire list. - In the **Send to** field, enter the phone number of the test recipient. Note that only a single Sent To number is supported. The default number is the telephone specified in the profile of the current user. - Click **Test**. The test is performed. Tracking is not recorded. The last run details are displayed in the **Production** dialog box. Test runs are shown in the Run Center. ### Send SMS - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Click the menu icon at the top right corner, and then select Mass SMS** or **Triggered SMS**. The **Send** dialog box is displayed. - Click **Send**. - In the **List** dropdown list, make sure that the selected list is correct. You can select a different list to run production for a subset of recipients (for example, those recipients that were skipped in the previous run). To create a new filtered list, click the **Add** icon . See Adding a list. - Select a range of recipients. By default **All** is selected. To define a specific range, select the **Range** radio button and enter the range of recipients. Changing the range is useful to send SMSs in batches to avoid website overload. - Click **Send**. The last run details are displayed in the **Production** dialog box. Send runs are shown in the Run Center. ## SMS FAQ Browse through these FAQs to find answers to commonly raised questions regarding SMS touchpoints. #### How can I know what SMS capabilities are available in the countries where my recipients reside? Each country supports different capabilities and has specific restrictions. See more about capabilities and restrictions. #### What should I write in the "From" field when sending an SMS? This depends on the country you want to send your SMS campaign to. Each country has different regulations for the sender. You have all the info regarding the country in this link, but in short here are some guidelines: - For most European countries, the sender can be an alphanumeric value, using a shared number of Vonage. - For the US and Canada, it will depend on the type of campaign. Circle currently doesn’t support promotional messages, so there is no need for short codes just yet. The most common options would be long numbers or toll-free numbers. Example | | Long Number | Toll Free Number | Short Code | | --- | --- | --- | --- | | Format | Standard 10-digit number | Standard 1-800 number | 5-6 digit number | | Throughput | 1-2 message per second | 10-100 messages per second | 10-500 messages per second | | Delivery Quality | Low | High #### What is the required format for the recipient phone number? The required format for the recipient mobile number is dependent on your SMS provider. For Vonage, you should enter the country code and digits only. No plus, dash or spaces are permitted. To help with this, PersonalEffect 9.7 introduced a new function called CleanNumber into uPlan, uCreate Print and uProduce. This function is designed to remove any non-digits from your recipient list mobile phone numbers. #### Do I sign up with XMPie as my SMS provider (similar to XES)? No, XMPie is not the SMS provider. XMPie offers tight integration with Vonage SMS provider. However, you can use any SMS provider of your choice. If you're considering Vonage, please contact your XMPie account manager, who can put you in touch with the right person at Vonage. #### What do I need from my SMS provider? In order to define your SMS provider, if you’re using Vonage you will need the API key and API password. If you are using a custom provider, check with the provider what you’ll need. #### Is XMPie a Vonage reseller? No. XMPie is not reselling the service. You will need to create a Vonage account or use another provider. If you're considering Vonage, contact your XMPie account manager, who can put you in touch with the right person at Vonage. #### Can I configure Circle to work with my SMS provider? Yes. If you already have an account with an SMS provider that has API access that works by posting JSON to their endpoint URL, you should be able to configure Circle to work with them. #### Are messages supported in all languages? Yes. There is full message support in all languages, including European accented characters, Asian CJK characters and right-to-left languages. #### Can I send promotional SMS messages? No. Currently transactional SMS is the only option. A future release will add an option for promotional SMS that will work in a similar way to the commercial email setting. #### How many messages can I send? The SMS feature supports sending up to 100,000 messages in one send. Batching and throttling are handled automatically behind the scenes. #### Can I track SMS events? With this initial release there is no tracking of SMS events, but it will be added in a future release. #### Does the SMS feature allow for SMS replies and unsubscribes? No. ## Watch a video Creating custom SMS providers Working with SMS ### Master List and Data Sources # Master List and Data Sources #### Working with data sources # Working with data sources A data source contains all the recipient data required for your project. Recipient data can be uploaded to reside locally in the system or it can reside remotely in an external database. A Circle project can include multiple data sources. A data source can contain more than one table. A single table, designated the recipient table, contains the primary recipient data. Primary recipient data typically includes personal details, such as first name, last name and email address. The recipient table column headers must match or be mapped to the recipient schema in the plan file. Other tables in the data source can contain supplementary data, for example, details about customer orders and bank details. Primary data from the recipient table can reference the supplementary data to retrieve information. For example, a bank’s branch number in the recipient table can retrieve branch information, such as location and telephone number, from the table containing the supplementary data. Example: Recipient table containing prime recipient data... References the table containing supplementary data **Important!** During a running cross-media campaign, do not replace the recipient table. Replacing it may cause the recipients keys to change. For tracking purposes, the recipient must always live in the recipient table with its original key. ## Supported data sources Circle supports the following remote data sources: - MySQL - Oracle - MS SQL Server - Connection String: Define your own connection string if XMPie does not support your data source type or version. - Counter: Proprietary XMPie data source: This is single-column database used to store sequential numbers with predefined intervals. - Circle supports the following file-based formats: - MS Access (*.mdb and * - MS Excel (*.xls, *. - Text Files (*.txt, *.csv) ## More topics Uploading a file-based data source to the library Connecting to a remote database in the library Working with additional data sources Defining recipient tables Appending recipients to your master list Mapping the data source to the plan file schema #### Uploading a Local Data Source to the Library # Uploading a file-based (local) data source to the library You can upload a file-based data source  to the Circle from the library only after you have uploaded the plan file. To add a local data source: - Open the library. - In the left pane, click **Data Sources**. The **Data Sources** details pane is displayed. - If no data sources have been previously defined, click the **New Recipient Data Source** link. If you have already uploaded data sources, click the **Add** icon and select **New Data Source** from the menu. The **New Data Source** dialog box is displayed. - Select a type from the **Data Source Type** dropdown list. Supported file types include MS Access, MS Excel or .csv files. - Click **Browse**, navigate to the data source you want to upload and click **Open**. The data source name is displayed in the text field. - Click **Save**. The **New Data Source** dialog box closes and you return to the **Data Source** pane in library. - In the **Data Source** pane, from the **Recipient Table** dropdown list, select the table which includes the recipient data. - If your plan defines additional data sources, the **Data Source** details pane displays the **Additional Data Sources** section with the list of data sources defined in the plan. For each data source defined in the plan, select the data source file. See Working with additional data sources. - Click **Save**. The data source is saved to the system. Your recipient list will be now based on this data source. - Adapt the data source for cross media. #### Connecting to a Remote Database to the Library # Connecting to a remote data source from the library Recipient data can reside in a remote database. You can connect to a remote database from the library only after you have uploaded the plan file. When connecting to a remote data source, the builder is responsible for defining the recipient's unique identifier a well as defining the insert expression in the plan file. For details, see the uPlan documentation. To connect to a remote data source: - Open the library. - In the left pane, click **Data Sources**. The **Data Sources** details pane is displayed. - If no data sources have been previously defined, click the **New Recipient Data Source** link. If you have already uploaded a data source, click the **Add** icon and select **New Data Source** from the menu. The **New Data Source** dialog box is displayed. - Select a type from the **Data Source Type** dropdown list. Supported database types include MS SQL Server, MySQL and Oracle. - Fill in the data source type details. The fields can vary according to the selected data source. For example, selecting an MS SQL database displays the following fields: - **Data source Name**: The new data source's logical name - **Server**: The server's logical name or IP address - **Database**: The database name - **User**: The name of the user connecting to the database - **Password**: The password to connect to the database Clicking **Test** allows you to confirm that the connection with the remote database was successful. - Click **Save**. The **New Data Source** dialog box closes and you return to the **Data Sources** pane in the library. - In the **Data Sources** pane, from the **Recipient Table** dropdown list, select the table which includes the recipient data. Learn more - If there is no table in the data source which matches the recipient schema in the plan file, the system prompts you to add a table. Click **Add Table**. The **Recipient Data Source: Add Recipient Tables**dialog box is displayed. - Search for a recipient table and click**Add**. See Adding recipient tables. - If the selected table does not match the schema, the system prompts you to map the data source column headers to the plan. - Click **Map to Plan**. See Mapping the data source to the plan file schema. - If your plan defines additional data sources, the **Data Source** details pane displays the **Additional Data Sources** section with the list of data sources defined in the plan. For each data source defined in the plan, select the data source file. See Working with additional data sources. - Click **Save**. #### Uploading a Local Data source and Plan File # Uploading a local data source and plan file When you choose to upload both the data source and the plan file, the system automatically generates a plan file that includes the content objects derived from the column headers of the specified data source. In the automatic plan file, all content objects default to text content objects. You can modify the content object type as well as add and remove content objects by manually modifying or replacing the plan file. For details on how to modify, add and remove content objects, see the uPlan and uCreate documentation. The XMPieRecipientKey is the recipient's unique identifier and is used to identify the recipients for various uses. For example,  it can be used in links in a printed postcard or email that refer the recipient to a website. It is also used to identify the recipient in analytics, and when exporting data out of the system. To upload the local data source and plan file: - Open the library. - In the left pane, click **Data Source**. The **Data Source** details pane is displayed. - In the **Data Source** details pane, click the **Add ** icon. - Select **New DS and Plan (easy start)** from the menu. The **New Data Source** dialog box is displayed. - From the **Data Source Type** dropdown list, select the data source. - Click **Choose File**, navigate to the file and click **Open**. - Click **Save**. The **Get Started: Identify Recipients** dialog box prompts you to identify the recipients. - From the **Recipient Table** dropdown list, select the table that contains the records of the recipients you want to target. - To define the **XMPieRecipientKey Logic**, select one of the following: - **Use an auto-generated secure ID** (PersonalEffect 9.3 or above): selecting this option generates a unique, non-guessable and secure Recipient ID (for example, 5adcf67b419a4ad796da4458d25a038e). - **Select 1 Field**: select the column header that uniquely represents the recipient. For example, an email address or a membership number uniquely represents each recipient. - **Select 2 Fields**: select the column headers that represent the recipient, for example FirstName and LastName. The system checks that the XMPieRecipientKey uniquely identifies the recipient. If the XMPieRecipientKey is identical to more than one recipient, the system appends digits to the value to ensure it is unique. For example, if there is more than one Joe Smith, the second Joe Smith appears, for example, as Joe.Smith001. - Click **Next**. The system automatically creates the plan file based on your selected recipient table and XMPieRecipientKey and replaces both the data source and the plan file. ## Exporting the data source from the library You can export a copy of the current local data source. Only a local data source can be exported. To export the data source: - Open the library. - In the left pane, click **Data Source**. The **Data Source** details pane is displayed. - Click the **Edit** icon. - Select **Download Data Source** from the menu. - In the **Export Local Data Source** dialog box, select the file type you want to export and click **Export**. - Navigate to where you want to save the file and click **Save**. #### Working with Additional Data Sources # Working with additional data sources If your plan contains additional data sources in the schema, these data sources are displayed in the **Data Source** details pane in Circle. You are then able to select a data source file for each data source in the plan. Note that using the data source ID helps you find the relevant data source when searching for it on the uProduce server. ## Define an additional data source - In the library, in the **Data Source** pane > **Additional Data Sources** section, click the **Add ** icon next to the data source name defined in the plan. You can also use the recipient data source as an additional data source. - Select **New Data Source** from the menu. The **New Data Source** dialog box is displayed. - From the **Data Source Type** dropdown list, select the data source type. - Click **Choose File**, navigate to the file and click **Open**. You return to the to the **Data Source** pane in library. - Click **Save**. The data source is saved to the system. ## Download an additional local data source The download option is only available for local data sources. - In the library, in the **Data Source** pane, click the **Edit** icon. - Select **Download Data Source** from the menu. - In the **Export Local Data Source** dialog box, select the file type you want to export and click **Export**. - Navigate to where you want to save the file and click **Save**. ## View details about an additional remote data source The **Tools** option allowing to view data source details is only available for remote data sources. - In the library, in the **Data Source** pane, click the **Edit ** icon. - Select **Tools** from the menu. The **Data Source** details dialog box is displayed. You can see there the data source server, database and user details. ## More topics Uploading a file-based data source to the library Connecting to a remote database in the library Replacing the local data source and plan file #### Adding Recipient Tables # Adding recipient tables If you are uploading a data source containing multiple recipient tables, you need to specify which recipient table you want the system to use.  The following procedure describes how to add a recipient table if you do not find the required table in the **Recipient Table** dropdown list. To add recipient tables: - Open the library. - In the left pane, click **Data Source**. The **Data Source** details pane is displayed. - Click the **Edit** icon. - Select **Tools** from the menu. The **Data Source Management** dialog box is displayed. - In the **Recipient Tables** area, click **Add Tables**. - Do one of the following: - Manual Search: Click the **Table name** dropdown list and type the name of the recipient table you want to upload. - Click the **+ Add another table** link and type the name of an additional recipient table you want to upload. - Continue the process until you have added all the tables you want to include. - Auto Search: - Click the **Run auto search link** to search for recipient tables. When the search is complete, a list of all the compatible tables is displayed. By default, all the tables are selected. - Deselect any tables you do not want to use. - Click **Add**. The **Records** column displays the number of records in each table. See Appending recipients to your master list. The **Match to Plan** column indicates if the data source column headers are matched to the plan file schema. indicates that the column headers are matched. indicates that the column headers are not matched. See Mapping the data source to the plan file schema The **Actions** column allows you to remove the table from the list of Recipient tables. The table is removed only from the list. The data is not deleted. #### Appending Recipients to your Master List # Appending recipients to your master list While a campaign is running, you may want to add recipients to it. More specifically, you may want to inject recipients into your master list so that they can be part of the campaign. The list which you wish to inject may can contain only the **new** recipients, or **all** recipients (new and existing). **Important!** During a running cross-media campaign, **do not** replace the recipient table. Replacing it may cause the recipients keys to change. For tracking purposes, the recipient must always exist in the recipient table with its original key. To append recipients to the master list: - Open the library. - On the left pane, click **Master List**. The **Master List** details pane is displayed. - Click next the recipient list data source, and from the menu choose **Append Recipients**. The **Add Recipients** dialog box opens. - Upload the new file. - Click **Next**. - In the **Select Add Method** area, do one of the following: - Select **Add all records**: Choose this option if your file includes only new recipients. All records are appended to the master list. - Select **Add new records only**: Choose this option if your file includes both new and existing records. Indicate how to identify the existing records by choosing the relevant field in the **Primary key** dropdown. Only the records that are not in the existing master list are appended. To prevent duplicate records, you select a column as the primary key. The PrimaryKey column uniquely identifies the recipient. Typically the Note that you can check your choice before modifying the database by clicking the **Run****Preflight before execution** checkbox. The system then informs you how many records will be added, and which records will be skipped because of assumed duplicates.  - Click **Next**. If the uploaded recipient table column headers do not match the column headers in the original recipient table, you will have to map the fields in the uploaded table to the fields in the original table. If necessary, use the dropdown lists to map the column headers of the newly uploaded recipient records to the column headers of the original recipient table. - Click **Next**. The **Add Recipients: Preflight Results** window displays the number of recipients that will be added. - Click **Finish**. The **Records** column displays the number of recipient records in the current recipient table. #### Mapping the Data Source to the Plan File Schema # Mapping the data source to the plan file schema In the **Data Source Management** window in the **Recipient tables** area, check if the **Match to Plan** column displays the error icon. The error icon indicates that there is a mismatch between the data source column headers and the plan file recipient schema. To resolve the mismatch, you need to map the column headers to the schema. To map the data source to the plan file schema: - Open the library. - In the left pane, click**Data Source**. The **Data Source** details pane is displayed. - Click the **Edit** icon. - Select **Tools** from the menu. The **Data Source Management** dialog box is displayed. - In the **Match to Plan** column, click **Map** in the row of the table whose column headers you want to map. The **Edit Mapping** dialog box is displayed. - From the dropdown lists displaying **Unmatched**, select the column header you want to map to the plan file schema field. For example, you can map a recipient table column header **FN** to a plan file schema field **FirstName** to resolve the mismatch. - Click **Save**. Mapping errors are now resolved. - Click **Close**. You return to the **Data Source** pane. - Click **Save** to save the data source definition. #### Adapting the Data Source for Cross Media # Adapting the data source for cross media In order for a cross-media campaign to function as a unique journey per recipient, each recipient in the data source must have a unique identifier. Having a unique identifier is a prerequisite for tracking a user's journey throughout the cross-media campaign. Tracking enables you to see which emails were opened, what pages were visited, and which links were clicked. The campaign can then respond accordingly, for example by sending email reminders to recipients who did not respond to the first email. On selecting a local data source or uploading a data source, the system prompts you to define a recipient key, either by selecting a field from the data source, or generating an ID. If your data already has an identifier, such as a CRM ID, click the** database field** option to open the adapt wizard where you can select it from the database. This is described below. For PersonalEffect version 9.3 and above only: If your data does not have an identifier, use the **auto-generated secure ID** option, which generates a unique, non-guessable and secure Recipient ID (for example, 5adcf67b419a4ad796da4458d25a038e). The system adapts the plan (e.g., defines the insert expression, makes a primary field and creates write content objects) and adapts the recipient table (e.g., adds the **XMPieRecipientKey** column and generates a key for any recipient which does not already have one). If you wish to comply with GDPR regulations, make sure to use a non-PII recipient key, either by choosing an existing non-PII field in the database or using the **auto-generated secure ID** option. To select a database field as the recipient key: - On uploading a local data source, in the Master List page, click the **database field** option. The following window is displayed. - Click inside the text box and then select a recipient key from the list. - Click **Finish**. - Click **Close** to return to the library. - Click **Save**. ### Touchpoint Production # Touchpoint Production #### Running Production # Producing batch print, mass SMS and email Once you have configured the touchpoints, the next step is usually testing and then performing the actual production. Testing a print, email or SMS touchpoint allows you to make sure that the touchpoint is defined correctly before its final execution. Testing allows you to preview all output variations (different print formats or different email viewers) and send the test results for client approval. You can choose between one of two different production methods: - **Manual**: The process is triggered by a user at a click of the button. - **Scheduled**: The process is triggered according to the scheduling parameters you define. See Scheduled production. ## Testing and processing the touchpoint - Print - Email - SMS ## Monitoring production Viewing the Last Run Production Notifications Monitoring Production ## More topics Scheduled Production #### Testing and processing a print touchpoint # Testing and processing a print touchpoint After you have created and uploaded the documents to your touchpoint, defined the list and the settings, you can now test your print touchpoint. Testing is useful to check your output before the actual production. It allows you to override the output format settings in order to be able to visually check the output for the formats that cannot be viewed online. You can also test without passing the output to the hotfolder and without tracking events. Once you have finished testing, you can choose to manually execute the touchpoint production or schedule its execution. ## Test a print touchpoint - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Click **Test**. The **Test** dialog box is displayed. - From the **List** dropdown list, select the filtered list for which you wish to execute a test. To create a new filtered list, click the **Add** icon. See Adding a list. - Select a range of recipients. By default the range of 1-10 is selected. Initial testing is usually performed for a few records at a time in order not to waste time on producing the entire list. -  (Optional). Check the **Print output as PDF** checkbox if you wish to override the output format defined in **Settings** (see Setting print format). This is useful to visually check the output since some formats (for example, VIPP) cannot be viewed online. - (Optional). Check the **Don't copy to destinations** checkbox to override the destination settings. This is useful to avoid copying output to hot folders and possibly triggering post production processes. Checking this checkbox sets the **Copy Output To** settings to **No Copying** and unchecks the **Copy to** checkbox for the JDF settings (see Setting up an output destination). - Click **Test**. The test is performed. The priority of testing is always **Immediate** to make sure you do not wait long for your test results. Tracking is never recorded and no notifications are sent while testing. - The last run details are displayed in the **Last Run** area at the top of the  **Production** dialog box. Test runs can be toggled to be shown or hidden in the Run Center. ## Manually process a print touchpoint - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Click **Process**. The **Process** dialog box is displayed. - In the **List** dropdown list, make sure that the selected list is correct. You can select a different list to run production for a subset of recipients (for example, those recipients that were skipped in the previous run). To create a new filtered list, click the **Add** icon . See Adding a List. - Select a range of recipients. By default **All** is selected. To define a specific range, select the **Range** radio button and enter the range of recipients (e.g. 1-5).     - From the **Priority** dropdown list, select the priority for the current print run. Priority impacts the order of the run in the waiting queue. It may also be used to interrupt runs that are already in progress s in favor of a rush-job. The default is **Normal**. Choose between four priority options: **Immediate:** submit a "rush job". The run will be processed immediately. If all production instances are busy, one of the runs in progress will be paused in favor of processing the "Immediate" run. If all instances are currently handling "Immediate" runs, the run will be placed at the top of the waiting queue until one of the instances becomes available. - **High:** submit the run with a high priority. The run will be placed at the top area of the waiting queue. - **Normal:** submit the run with a normal priority. The run is queued with other normal runs in the waiting queue. - **Low:** submit the run with a low priority. The run will be submitted to the lowest level of the waiting queue. - Click **Process**. Clicking **Process** closes the **Process** dialog box and executes production. The last run details are displayed in the **Production** dialog box. ## More topics Viewing the Last Run Monitoring Production #### Testing and Sending an Email # Testing and sending an email After you have configured your email touchpoint, you can test it.  Testing can be performed for both mass and triggered email. Testing is useful to preview the email content in different email clients. You can send a test email to yourself or to a recipient that is not defined in the list. No tracking is activated when testing. Once you have finished testing, you can proceed to actually sending the email. ## Test an email touchpoint - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Click **Test**. The **Test** dialog box is displayed. - From the **List** dropdown list, select the filtered list for which you wish to execute a test. To create a new filtered list, click the **Add** icon . See Adding a list. - Select a range of recipients. By default the range of 1-10 is selected. Initial testing is usually performed for a few records at a time in order not to waste time on testing the entire list. - In the **Send to** field, enter the email addresses of the test email recipients. It is recommended to send test email to a range of email viewers (for example, Gmail, Yahoo mail, Microsoft Outlook) since email content may look different in each one of them. - Click **Test**. The test is performed. Tracking is never recorded and no notifications are sent while testing. The last run details are displayed in the **Production** dialog box. Test runs are shown in the Run Center. ## Send mass email - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Click **Send**. The **Send** dialog box is displayed. - In the **List** dropdown list, make sure that the selected list is correct. You can select a different list to run production for a subset of recipients (for example, those recipients that were skipped in the previous run). To create a new filtered list, click the **Add** icon . See Adding a list. - Select a range of recipients. By default **All** is selected. To define a specific range, select the **Range** radio button and enter the range of recipients. Changing the range is useful to send email in batches to avoid website overload.    - Click **Send**. The last run details are displayed in the **Production** dialog box. ## More topics Viewing the Last Run #### Viewing the Last Run # Viewing the last run The Last Run section of the **Production** dialog box displays the details of the last production task: Test, Process or Send. The icon indicates the touchpoint production status:  Indicates that the touchpoint was successfully processed. Indicates that the touchpoint was processed successfully, albeit with warnings.           Indicates that the touchpoint was not processed because there were zero recipients.  Indicates that the touchpoint: - Completed but includes errors - Timed out - Failed - Aborted Clicking the **More** icon  opens the Run Center where previous and current runs are listed. In the Run Center, you can download the print output file and view alerts. The test runs will be shown in the Run Center if the **Show Test** checkbox is selected. See Run Center information for more information. Clicking the **Alerts** link displays errors and warning related to the current run in the new browser tab. See View alerts. #### Scheduled Production # Scheduled production Circle allows you to set a schedule for processing print, email and SMS touchpoints. For example, for email touchpoints, you can schedule the email to be sent later, which is great for automatically sending email when you are not in the office (overnight, public holidays, etc.). For print touchpoints, you may use scheduling to plan your production workflow in advance, to organize your jobs efficiently and to maximize equipment use. When activated, your scheduling settings signal the system when to begin production for the selected touchpoint. You can schedule the process to run only once at a specified time or to recur on an hourly, daily, weekly or monthly basis. For example, while in draft mode, you can schedule the process to begin at midnight on a specific date. In live mode, the production process waits for its scheduled date and time to be triggered. Scheduling is not triggered while the project is in draft mode. It is only activated if once the project is set to live. This mechanism allows you to activate scheduling only once you have completed configuring your scheduling parameters. Setting the project to live indicates to Circle that the relevant touchpoint can now be queued to await its scheduled date and time. ## Set up a schedule - In the **Build** tab, make sure the project is set to draft. To do so, use the dropdown to the right of the project name, once the project is connected. - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box. - Hover over **Schedule** and then click the arrow. The **Production >******Scheduling**** dialog box is displayed. - In the **Scheduling** section, click **On** to display scheduling options. - In the **Start Date** field, click the **Calendar** icon and select the date on which you want production to begin. - In the **Start Time** fields, type the hour and minute at which you want production to begin. - If necessary, select a time zone from the dropdown list. The selected time zone qualifies the selected **Start Date** and **Start Time**. - In the **Recurrence** section, do the following: - Select **Hourly**, **Daily**, **Weekly** or **Monthly** - Select the hours, days and dates relevant to your selection - Select **By Date** and specify the date to stop. The default option **Never** means that the production continues according to the times and dates you specified without end. For example: - Click **OK**. The scheduling settings you specified are displayed in the Production dialog box. - Click **Save** to save the scheduling settings. ## Set up parameterized scheduling **Note:** This feature is only available if you have Circle Business Edition and PersonalEffect version 8.0 or above. Parameterized scheduling allows you to define automation in a flexible way using project parameters. You can schedule in relation to customizable parameters, such as wedding date. For example, send the reminder email on the wedding date. You can schedule touchpoints to run as soon as the project is set to Live (using the Project Start Date & Time parameter). The power of parameterized scheduling is enhanced by scheduling your drip campaigns in relation to parameters. For example: - Send the email 5 days after the project start (Project Start Date + 5 days). - Send the invitation email 21 days before the Wedding Date (Wedding Date – 21 days). - Send the initial email on project start or next day at 8:00 (Project Start Date or next day at 8:00). The third example shows that parameter dates can be used together with fixed times to achieve higher email response rates. In this scenario, it is recommended that you use the “or next day” modifier to ensure that the touchpoint is triggered. The system attempts to trigger on the start date and fixed time, but if the if the time has already passed, the system will trigger the touchpoint the next day.   Parameterized scheduling is extremely useful in the template-Instance scenario because instances are typically executed at different dates. It makes sense to avoid using fixed dates and to define scheduling using parameters instead. ### Use parameterized scheduling - Set up scheduling using parameters: - In the Print/Email/SMS touchpoint, set scheduling to **On**. - In the Scheduling page **Start Date** field, click the **Edit** button. - Select the **Parameter Date** option. The **Parameter Date** dialog box opens. - Select a value (e.g., Project Start Date) from the** Parameter **dropdown.   - Optionally, select a modifier. For the +/- days modifier, specify the number of days. - Click **OK**. The **Start Date** field in the Scheduling page displays the selection. - Complete the definition and save the touchpoint. - Set up project parameters: - In the **Library**, select the **Project Parameters** option, - Customize the parameter names and set values. - Clear the **Project Start Date & Time** parameter. - Click **Save**. - Set the project to **Live**. Automation runs using the project parameters. ## Activate scheduling When your project is connected to uProduce, you can work in two modes: - **Draft**: set your project to the **Draft** mode while you are defining production and scheduling parameters. Working in this mode ensures that no unintentional scheduling occurs. - **Live**: when all scheduling settings are ready and you wish to go live, switch to the **Live** mode. In this mode, the scheduled actions will be executed according to the specified settings. When a project is set to **Live**, it is automatically locked for change. If you wish to modify your live project, you can perform one of the following actions: - Switch from the **Live** mode to **Draft** - Save your project as a new project. **Note:** Although a project is locked once it is set to Live, some changes are still allowed. For example, it is possible to replace the document content via the Circle user interface, to change assets and fonts. ## Watch a video Circle parameterized scheduling #### Production Notifications # Production notifications Email notifications are sent to users notifying them when print, email or SMS production succeeds or fails. These notifications are sent for manual or scheduled batch print production and mass email or SMS. Notifications are **not** sent for triggered email and PDF On Demand. By using the Notification feature, you can improve efficiency and throughput of your business by letting the right people know the production status as soon as it occurs. By default, all the project's Administrators and Builders are notified, but any person can opt out of receiving the email by unsubscribing directly from the email notification. Other users who are authorized to the project can be added to the **Notification** list (by a Builder or an Administrator). It is a good idea to include the print operator in the notifications to enable quick reaction to production failures. Make sure the relevant print operator has been invited and is authorized to the project. Each **Notification** list relates to the scenario under which the notification will be sent: - **On Production failure** (this relates both to print, email and SMS production failure) - **On successful Print production** (this relates to batch print touchpoints which can be schedule or executed manually by pressing the Process button in a print touchpoint) - **On successful Email/SMS production** (this relates to mass email/SMS touchpoints which can be scheduled or executed manually by pressing the Send button in an Email/SMS touchpoint. To configure a notification: - In the relevant project, open the **File** menu and click **Notifications**. - In the **On Production Failure (Print/Email/SMS)** section, select recipients who will receive an email when print/email/SMS production fails.   - In the **On Successful Print Production** section, select recipients who will receive an email when print production succeeds.   - In the **On Successful Email/SMS Production** section, select recipients who will receive an email when email/SMS production succeeds. ## More topics Monitoring production #### Monitoring Production # Monitoring production Circle allows you to monitor your production using the following tools: - **Run Center:** displays the status of batch print operations and mass email and SMS. - **Alerts:** displays the errors, warning and information messages for all forms of execution: manual, scheduled, on demand and triggered. ## Monitor with the Run Center The Run Center is your tool for monitoring production of print, email and SMS touchpoints. In the Run Center, you have a consolidated view of all the runs initiated in Circle. Each run represents some form of production (manual or scheduled). A run is a production action triggered by the user or by a scheduled event. In the Run Center, you can have an overall view of all runs initiated in Circle. In the Run Center you can: - View runs for the current project or for the entire account - See the date and time of the run - See the project and the touchpoint of the run - Quickly open the specific touchpoint and project to view and resolve issues (for example, failed execution) - See if the run was scheduled or manually executed - See if the run completed successfully or failed - View alerts - Download the print output You can access the Run Center in one of the following ways: - From the **File** menu select **Account >****Run Center**. - In the diagram, click the **Production** icon above the touchpoint to open the **Production** dialog box, and then click at the top right of the window. When using this access option, the Run Center is filtered to show the touchpoint for which the last run occurred. - Click **Run Center** button in the **Build** tab's toolbar. - Click the link in the email notification. In addition to being displayed in the Run Center, the information about the completion of each run is sent in a form of an email notification to a predefined list of users, such as printer operators and XMPie operators. See Production notifications. ## Run Center information The Run Center provides information on manual and scheduled print, email and SMS runs. For each run, the following information is displayed: | Field | Description | | --- | --- | | Triggered Time | The time a run occurred. | | Touchpoint | The touchpoint for which an action was triggered. This column contains the touchpoint name. The touchpoint name is a link. Clicking this link closes the Run Center window and opens the relevant project. If a touchpoint was deleted, it is no longer visible in the Run Center window. If a touchpoint was renamed, the new name is displayed after refreshing the Run Center. Note: The last saved scheduling definition is shown. This is important if scheduling definitions were modified since the action was first scheduled. | | Project | The name of the project. Only runs of active projects are visible. Archived or deleted projects are not included. If a project was renamed, the new name is displayed. | | Circle User | For manual production: the name of the Circle user who performed the manual production. For scheduled production: the name of the Circle user who switched the project to Live. | | Trigger Type | The following trigger types are available: Test: indicates a test run for a print, email or SMS touchpoint Process: manual production for a print touchpoint Send: manual production for an email or SMS touchpoint Scheduled: scheduled production for a print, an email or an SMS touchpoint | | Status | The following icons indicate the status of the run: Triggered/Waiting/In progress Completed Successfully Completed with Warning 0 Recipients (no recipients satisfied the criteria) Completed with errors/Timed out/Failed/Aborted In the case of an action with multiple jobs, the status icons reflect the status of the worst case. Status Links: Alerts: Clicking the Alerts link displays errors, warnings or important information about the run. For example, if the run failed, clicking this link displays the reason for the failure. Output: For print touchpoints only. Clicking this link downloads the output. | | Job ID | Clicking the Job ID link opens the uProduce Job Center and highlights the job associated with the current run. The detailed information about the run is available in the details section of the Job Center. | ## Run Center filtering options The information in the Run Center can be filtered to display the most relevant information for you at that moment. For example, you can see the runs at the account or project level or you can choose to show or hide test runs or include runs which resolve to an empty list of recipients. You can also show the date and time of the runs according to the selected time zone.   The Run Center displays the fields described in the following table. | Field | Description | | --- | --- | | This Account / This Project | Toggles betweenThis AccountandThis Project. If This Accountis active, all the runs at the account level are displayed. Note that only runs for projects for which you have access permissions are displayed. If This Projectis active, only runs for the current project are displayed. When this options is selected, the Touchpoints dropdown list is enabled and includes all the touchpoints in the current project. | | Show 0 Recipients | Selecting this checkbox displays runs where the list of recipients is empty (the list resolved to zero recipients). This is likely to occur when your list includes some filter, for example, all recipients who registered yesterday. If execution is scheduled to run daily, often the list will be empty. It is useful to be able to exclude such runs from the Run Center so that they do not clutter your view. If this checkbox is selected, runs with zero recipients are displayed in the list. By default, this option remains unselected to avoid overloading the list with runs with an empty recipient list. | | Show Test | Selecting this checkbox shows the test runs for print, email and SMS touchpoints. | | Time Zone | The displayed time zone in this field affects the date and time displayed in the Triggered Time column. It is useful when touchpoints are scheduled in a different time zone. By changing to that time zone, you can more easily find the scheduled runs. | The following runs are not displayed in the Run Center: - Runs initiated from uProduce - Runs of archived/deleted projects ## View alerts Alerts are your tool for finding out more information when issues are encountered during execution. Warning and error messages are displayed and are helpful when attempting to understand what went wrong. The status information for batch print production, mass email and SMS is displayed in the Run Center. ### Alerts for batch print, mass email and SMS - In the Run Center, click the **Alerts** link in the **Status** column. ### Alerts for triggered email and PDF on demand - In the **Production** dialog box, click the **Menu** icon and select **Alerts**. Alerts are displayed in a new browser tab. ### Alerts for web touchpoints - In the **Production** dialog box, click the **Menu** icon and select **Website****Alerts**. Or - In the **Website** details pane in the library, click the **Menu** icon and select **Website****Alerts**. Alerts are displayed in a new browser tab. ### Alerts for proof sets - In the **Plan File** details pane, in the proof set status row, click **Alerts**. Alerts are displayed in a new browser tab. ### Project Templates and Instances # Project Templates and Instances #### About templates and instances # About templates and instances **Note:** This feature is only available if you have Circle Business Edition and PersonalEffect version 9.0.1 or above. In addition, you need to be an administrator or power user with builder authorizations. A **template** is a model project which is intended for duplication. Using templates, you can create off-the-shelf projects which are ready for duplication and fast implementation. When duplicating a template, the resultant project is called an **instance**. Each instance is a fully-functional independent project that can be fine-tuned for the specific customer needs. Using templates and instances, you invest once in creating the template and enjoy the benefits of that investment every time you create an instance based on that template. This allows you to speed up your delivery time, maintain a high level of quality, and achieve a higher return on investment. Automation never runs in the template because the template is a model. Automation runs in the instance when the instance is live. In addition, the website is defined in the template and is shared with all its instances. uStore, XMPie’s e-commerce solution, uses templates and instances to provide campaigns on demand. For information about setting up cross-media products in uStore, see uStore help. ## Work with templates and instances A template is a project which is used as a model for duplication when creating a new instance. Each instance is a fully-functional independent project that can be fine-tuned for a specific customer’s needs. Using templates, you can create reusable projects which are ready for duplication and fast implementation as an instance. When duplicating a template, all components are copied to the instance excluding the following: - Website: The website is shared by the template and all its instances. All website changes are made on the template and affect all instances of that template. - Unused data sources: Any data source which is not used in the master list is considered and unused data source. Therefore, it is not copied to the instance. - Comments: The comments sent by users while developing the template are not likely to be relevant for the instance. Therefore, they are not copied to the instance. Every instance is created in the same uProduce account as its template. This ensures that the template’s email delivery provider is available to the instances and that the email settings of all instances match the template. You can modify a template or an instance in the same way that you modify a regular project. When you make changes to a template, any new instance created from the template includes the changes. Existing instances are not affected by the changes except for their web touchpoints (because the website is shared). There is a limitation that the template’s friendly URL is the same for all instances and no changes can be made to the friendly URL once instances exist.   **Important:** - A general URL (i.e., a GURL is a non-personalized URL), which is typically used for a self-registration page, is currently not supported in templates and instances. - Since the template’s master list data source is copied to the instance, its data should never include private recipient information. It should include sample data which can be copied without violating recipient privacy. ### Create a template - Create a new project and save it. - From the **File** menu, select **Open/Organize**. - In the **My Projects** tab, hover over the required project, click the menu icon and select **Set as Template**. Only an active project can be set as a template, a sketch project cannot. - In the **Set as Template** dialog box, click **Yes, set as template**. The project is now a template. ### Create an instance - From the **File** menu, select **Open/Organize**. - In the **My Projects** tab, make sure the filter shows **Templates**. - Hover over the template row and click the **Instances** link to open the **Instances** tab. - Click the **New Instance** button. The **New Instance** dialog box opens. - In the **New Instance** dialog box, type a unique instance ID. This ID identifies the instance and is also displayed in the web URLs of this instance. - Enter a name in the **Instance Name** field. - Click the **New Instance** button. The new instance is created. ## Manage instances of a template All instances of a specific template can be managed from the **Instances** tab. - In the Instances tab, you can: - View all instances of a specific template. - Open the template or any of its instances. - Create a new instance. - Delete, rename and archive an instance. - Filter and search for a specific instance. ### Open the Instance tab - From the **File** menu, select **Open/Organize**. - In the **My Projects** tab, hover over a template row. - Click the **Instances** link. The **Instances** tab opens. The **Instances** tab remains open until you choose to close it or until you open the Instances tab of another template. ## Set up automation in templates and instances Templates can include automation. However, automation never runs in the template because the template is a model. Automation runs in the instance when the instance is live. If you wish to test the template’s automation, you must test it in an instance of the template. Because instances are typically executed at different dates, it makes sense to avoid using fixed dates. Instead, you can set up the template using **parameterized scheduling** as opposed to **fixed scheduling**. Parameterized scheduling is achieved by using project parameters in the touchpoint scheduling and setting specific values in the project parameters of the instance before changing it to Live. To schedule a touchpoint to run at the first opportunity (as soon as possible), use the Project Start Date & Time parameter. All touchpoints scheduled to run on Project Start Date and Project Start Time are triggered as soon as the instance is set to Live. ### Test template automation - Create an instance of the template for your testing. - In the instance, set values for the project parameters and then set the instance to live. The automation runs on the instance. - Any fixes or changes should be done on the template. In this case, delete the test instance and then repeat this procedure. ## Work with the template’s shared website When creating an instance from a template, all components are copied to the instance excluding the website. The website is defined in the template and is shared with all its instances. All website changes must be made on the template. Changes affect the instances as follows: - Changes to website pages affect all instances (new and existing instances) that reference those pages. - Changes to the website’s friendly URL work in new instance but will break existing instances. - Changes to web touchpoints (adding, deleting, and changing definitions) only affect new instances. The template and all its instances share the website. They all access the same web pages and use the same website friendly URL. The instance ID differentiates which instance is accessing the website and therefore the Instance ID is included in the web URLs as follows: - http://www.MyDomain.com/MyFolder/Landing.html?iid={{XMPieInstanceID}}&rid={{XMPieRecipientKey}} - http://www.MyDomain.com/{{XMPieInstanceID}}/{{XMPieRecipientKey}} - http://{{XMPieRecipientKey}}.{{XMPieInstanceID}}.MyDomain.com **Best practice:** While testing, before making changes to the template website and friendly URL, it is best to delete existing instances because changes can corrupt existing instances. #### Templates and instances FAQ # Templates and instances FAQ #### What type of project is suitable for being a template? A project which is suitable for multiple customers with some customization per customer is most suitable for being a template. For example, if one brand wants to run the same project for its branches where each branch has a different recipient list. In addition, a project which is intended for uStore as a campaign on demand must be defined as a template. #### How do I create a template? To create a template, first create and save a regular project. Next, converted the project to a template using the Set as Template option in the Open/Organize tab. #### What is the instance ID? The instance ID is the unique identifier which differentiates instances of the same template one from the other. The instance ID is typically appended onto the project name and is visible in the Open/Organize tab for when choosing between instances. You can also find an instance by searching for its instance ID. The instance ID is also used in the web URLs for identifying the instance in the template’s shared website.  The instance ID can be changed in the Project Parameter page of the library. #### How can I get the Instance ID value into a content object? To create a content object that returns the Instance ID value, use the **GetEnv > Instance ID** function in uPlan or uCreate Print. This content object can be particularly useful for creating URLs and barcodes. For example, to create a URL to a specific webpage using the Instance ID content object, e.g. {{GetEnvInstanceID}}, the URL format should be: - http://www.MyDomain.com/{{GetEnvInstanceID}}/{{XMPieRecipientKey}} - http://www.MyDomain.com/MyFolder/Landing.html?iid={{GetEnvInstanceID}}&rid={{XMPieRecipientKey}} #### What is the impact of making changes in a template? Changes in a template impact only new instances created from that template after the changes were made and saved. The changes are not propagated to existing instances. However, since the template’s website is shared by all its instances, changes to the website and the friendly URL break existing instances. #### Why can’t I change a template if it has instances? Template changes are prevented if the template has a website and existing instances. Since the website is shared by all instances of a template, changing the website or its friendly URL will corrupt existing instances. You can force the system to save the template changes. If you choose to force the save, existing instances will be corrupt (even though they look fine). Therefore, it is highly recommended to delete the existing instances before saving such changes. #### Why doesn’t scheduling and automation run in the template? A template is a model project which is intended for duplication. Automation does not run in the model. Automation runs in the instance when the instance is set to Live. #### How can I test automation of the template? To test automation of a template, create an instance based on the template and set the instance to Live. Test the automation in the instance. Since the template is a model for duplication and not a running project, it can never be set to Live and automation can never run in the template. #### Why should I set the template to Ready? Ready mode locks the template and prevents changes. Ready mode indicates that the template is ready for use and that new instances can be created based on the template. If you want to make changes to a template, you must change it from Ready to Draft mode. #### What is a hidden instance? A limited instance is created when a campaign on demand product is previewed in uStore. Such instances are hidden in Circle because they represent orders that are not yet checked out in uStore. They are not displayed in the list of instances unless Hidden is selected in the filter. Hidden instances have limited functionality (i.e., no tracking, automation, triggered emails, mass email, and batch print production). #### Email footer settings The email footer of the instance uses the same settings as those of the template. Every instance is created in the same uProduce Account as its template. This ensures that template’s email delivery provider is available to the instances and that the email settings of all instances match the template. #### Duplicating a Project # Duplicating a project **Note:** Only administrators and power-builders can duplicate projects. Power-planners can only duplicate the diagram. Circle allows you to duplicate an existing project, template or flow pattern. Instances cannot be duplicated. Duplicating a project can be useful in the following cases: - To rapidly copy a project and customize its content for a different customer. - To keep a backup of the original project. - To reuse successful projects quickly and easily, and thus increase ROI. Note that when duplicating a project, comments are not copied to the new project. To duplicate a project: - From the **File** menu, select **Open/Organize**. - In the **My Projects** tab, hover over the project you wish to duplicate, click the menu icon and select **Duplicate** . The **Duplicate** dialog box opens. - In the **Name** field enter a unique name, and from the **Type** list select a project type. - If you are duplicating a sketch project, continue to step 7. Otherwise, continue to the next step. - In the **Include** section, select one of the following: - **Diagram Only** - to copy only the diagram. Any unsaved changes made to the diagram are saved in the duplicated project only and not in the original project. - **All Content** - to copy the entire content of the project, excluding report data (tracking events), the website and friendly URL. This means that you will have to recreate these for the new project. You can also select whether to include project-level users, and/or the master list data sources. Note that only the data sources selected in the master list definition will be duplicated. - From the **Target** list, select the target uProduce account. - Click **Save**. ### Analytics # Analytics #### Circle Analytics # Circle Analytics Circle Analytics includes predefined, out-of-the-box reports available for your touchpoints. Using Circle Analytics, you can test and measure campaign results to better understand customer behavior and maximize campaign effectiveness, and decide on the next steps in your marketing strategy. For example, you can identify the peak performance time and the best performing links in an email. Circle Analytics reports are available for new projects as well as for existing ones. Analytics of a touchpoint can be shared with people outside the scope of Circle. Customers do not need to log into Circle or be Circle users in order to view analytics of their campaign. It is possible to provide them a direct link to analytics by placing it in any correspondence or third-party dashboard, to make it easily accessible by others. When the customer clicks the link, it opens the analytics in a browser window (desktop or mobile), independent of Circle.  ## Access Circle Analytics Click the Analytics icon above the touchpoint to view the analytic reports for that touchpoint: ## Analytics window The following is the Circle Analytics window for an email touchpoint: ### Title Shows the project name and the touchpoint name. You can force generation at any time by clicking the refresh button. ### Date filter Set a date filter to impact the data displayed in the Analytics window. For example, limit data in the reports to show events which occurred during a certain time period (last week, month), or define a custom date range of your choice. ### Copy link Since Circle Analytics works as a standalone application, you can create a link to it that can be shared with others. The link is valid for a year. You may choose whether to allow the recipient of the link to download list reports. ## More topics Email reports SMS reports Web reports Print reports Analytics dashboard List Reports Setting a date filter Sharing Analytics Analytics FAQ ## Watch videos Circle analytics email reports Geolocation and devices reports Web analytics #### Analyze dashboard # Analyze dashboard The Analyze dashboard provides a consolidated high-level view of the analytics of all touchpoints in the campaign. From the Analyze dashboard you can drill in and access the detailed analytics of each touchpoint. Viewing touchpoint analytics side-by-side enables you to analyze the performance of the entire campaign at a single glance. Watch Analyze tab video The top row of the Analyze dashboard shows up to five default KPI gauges, based on the content of the project. Below the gauges are tables showing analytics for all touchpoint types (email, SMS, web, print) which exist within the campaign. You can drill in to the touchpoint to get more specific analytics for each touchpoint. You may want to see the analytics of multiple email touchpoints consolidated into a single view. This is very useful when using manual A/B testing or manual throttling. In order to see metrics of multiple touchpoints together, select the checkbox of the thouchpoints whose metrics you want to combine, and click the Consolidated View button. The content of the dashboard is sensitive to the content of the actual project. In the above example, the project contains email, SMS, print and web touchpoints. The Analyze tab appears only if the campaign is connected to uProduce. ## Customize the Analyze dashboard As the administrator or builder, you can customize the content of the dashboard by hiding touchpoints and adjusting the KPI gauges. You can set up the dashboard in the template level so that all instances have the same custom dashboard. ### Hide touchpoints **Note:** This option is available only for Administrators and Builders. By default, all project touchpoints are listed in the tables. You may have touchpoints in your project for which there is no need to show on the dashboard, or which you don't wish to show the person monitoring the campaign. You can hide these touchpoints. To do so, click the menu button in the top right corner and select **Hide/Show Touchpoints**. Select the touchpoints you wish to hide. You can display these touchpoints again at any later time. ### Customize KPI gauges **Note:** This option is available only for Administrators and Builders. The Analyze dashboard comes with predefined KPI gauges, based on the touchpoints of the campaign. You can duplicate the KPIs, change their order and delete the unnecessary ones. Before executing the campaign, you can add KPI gauges to the dashboard up to a maximum of 5, or replace the displayed ones and customize them as needed. To customize a gauge, click the menu button below the gauge and then click the edit button to open the gauge customization dialog. You can change the metric of the KPI gauge from the Metric dropdown list. This list shows only metrics available in your campaign. For example, change the gauge metric from Click rate of email to Open rate of email. You will also have to specify the touchpoint for this metric. Note that the Email unsubscribe rate provides data from all email touchpoints. The Website visitors gauge applies to visitors of all pages of the website. In the Website conversion gauge you can include visitors who clicked on any action, or on an action which was tagged as a call to action (CTA), as shown below: The website conversion KPI gauge can now be tailored to measure actions tagged as a CTA (call to action). This KPI allows you to evaluate the success of your campaign in a single gauge. Be sure to identify the important action/link by appending **:CTA** to the tracking name in your web pages before launching the project (e.g., xmp-tracking-action=”Form Submitted:CTA”). **Note:** Clicks on the action/link before it has **:CTA** appended, will not be included in the CTA count. You can measure unique web conversion using the KPI gauge, and non-unique CTA metrics by downloading the page performance list report from the web analytics page. You also have the ability to set the threshold of KPI gauges, based on your expectation of the result. For example, assuming that a good email delivery rate would be 95%, then you would set the resolution of the Delivery rate KPI to 100%. You set this expectation in conjunction with the customer you're developing this campaign for. You can see how the KPIs are defined by hovering over a gauge and displaying the tooltip: If the maximum of five gauges are not displayed on your dashboard by default, you can add another gauge by clicking the menu button at the top right corner of the screen, and selecting **Add KPI Gauge**. ## Clear Analytics **Note:** This option is available only for Administrators and Builders. The Clear Analytics feature lets you clear the project's analytics before going live and launching the project. This can be useful for cases when you tested your project prior to launching it, and you wish to clear all test analytics before going live. Analytics for the current project is cleared in the Circle data warehouse only (cloud). It is not cleared from the uProduce tracking database (on prem) of Marketing Console (which has been deprecated), nor is the project history cleared (e.g., event-based automation history). After running Clear Analytics, the KPI gauges and all touchpoint analytics are reset to zero since there are no longer any events. ## Watch a video Analyze tab ## More topics Sharing Analytics Recipient journey report #### Recipient journey report # Recipient journey report **Prerequisite:** PersonalEffect 11.2 or above. The Recipient journey report contains the events of a specific recipient in the current project and spanning multiple touchpoints. The report details the recipient's journey through the different events, containing touchpoints and interactions during the campaign. In the following example of a recipient journey report, we see a summary of the events which occurred to the recipient throughout the journey: first the recipient was added (perhaps by refer-a-friend), then received a print piece, followed by an email invitation which was opened; the recipient clicked a link in the email and was sent to a landing page, and so forth. This report is particularly useful in the following cases: - In case of a dispute with a customer, for example if a customer claims to never have received an email, you can produce a journey report for the specific recipient which will prove the timing of the different events, and show that the email had indeed been sent, and possibly opened and clicked. - Regarding GDPR-related issues, by showing the sequence and timing of events you can prove compliance with GDPR regulations. For example, if a customer claims to have received an email after unsubscribing, you can produce a journey report which will show that unsubscribing took place after the email had been sent. - For retargeting purposes, the recipient journey report enables you to analyze the behavior of top-dollar customers in the current campaign, and refine or retarget your next marketing campaign based on your analysis. **Note:** The recipient journey report is available only from the Analyze dashboard and not in the shared analytics. ## Generate a recipient journey report: - On the top toolbar, click the **Analyze** tab. - Click the Recipient journey report icon located at the top right corner of the Analytics window. - In the **Recipient Journey Report** dialog, search for a specific recipient within the project. From the **Recipient** list, select a recipient list field, and then enter its value. - Click **Download report**. While the report is being prepared, the message "Generating recipient journey report" is displayed. Once done, it will be automatically downloaded. ## More topics Analyze dashboard List Reports #### Email reports # Email reports The following are the predefined, out-of-the-box reports available for your email touchpoints: ## Key metrics Key metrics are based on unique recipients. Each recipient is counted once regardless of how many times he/she performed that specific action. If the recipient opened the email three times on different occasions, he/she is counted only once in the Open count. Unlike the email performance doughnut chart, the totals are mostly independent of each other. For example, if a recipient opened and clicked, he/she is counted once in each total. Circle Analytics calculates the metrics as follows: - The Open count is increased if the recipient clicked but there was no tracked open event (due to the fact that some clients block open event tracking). If the recipient clicked, we deduce that he/she must have opened the email. - The Click count is reduced if the recipient also unsubscribed. The click count represents success in the email performance whereas unsubscribe reflects the opposite. Circle Analytics cleans up the click count to better reflect the true success of an email.   | Delivered | The number of emails that were successfully delivered to recipients. The delivery rate is the percentage of emails that were successfully delivered to their recipients out of the total emails sent. Note: Initially, the Delivered count includes recipients for whom delivery has not yet succeeded or failed. The system continues to retry delivery for these recipients, however if delivery fails, for example due to soft bounces, the delivered count is reduced and the bounced count increases. | | --- | --- | | Opened | The number of unique recipients who opened the email. This number is affected by email clients which block tracking of email open events. However, Circle adjusts the number of opens to be more precise by including in this count recipients that clicked, since if a recipient clicked he/she must have also opened the email. The open rate is the percentage of unique recipients who opened the email out of total emails delivered | | Clicked | The number of unique recipients who clicked a link in the email. The Click count is reduced if the recipient also unsubscribed. The Click count represents success in the email performance and unsubscribe reflects the opposite. Circle Analytics cleans up the click count to better reflect the true success of the email. The click rate is the percentage of recipients who clicked out of total emails delivered. | | Unsubscribed | The number of unique recipients who unsubscribed or complained. Recipients who unsubscribed or complained are excluded from the open and click count. The Unsubscribe total includes: Unsubscribe recipients who clicked the unsubscribe link and completed the unsubscribe process after the send. Those who unsubscribed (opted out) prior to the send are counted in the Failed total.; Complaints, e.g. email marked as spam. Complaints are a also a way to unsubscribe and opt out.; The unsubscribe rate is the percentage of recipients who unsubscribed and made complaints out of total emails delivered. | | Bounced | The number of emails that bounced. This could be due to: Soft bounce: An email message that gets to the recipient's email server but is bounced back undelivered before it gets to the intended recipient (for example, if the recipient’s inbox is full). A soft bounce message may be deliverable at another time or may be forwarded manually by the network administrator in charge of redirecting mail on the recipient's domain.; Hard bounce: An email message that has been returned to the sender for various reasons, such as a recipient’s invalid email address. ; The bounced rate is a percentage of bounced emails out of the total amount of sent emails. | | Failed | The number of emails that failed to be delivered, and those where the delivery failed due to the recipient opting out prior to the send. Failure could be due to: Opt out: Failed emails to recipients who previously opted out by unsubscribing.; Failed: An email message that failed due to a validation.; The failure rate is a percentage of failed emails out of the total amount of sent emails. | Hover over a metric and then over the information icon for further details. For example, the Opened metric shows the number of emails that had been opened out of the total delivered emails. You can also access the metric's list report by clicking . ## Email performance chart The Email Performance report displays the statuses of a single email touchpoint in a doughnut chart, which represents the event types in a total of 100%. Since this chart represents 100%, the report counts unique recipients (not events), and each recipient is counted in only one of the event groups according to his/her most significant event. The events in order of significance are: Unsubscribe, Clicked, Open only, then Not opened. This means that if a recipient unsubscribed, opened the email and clicked some link in the email, he/she is only counted in the unsubscribe event group. ## Link performance The Link Performance report shows which links in the email performed best. The report count is non-unique, meaning that each event is counted. Circle attempts to automatically assign each link a tracking name. Links which Circle cannot name appear as "Unidentified". If you wish you may define your own tracking name using xmp-tracking-action. ## Performance over time The Performance over Time graph shows the number of opened and clicked emails for all sends or for the last send (as set in the date filter). This report shows non-unique open and click events. This means that if a recipient opened the email three times, three events will be shown. Hover over any point in the graph to see the open and click count for that point in time. The initial view is of the first 24 hours. For mass email, the first 24 hours are of interest as they enable to establish the peak time that the email was opened. Use the scroll bar below the graph to scroll and zoom to different time frames. You can also drag over an area of interest within the graph, such as a peak, to zoom into it. **Note:** The Performance over time report shows data of maximum one year. If you're interested in a date range of several years, set the date range for one year at a time. ## Devices and top clients **Prerequisite:** XES Client 3.5 This report identifies the most popular devices used by your recipients. With this information, you can test your emails in the most commonly used email clients to ensure your emails display well in the different clients. Each time your email is viewed on a different device, it may look slightly different. Each email client displays emails differently, thus the email needs to be tested in various clients. If you use Circle's email editor which handles responsiveness, it is likely that you will produce good looking emails in most clients, however you must still test your emails in the various clients. Note that some devices are unknown because the email client blocks device detection (e.g., Gmail). These clients are classified as "unkown" because we don't know if they were opened on mobile or desktop. Important note about device and geolocation reports Device and geolocation reports provide an estimation only. Both reports depend on information collected about the recipient (the device and IP), which is then interpreted by a service we use. The data is collected from the email client which the recipient uses to open the email. However, not all email clients allow passing this sensitive recipient information and block device and IP detection. One such email client is Gmail. This means that Gmail opens are not included at all on the map, and in addition, they are shown as "unknown" in the device reports since there is no way to know whether the email was from a mobile or desktop. As a result, these reports may not be comprehensive, however they can still give you plenty of information: - **Devices** tell you on which email clients you must test your email. You won’t know if it’s Gmail mobile or desktop, but if the percentage is high enough, you should probably test on both mobile and desktop. - **Geolocation** may not give you all opens on the map, but you will get an idea of the spread of cities. This can help you identify which new areas to target, validate that your current targeting was successful, and for regions with different languages, you may find that you need to send a version in a different language. ## Geolocation **Prerequisite:** XES Client 3.5 Geolocation approximates where your recipients are located, so you can target recipients in specific regions. Geolocation is an estimate based on IP address data only. We can’t pinpoint a recipient's exact location, but we can identify a general area. Circle Analytics gathers geolocation data each time a recipient opens an email. The geolocation map shows a breakdown of non-unique opens by country, region and city. This information helps you identify locations with a high open rate. You can use this information to target these top performing locations. On the other hand, locations with a low open rate may be your next target. The amount of opens is represented by color. If you look at the legend below the map, you will see that the more opens, the darker the color. Click the map to zoom to the relevant area. Hover over a city to view the number of opens. The **Top cities by opens** table lists the number of non-unique opens of each city. Note that not every subscriber's email client can be detected, and some email programs don't identify themselves at all. ## More topics List reports Recipient journey report #### SMS reports # SMS reports Key metrics are based on unique recipients. Each recipient is counted only once. | Sent | Number of recipients to whom SMS was sent. | | --- | --- | | Delivered | The number of SMS messages that were successfully delivered to recipients. The delivery rate is the percentage of SMS messages that were successfully delivered to their recipients out of the total messages sent. Note that some countries do not support Delivery Receipts (DLR’s). This might affect the Delivered key metric. | | Failed | The number of messages that failed to be delivered. The failure rate is a percentage of failed messages out of the total amount of sent messages. Failure could be due to various reasons. The reason for the failure is shown in the list report. Note that some countries do not support Delivery Receipts (DLR’s). This might affect the Failed key metric. | | Unknown | The number of messages that were not delivered, and no reason could be determined. The unknown rate is a percentage of unknown messages out of the total amount of sent messages (Unknown = sent - delivered - failed). | Hover over a metric and then over the information icon for further details. For example, the Delivered metric shows the number of messages that had been successfully delivered out of the total sent messages. You can also access the metric's list report by clicking . ## More topics List reports Recipient journey report #### Web reports # Web reports The website analytics window combines **all** tracked pages in a single view. Clicking the Analytics icon above any web touchpoint opens the same window, showing analytics for the **entire website**. In email and SMS, on the contrary, the analytics window shows a **single** touchpoint. Note that the title shows the text **Website**, as opposed to the touchpoint name, indicating that analytics of all website pages is displayed here. Only PURL pages and actions which have XMPL tracking code are included in web analytics. For information on how to add tracking code, click here. The following are the predefined, out-of-the-box reports available for your website: ## Key metrics Key metrics are based on unique recipients. Each recipient is counted once regardless of how many times he/she performed the specific action. If the recipient opened the webpage three times on different occasions, he/she is counted only once in the Visited count. The title row of the key metrics shows the total number of **potential visitors**. This is a total number of people who were the recipients of an email, SMS or print sent as part of the campaign, as well as new recipients added via the campaign website. These recipients can potentially access the website using the link included in the email, SMS or print. This number of potential visitors is used to calculate the following key metrics: | Visited | The number of website visitors. The rate is webpage visitors/potential visitors. | | --- | --- | | Bounced | The number of people who visited one tracked page and left without any further interaction, i.e. they hadn't navigated to a second page or clicked a button or link. The rate is bounced/webpage visitors. | | Interacted | The number of visitors who interacted with the page, i.e. clicked a button or a link, or visited multiple pages. The rate is interacted/webpage visitors. | | New recipients | The number of recipients who were added to the recipient list through this website, for example via the refer-a-friend form. This metric is particularly useful in projects which aim to increase the recipient list. The rate is new recipients/potential visitors. | Hover over a metric and then over the information icon for further details. For example, the Visited metric shows the number of webpages that had been visited out of the total potential visitors. You can also access the metric's list report by clicking ## Web performance chart The Web performance report provides a quick view of the level of visitor engagement by visually comparing the number of visitors who left the website immediately after landing versus those who interacted with it. ## Page performance The Page performance report shows which pages in the website were visited, and the interaction within each page (Clicked column). Note that only pages and actions which are tracked are included. The report count is non-unique, meaning that all events are counted, regardless of the number of visitors who performed the actions. Page performance list reports can be downloaded as a single file, containing all page performance events, or page-by-page. ## Performance over time The Performance over time graph shows the number of website visits and clicks for the entire time period. This report shows non-unique visits and click events. This means that if a recipient visited the website three times, three events will be shown. Hover over any point in the graph to see the visit and click count for that point in time. Use the scroll bar below the graph to scroll and zoom to different time frames. You can also drag over an area of interest within the graph, such as a peak, to zoom into it. **Note:** The Performance over time report shows data of maximum one year. If you're interested in a date range of several years, set the date range for one year at a time. ## Source by media and Source performance The Source by media report shows the sources which referred traffic to the website. The source is the place users are before arriving at the website. It can be either an email, SMS, a print document or any other media of your choice, such as social media or webpage. This report can help you assess which of your media performed best. To achieve this, the URL should contain two tags, one defining the media (xmpmedia) and the other defining the source name (xmpsrc). You can use web content objects, in which case this information is automatically added to the URL, or you can define it manually as in the following examples: - https://mycompanydomain.com/mycampaign?xmpmedia=social&xmpsrc=facebook - https://mycompanydomain.com/mycampaign?rid=MyRecipientKey&xmpmedia=Web&xmpsrc=CompanySite Web content objects contain source and media information for email, print and SMS touchpoints. If you're using social, web or other media types, define the source and media manually. For more information, see Cheat sheet for web. The Source performance report provides a detailed breakdown of each media by touchpoint name or source. For example, you can assess which of your touchpoints performed best by contributing to the number of visits. Notice that the color of the bar chart in the Source performance chart corresponds with the color of the media in the Source by media chart. **Note:** In order for the source and media of print touchpoints to be tracked and displayed in Circle analytics, production of the print must be done in Circle (not in uCreate Print or uProduce). ## More topics List reports Recipient journey report #### Print reports # Print reports The following are the predefined reports available for your print touchpoints: - **Key metric** shows the total number of unique recipients for whom print was produced during the defined time period. - **Performance over time** shows the number of print events over a period of time. The initial view shows all runs. Use the scroll bar below the graph to scroll and zoom to different time frames. As you scroll you will see that the units of measure change, from days to weeks to months and years. For example, in a view of one year the runs will be grouped by month, and in a view of one month the runs are grouped by week. One bar represents the accumulation of runs in the time period shown on the X axis. Download the list report for further details by clicking . ## More topics List reports Recipient journey report #### List Reports # List reports **Prerequisite:** PersonalEffect 9.7 Use list reports to drill-down into the details of recipients corresponding to a certain event. List reports provide access to information such as: Number of times a specific recipient clicked in an email. Recipients who clicked the "Register now" link. You can check whether these recipients completed the registration. If they haven't, you can use the phone number in the report to contact them. Reason for failed SMS messages. This information can help you take some action. List reports are available for each key metric and each link in the email link performance report. Hover over the key metric and then click . Reports are downloaded in CSV format. Each report contains system defined columns, such as XMPieRecipientKey, and report-specific columns, such as "Failure type" for the Failed SMS report, or "Bounce reason" for the Bounced email report. The Builder/Admin can select which text content objects to include in the list reports of the project. Any read text content object can be selected for inclusion in list reports. A maximum of 20 content objects is permitted. Selection of content objects can be done from the **Library > Plan file > List** column: At any point in time, before and after project launch, the Builder/Admin can modify the content objects to be included in the list reports. List reports show the **current** data in the recipient list. For example, if the current age of a person is 30, and the event occurred when the recipient was 29, the age shown will be 30. **Notes:** - If you wish to view the list report for **all sends** of the touchpoint, it will be available for only if the project was created **after** October 1st, 2019. - If you wish to view the list report for the **last send** of the touchpoint, it will be available only if the last send occurred **after** October 1st , 2019. - List reports can include a maximum of 100,000 records. ## Email list reports ### Opened Lists unique recipients who opened the email. Results are affected by email clients which block tracking of email open events. Circle adjusts the number of opens to be more precise by including recipients that clicked, since recipients that clicked must have also opened the email. ### Clicked Lists unique recipients who clicked a link in the email. The click count does not take into account unsubscribe clicks. This is because the click count represents success in the email performance and unsubscribe reflects the opposite. As a result, Circle Analytics cleans up the click count to better reflect the true success of the email. The "Click count" column represents the total number of clicks of each recipient on any link in the email, in the defined date range. You can click the column header to sort the column from highest to lowest. This can help you identify hot leads, since a person who clicked most shows the most engagement and may be the hottest lead. ### Unsubscribed Lists the number of unique recipients who clicked the unsubscribe link and completed the unsubscribe process. Recipients who unsubscribed are excluded from the open and click count. Unsubscribe includes complaints. A complaint can occur without a click (e.g. email marked as spam). ### Failed Lists emails that failed to be delivered, and emails where the delivery failed due to the recipient opting out prior to the send. The reason for the failure appears in the "Failure type" column. ### Bounced Lists the number of emails that bounced and failed to be delivered. The bounce type (hard or soft bounce) and bounce reason (invalid email address, full inbox, etc.) are detailed in the report. ### Delivered Lists the number of emails that were successfully delivered to recipients. ### Link performance These reports list events. The same recipient may have multiple events and thus may appear in multiple rows in the report. Now, in the Email analytics window, you can download a consolidated link performance report with all link performance events included in a single report. This saves you time if you need to view or analyze all the events together in a single view. This is in addition to the ability to download separate reports where each report is focused on a specific link. ## SMS list reports ### Delivered Lists the recipients to whom the SMS message was successfully delivered. ### Failed Lists the recipients to whom the SMS messages failed to be delivered. Failure could be due to various reasons. The reason for the failure is shown in the report. ### Unknown Lists the recipients to whom the SMS message was not delivered, and no reason could be determined. ## Web list reports ### Visited Lists the number of website visitors. ### Interacted Lists the number of visitors who interacted with the page, i.e. clicked a button or a link, or visited multiple pages. ### Bounced Lists the number of people who visited one tracked page and left without any further interaction, i.e. they hadn't navigated to a second page or clicked a button or link. ### New recipients Lists the number of recipients who were added to the recipient list through this website, for example via the refer-a-friend form.   ### Page performance Lists which pages in the website were visited, and the interaction within each page. All page performance events: Single page performance events: ## Print list report ### Print produced Lists the total unique recipients for whom a print was produced during the selected period. ### Performance over time Lists the date and time the documents were printed, together with the recipient key and any content objects that were selected to be included in the list report. #### Setting a Date Filter # Setting a date filter The date filter impacts the data displayed in the Analytics window. You can limit data in the reports to show events which occurred during a certain time period (last week, month), or define a custom date range of your choice. You can also see data for all sends of the email touchpoint or just data from the last send. Date filtering is especially useful when the email touchpoint has been sent more than once (e.g. an email with recurrence). This enables you to focus on the relevant period. For example, if you send a daily email, at the end of the month you may want to look at last month's performance. Click the date filter icon located at the top right corner of the Analytics window to display the date filtering options. Select one of the following options: - **All sends** - includes all sends from the first send to today, and all their events. - **Last send **- includes only the last send and its events. - **Last week** - includes events which occurred from Sunday through Saturday of the previous calendar week. - **Last month** - includes events which occurred  from the first to the last day of the previous calendar month. - **Last quarter** - includes events which occurred  from the first to the last day of the previous quarter. - **Custom** - includes events which occurred during your custom date range. **All sends** and **Last send** return the results of a specific send(s). For example, if you send a monthly newsletter, you can look at the performance of the last newsletter. In these cases, since the initial amount of recipients included in the send is known, the pie chart will show the percentage of the total, i.e. the percentage of recipients who opened the email. All other options - **last week**,** month**,** quarter **or** custom date range** - return results of a specified time frame, independent of the send which may or may not have occurred during that time frame. For example, if you sent an email on Monday and you select a time frame of Wednesday to Friday, there won't be any send events, but you may have opens and clicks. In these cases, since the initial amount of recipients is unknown, the chart will not show percentages but rather absolute numbers. #### Sharing Analytics # Sharing Analytics You may wish to share the analytics of a single touchpoint or the analytics dashboard of the entire campaign with people outside the scope of Circle. For example, with the campaign’s marketing manager, or with your own manager. Now, your customers no longer need to be Circle users in order to view analytics of a campaign. You can provide your customer a direct link to analytics of a single touchpoint or of the Analyze dashboard by placing the link in any correspondence or third-party dashboard, to make it easily accessible by others. You can share the link with/without the ability of the viewer to download reports. Sharing the link to analytics is done in Circle by clicking the link icon, copying the link, pasting and sending it in an email, SMS or other media. Next, when your customer clicks the link, it opens the analytics in a browser window (desktop or mobile), independent of Circle. This means that the customer will not need to sign into Circle or be familiar with the Circle interface in order to view analytics. The customer will be able to further share analytics by simply forwarding the link received from you to others. This link will be valid for one year only. Note that each touchpoint has a unique URL to its analytics. Therefore, if the campaign includes multiple touchpoints, you can copy the URLs and paste them in a single correspondence. Alternatively, you can share the campaign dashboard to make it easy for your customers to access analytics of all relevant touchpoints. #### Analytics FAQ # Analytics FAQ Browse these FAQs to find answers to commonly raised questions regarding Circle Analytics. ## Circle data warehouse #### Can I continue accessing and extracting events from the uProduce tracking database? You can continue to use the uProduce tracking database as you have in the past. Currently, the pipeline for tracking events in the tracking database on premises remains unchanged. Note that additional event data required for new reports, such as geolocation and devices, source and media, SMS analytics, and call to action (CTA) analytics, is not stored on premises so you will not find it in the uProduce tracking database. Going forward, new features and new event data will only be tracked/developed in the Circle data warehouse.. #### Why is data tracked in the Circle data warehouse? All parts of the Circle analytics solution are planned to be cloud-based: Circle analytics, cloud tracking data warehouse and cloud tracking service. This solution aims to improve the speed of analytics and reduce the cost of data storage by storing events in the cloud tracking data warehouse. Currently, the pipeline for tracking events in the tracking database on premises remains unchanged. In the distant future, we may provide an alternative pipeline. #### What happens if I don't want my data stored in the Circle data warehouse? Can I continue to store tracking data locally? You can continue tracking data locally in the uProduce tracking database. If you object to storing data on the cloud in Circle's data warehouse, please contact Support. Note that additional event data required for new reports, such as geolocation and devices, is not stored on premises, so you will not find it in the uProduce tracking database. #### How does storing tracking data in the Circle data warehouse affect my GDPR compliance? Circle is GDPR compliant, and so is the Circle data warehouse. #### My contracts prohibit me from storing data outside of my country. What should I do? At the moment, there is no option to not save data on the cloud in Circle's data warehouse. If this is a problem for you, please contact Support. Also, you cannot delete the data stored in the Circle data warehouse. This option will be available in the near future. Note that tracking data is held in EU West – Ireland. #### Does saving data on the Circle data warehouse affect security in any way? Circle complies with all industry security standards. For example, data encryption, HTTPS protocol and GDPR compliance. In addition, multi-tenant security is assured. ## Working with Circle Analytics window #### Can I change the report's time zone? The time zone is taken from the project's time zone, and is defined in project parameters. See Working with project parameters. #### When viewing last week's reports, can I set the weeks' start date? When filtering reports by the "Last week" option, the week will always be Sunday to Saturday. This cannot be changed. #### Where do I define the refresh setting for Circle Analytics reports? There is no need to do so because Circle Analytics reports generate quickly. On opening the Reports window, reports are generated automatically if 60 minutes have passed since the last generation. You can also force generation at any time by clicking the **Refresh** icon. #### How do I name a link? Naming a link requires XES client version 3.5 or higher. Clicked links appear in the **Link Performance** section of the Reports window. XES automatically names the following four links (unless the links have already been named in the email): - XMPieRURL - XMPie.PDF.P1 - View in browser - Unsubscribe URL The rest of the links are tracked as "Unidentified links". You can assign each link a tracking name in order to easily identify specific links in your email. Click here to learn how to identify email links. Note that XES auto-naming of clicked links impacts emails sent after the XES Server has been upgraded (emails sent after 31/3/19). #### Why do numbers in the pie chart differ from those in the key metrics area (Delivered, Opened, Clicked, etc.)? In the pie chart title, notice the word “unique”. This indicates that each recipient is counted **once** for the most significant event. Examples: - A recipient opened an email and clicked a link. He/she will be counted only for the second event - clicked - which is the more significant event of the two. - A recipient opened an email, clicked the unsubscribe link, landed in an unsubscribe page and confirmed the request to unsubscribe. He/she will be counted only for the unsubscribed event, which is more significant than the opened and clicked events. On the other hand, metrics in the total line are independent of each other, therefore the recipient is counted for each metric. For example, if a recipient opened an email and clicked a link, he/she will be counted in each of the totals.   #### Why does the "Sent to" count in Circle Analytics differ from the "Total emails sent" count in the Email Service (XES) window? The **Sent to** count in the Circle Analytics report designates **people** and not emails. The **Total email sent** count in the XES window designates **emails** that have been sent. For example, 200 emails were sent to 160 recipients only. The analytics  report will show 160 recipients, even though 200 emails were sent. Billing, of course, will be for the 200 emails. #### Why don't I see opens and clicks in the Performance over time report? The initial view in the report is of the first 24 hours. For mass email, the first 24 hours are of interest as they enable to establish the peak time that the email was opened. If there were no opens or clicks in the first 24 hours, you'll see no data in the report. Use the scroll bar below the graph to scroll and zoom to different time frames. You can also drag over an area of interest within the graph, such as a peak, to zoom into it. #### Why don't I see Circle Analytics in uStore Campaign on Demand? Circle Analytics is available for XM products in uStore v14.1 and later. #### I don’t understand the Unsubscribe count. How can the unique count be greater than the non-unique? The auto-naming link feature of XES 3.5.1 began in March 2019. At this point the **Unsubscribe** link, amongst others, began being automatically tracked by name to identify the specific link performance. Your campaign had probably started before the auto-naming link feature, thus the earlier click events are tracked in the **Unidentified** links row. #### What happens if I send the same touchpoint multiple times to the same recipient? When a touchpoint is sent multiple times to the same recipient, and the All Sends option is selected, the recipient will be counted once in the key metrics according to his/her most significant event. The order of events from the least to the most significant event: - Delivered - Opened - Clicked - Unsubscribed - Failed - Soft Bounced - Hard Bounced ## Geolocation and devices reports #### Why don't opens in geolocation and device reports add up to opens in other reports? Firstly, some reports measure unique opens, while geolocation and devices measure non-unique opens. Secondly, geolocation and device reports provide an estimation only. Both reports depend on information collected about the recipient (the device and IP), which is then interpreted by a service we use. The data is collected from the email client which the recipient uses to open the email. However, not all email clients allow passing this sensitive recipient information and block device and IP detection. One such email client is Gmail. This means that Gmail opens are not included at all on the map, and in addition, they are shown as “unknown” in the device reports since there is no way to know whether the email was from a mobile or desktop. As a result, these reports may not be comprehensive, however they can still give you plenty of information: - **Devices** tell you on which email clients you must test your email. You won’t know if it’s Gmail mobile or desktop, but if the percentage is high enough, you should probably test on both mobile and desktop. - **Geolocation** may not give you all opens on the map, but will give you an idea of the spread of cities. This can help you identify which new areas to target, validate that your current targeting was successful, and for regions with different languages, you may find that you need to send a version in a different language. #### Why don't I see geolocation and devices reports for a specific project? This is because your project has ended before the geolocation and devices reports were ever available, thus geolocation and device data were never tracked for the project. #### Why is the start date in the geolocation and devices reports later than other reports? The start date reflects the earliest date on which data was collected for this report. Other reports may have tracking data from an earlier period. #### Why don't some report totals match? The following reasons could explain the difference: - **Date range:** Pay attention to the date range below the geolocation report title, as it indicates when tracking began. The difference could be due to different date ranges. - **Unique vs. non-unique:** Pay attention to the title which indicates whether the report count is unique or non-unique. Unique - all events for the same recipient are considered as one. Non-unique - each event is counted individually (if the recipient opened the email twice, the count would be 2). ## SMS touchpoints #### If I work with a custom SMS delivery provider, can I still see reports for my SMS touchpoints? Yes you can. In order to view your events in Circle Analytics, you will need to inject the events into Circle. For details, see Creating custom SMS providers. ## Web reports #### Why do my source reports contain no data? For information to appear in these reports, the URL placed in the various media (email, print, SMS) should contain two tags, one defining the media (xmpmedia) and the other defining the source name (xmpsrc). You can use web content objects where this information is automatically added to the URL, or you can define it manually as in the following examples: - https://mycompanydomain.com/mycampaign?xmpmedia=social&xmpsrc=facebook - https://mycompanydomain.com/mycampaign?rid=MyRecipientKey&xmpmedia=Web&xmpsrc=CompanySite Web content objects contain source and media information for email, print and SMS touchpoints. If you're using social, web or other media types, define the source and media manually. For details, see the Website analytics video. Note that Source and Media of print touchpoints are only tracked for print production executed via Circle. ## Analytics dashboard #### Why don't I see the Analyze tab? The Analyze tab appears only after the campaign is connected to uProduce. #### Why does the Analyze tab show no data? If the campaign hasn't started yet, no metrics will be shown, but you will be able to see the gauges and the different touchpoint types of the project. If the campaign has no touchpoints, the dashboard will be blank. As you add touchpoints to the campaign, they will be added to the dashboard. ### uProduce Setup and Monitoring # uProduce Setup and Monitoring #### uProduce Connection # uProduce Connection The uProduce system you select represents the connection from your Circle account to the Circle Agent on uProduce.   This single connection is used for connecting all projects in your Circle account to uProduce. Therefore, we recommend specifying the uProduce system credentials that grant access permissions to all relevant uProduce accounts. Editing uProduce system credentials impacts all projects connected to the selected uProduce system.  ## Edit uProduce credentials - From the **File** menu, select **Account****>****uProduce Connection**. - Select the uProduce system of your choice. - In the **uProduce Credentials** dialog, set the username and password to be used for all projects connecting to this uProduce system. - Test the connection, and if successful, click **Save**. #### Managing Destinations # Managing destinations Use uProduce settings to define different kinds of destinations to which you will send your production outputs. Once these destinations are defined, you can select them from the Destination drop-down list in the Process page. These destinations include: - FTP Sites - Network Paths: can also be used to accommodate the Xerox Input Folders - Network Printers: can also be used to utilize the Xerox FreeFlow Output Manager mechanism - Xerox FreeFlow Automatic Submission ## Define a new destination - Click the **Settings** button on the navigation bar. The destinations list is displayed. - Click the **New** button. The **New Destination** page is displayed. The following sections provide instructions on defining each type of destination. ## Define an FTP site destination - In the **Type** list, select **FTP site** and click **OK**. The **New Destination** page for FTP sites is displayed. - Enter the required information, as described in the table below. - Click **Save** to save your settings. The **New Destination** page for FTP sites includes the fields and options shown in the table below: | Option | Description | | --- | --- | | Name | Enter a name of the FTP site that will serve as you destination. | | FTP Address | Enter the FTP site address. | | Login | Enter the login name for logging into this FTP site. | | Password | Enter the password for logging into this FTP site. | | Port | The Port used for connecting to the FTP site. | | Passive | Select Passive if you want to send your production outputs to a Passive Mode FTP site; otherwise leave this check box unchecked (Active Mode FTP). | ## Define a network path destination ### Set up the remote server When sending your production results to a remote destination, the target machine can be accessed using one of the following authentication methods: - The target machine is accessed using the same Windows user name and password as the ones used for the machine on which uProduce is installed. Note, if no user is specified during the uProduce installation, uProduce runs with the Windows user that was logged in at the time uProduce was installed. On the remote server (target machine), define a new user with local administrator permissions, and with the same user name and password used during the uProduce installation. The new user on the remote server is used only for access permission and does not have to be used when logging into the server. - The target machine is accessed using different credentials or a different domain. ### Define a network path destination - In the **Type** list, select **Network Path** and click **OK**. The **New Destination** page for network paths is displayed. - Enter the required information, as described in the table at the end of this section. - Click **Save** to save the information. The **New Destination** page for network paths includes the following fields and options: | Option | Description | | --- | --- | | Name | Enter a name for the network path that will serve as your destination. | | Network Folder Path | Enter the full path to the desired location. | | Connect to a network folder path that requires authentication | Select this checkbox if you wish to connect to a remote machine using different credentials than the ones that are used to log in to the uProduce server. | | Password | Enter the password for logging into this FTP site. | | Username | The username required to connect to the network path. | | Password | The password required to connect to the network path | | Domain | The domain of the network path. The domain name is required if the network path and the uProduce installation reside in different domains. Otherwise, it is optional. | ### Use Xerox FreeFlow input folders The FreeFlow Input Folder mechanism serves two main functions: - An archiving mechanism, also known as a “Cold Folder”, for the FreeFlow Print Manager. Note that you can archive a JDF file with its appropriate print output file by including the JDF file in this folder. - A Hot Folder mechanism for the FreeFlow Process Manager. This mechanism is used for sending print jobs to predefined hot folders, which streamline the digital production workflow. The archiving mechanism and the hot folder mechanism are both implemented in uProduce as destinations whose type is **Network Path**. ## Define a network printer destination - In the **Type** list, select **Network Printer** and click **OK**. The **New Destination** page for network printers is displayed. - Enter the required information as described below. - Click **Save** to save the information. The **New Destination** page for network printers includes the following fields and options: | Option | Description | | --- | --- | | Name | Enter a name for the printer that will serve as your destination. | | Network Printer | Select the printer from the drop-down list of printers, as defined on your client computer. | ### Define a network printer for the FreeFlow Output Manager (FFOM) mechanism uProduce allows you to utilize Xerox FFOM mechanism for defining a printer queue as a Windows printer. **Note:** A printer queue defined in Windows can process only VPC packed files. JDF files are not supported. - Define a printer queue using Windows **Add New Printer** option (point to the DFE IP address and include the printer queue name). - In the **Settings** page, select **Destinations** and click **New**. The **New Destination** page is displayed. - Select **Network Printer** and click **OK**. The **New Destination** page for network printers is displayed. - Select the newly created network printer from the **Network Printer** dropdown and type a name for this printer in **Name** field. - Click **Save** to save your settings. To send a print job using the FreeFlow Output Manager mechanism, see Production and Deployment. #### Managing Configuration Files # Managing configuration files Use uProduce settings to upload a configuration file to the uProduce server. A configuration file (that is, the “stub” file describing each target Digital Front End - DFE) should be delivered to the uProduce operator and uploaded to the uProduce server when creating a VI Container packages for a specific DFE. VI Container (VPC) packages can now be created for any of the following formats (in addition to VIPP): PS, PDF and PPML. To create VI Container packages in these additional formats for a specific Digital Front End (DFE), you must first make sure that the appropriate configuration file (that is, the “stub” file describing each target DFE) had been delivered to the uProduce operator and uploaded to the uProduce Server. A default configuration file is created upon initial installation of a uProduce server. ## Upload a configuration file to the uProduce server - In the **Settings** page, go to the **Settings** list and select **Configuration Files**. The **Configuration Files** page is displayed. - Click **Upload**. The **Upload Stub File** dialog is displayed. - Browse for the configuration file and set a new name for the file. When finished, click **Save**. The configuration file is uploaded to uProduce server. - You can see a list of configuration files in the **Name** list of the **Destination** page. For more information on creating a VI Container packed file, refer to Production and Deployment. #### Defining Delivery Providers # Defining delivery providers Delivery providers are used to handle the uProduce email messaging mechanism. The uProduce administrator can define the following delivery providers to handle email messaging in uProduce: - XMPie Email Service (XES) - SMTP Server - Third-party delivery providers **Warning**: Make sure that you do not send mass email through your SMTP server to addresses outside your organization. This may cause your email address and possibly all of your organization’s email addresses to be listed as spam, and to be blacklisted across the internet. Send SMTP emails only internally and for testing purposes. For any real-life jobs, use an email provider, such as ExactTarget or XMPie Email Service. ## Access the delivery providers page - On the navigation bar, click **Settings**. The **Settings** page is displayed. - On the left panel, click **Delivery Providers**. The **Delivery Providers** page is displayed. If you have not defined a delivery provider yet, the **Delivery Providers** page is blank. After you define delivery providers, this page displays the list of all your delivery providers. ## Set Up XMPie Email Service (XES) as your delivery provider XMPie Email Service (XES) offers a commercial-grade solution for personalized email delivery and tracking. The service's email delivery uses Amazon Simple Email Service (Amazon SES) ensuring an integrated and effective solution. For detailed information about XES, see the XES documentation. - On the **Delivery Providers** page, click **New**. - From the **Type** list, select **XMPie Email Service (XES)**. - Enter the required field values as specified below: | Option | Description | | --- | --- | | Name | The name of the new delivery provider. | | Service account ID | When creating the XES account, this value is defined by Support. | | Access Key ID | When creating the XES account, this value is defined by Support. | | Secret Access Keys | When creating the XES account, this value is defined by Support. | - To assign a delivery provider to specific Accounts, expand the **Available in Accounts** section by clicking the “+” sign next to it. The **All accounts** option is selected by default. Choose the **Specific accounts** option and select the Accounts. Assigning delivery providers to specific accounts is only available for administrators. - Click **Save**. It is recommended that you test the delivery provider after creating it. After creating the XES delivery provider, you can see its' sending limit status, a list specifying the verification status of each address, and you have the ability to verify new emails. | Option | Description | | --- | --- | | Name | Name of the new delivery provider. This name will appear in the Delivery Providers menu when selecting the default delivery provider in the account settings or in an email touchpoint. | | SMTP Server Address | IP address or host name of the SMTP server. | | Port | SMTP server’s port (usually port 25). | | Timeout | Timeout (in seconds) for accessing the SMTP server. | | Authentication Required | If the SMTP server requires authentication, select the Authentication Required check box and enter the required user name in the Login field and password in the Password field. | ## Verify email addresses XES requires that before you send emails, you must verify each email address that you will use as a "From" or "Sender" address to prove that you own it. For information on why you must verify emails, see the XES documentation. ## Set up an SMTP delivery provider - On the **Delivery Providers** page, click **New**. - From the **Type** list, select SMTP Server. The **New Delivery Provider** page for SMTP Server is displayed: - Select **SMTP Server** from the **Type** list. Enter the required field values as specified below: - If you want to assign a delivery provider to specific accounts, expand the **Available in Accounts** section by clicking the “+” sign next to it. - The **All accounts** option is selected by default. Choose the **Specific accounts** option and select the accounts. - Click **Save**. It is recommended that you test the Delivery Provider after creating it (see Testing a Delivery Provider). ## Prepare for email distribution by third party delivery providers uProduce allows you to prepare email files for distribution by third party delivery providers. The following files are prepared: - **CSV files:** contain a list of recipients with resolved content object values. The number of CSV files depends on your settings. - **HTML and/or Plain Text Templates:** templates with placeholders for content objects. The third party delivery providers will use the template and the CSV files to compose personalized emails. - On the **Delivery Providers** page, click **New**. - From the **Type** list, select **Prepare for email distribution**. The **New Delivery Provider** page is displayed: - Enter the name of the delivery provider. This name will appear in the **Delivery Providers** dropdown list when the operator has to select a delivery provider. - Define the splitting method for the CSV files: **Default settings (File size up to 200MB)**: select this option to split CSV files according to the file size. Each time a file will reach 200MB, a new file will be created. - Custom settings In the **Split by** dropdown list, select **File size** or **Number of recipient**s. - If the **File size** option has been selected, enter a value in the **CSV file size (MB)** field. This option is used if you wish to specify a file size that is different from the default settings. - If the **Number of recipients** option has been selected, enter a value in the **Number of recipients per file** field. - If you want to assign a delivery provider to specific accounts, expand the **Available in Accounts** section by clicking the “+” sign next to it. - The **All accounts** option is selected by default. Choose the **Specific accounts** option and select the accounts. - Click **Save**. ## Test a delivery provider - To send a single message to test your delivery provider’s settings, click the **Test** button in the **Edit** or **New Delivery Provider** pages. The **Test Delivery Provide**r window is displayed. If you use Internet Explorer, you may be asked to allow pop ups in order to display the **Test Delivery Provider** window. - Enter the required field values as specified below. | Option | Description | | --- | --- | | From Email | Represents the From field in the test email message. If you are testing the XES delivery provider, this address must be verified. For further information, see Verify email addresses. | | To Email | Represents the To field in the test email message. | | Subject | Subject of the test email message. | | Message | Text body of the test email message. | When you are done, click **Send** to send the test message. #### Setting Up Measurement Units # Setting up measurement units uProduce Preferences allow you to set per-user measurement units, which are used to calculate the page size and print attributes of your Dynamic Document. These include items such as cut marks, bleed, margins, and so forth, defined in the **Process** page **Step & Repeat** section. The default measurement units are PostScript Points. You can change this setting at any time to inches, millimeters, centimeters, picas, or ciceros. The changes you make are reflected on-screen with an accuracy of up to three digits after the decimal point. Campaign-level measurement units are set in the **Settings** page as explained below. You can override this setting during the **Process** phase, by going to the **Process** page **Step & Repeat** section and clicking the **Change Units** link (see Imposition). To set up measurement units using uProduce Preferences: - In the **Settings** page, go to the **Settings** list and select **Preferences**. The **User Preferences** dialog is displayed: - Select your preferred measurement units: **Points** (PostScript), **Inches**, **Millimeters**, **Centimeters**, **Picas** or **Ciceros**. - Click **Save** to put your settings into effect. #### Defining Production Settings Template # Defining production settings template Processing a document requires defining many parameters, such as imposition, policies, JDF and more. These parameters are known as production settings. To ease this lengthy process, you can save production settings as a template, and use it repeatedly for the same or for different documents. The production settings template can be defined either in the document’s **Process** page or in the **Production Settings** section of the print touchpoint. The **Production Settings Templates** page lists all global templates and user-defined templates associated with the accounts that are accessible for the current user. On this page you can do the following: - Create a new template - Edit an existing template - Duplicate a template. - Delete a template. Users can only edit or delete user-defined templates which they are allowed to view. Global templates can only be edited or deleted by an administrator. Any user can duplicate any template and save it as a new template. ## Create a new template - Click the **New** button. The **New Production Settings Template** page opens. This page is a replica of the **Process** window. - Enter a name for the new template. - Fill in the sections of the page. For information on the different sections, see Print touchpoint output settings. - Click **Save**. - If you are an administrator, clicking **Save** will automatically save the template as a global template. Global templates are available to all uProduce users. If you are not an administrator, the **Save Template** window is displayed prompting you to select an account in which this template will be saved. Select an account and click **Save**. **Notes:** - Templates do not include production parameters that have been defined in the **Recipients** and **Tracking** sections of the **Process** page, since these are campaign-specific. - The VDX print format cannot be saved as a template. #### Adding uCreate Connectivity License # Adding a uCreate Connectivity license to the XMPie server To be able to work in a uCreate Print - Circle connectivity mode you need: - uCreate Print license - uCreate Connectivity license installed on uProduce To enable a connectivity mode between uCreate Print and Circle, XMPie provides you with a Connectivity license key. The license key is relevant for a specific machine. Make sure to activate this license before you start to work. To verify that the license has been correctly installed, log into uProduce as administrator and select **Settings > uCreate Connectivity**. The installed licenses should appear in the list. You can see the name of the computer which is already connected to the server. If there are more computers that can be connected using the same license, they appear as **Available** in the list. The uProduce administrator can deactivate the computer connectivity license by clicking the **Deactivate** link. In this case, this license becomes available for use by another computer. For more information on uCreate Print - Circle connectivity, see uCreate documentation. #### Monitoring uProduce System # Monitoring uProduce system uProduce allows you to monitor the status of your system. Clicking the **Monitoring** button on the navigation bar allows you to view the system status. This button is only visible to the users who are granted permissions to view the monitoring information (see Setting up user permissions for monitoring). The following monitoring tools are available: - Disk space monitoring tool - Database size monitoring tool - Services monitoring tool An icon representing the overall status of the uProduce system appears on the **Monitoring** button. The overall status is the same as the most severe status of one of the monitoring tools. For example, if only one tool reports an error whereas all the other tools display the “OK”status, the overall monitoring status will be “Error”. The status indicators for the monitoring tools can be one of the following: | Icon | Option | Description | | --- | --- | --- | | | OK | Displayed when the system operates as expected. | | | Warning | Displayed when the system functions properly but there is a non-critical issue that the administrator should address. A warning email notification is sent to the administrator. | | | Error | Displayed when there is a critical issue that the administrator should address. An error email notification is sent to the administrator. | | | System Error | Displayed when a monitoring tool did not report at a scheduled time. This status provides information about the monitoring tool itself as opposed to other status indicators that refer to a monitored parameter. An error email notification is sent to the administrator. | When one of the monitoring tools reports an error or a warning, an email notification is sent to the administrator. To learn how to set up the email notification mechanism, see Email notifications for uProduce system alerts). ## Disk space monitoring tool An increase in data volume stored on a computer disk causes the application to perform less efficiently. Running low on disk space may cause performance issues and even production failure. The Disk Space monitoring tool notifies you about the amount of available disk space and issues alerts when the minimum disk space threshold is reached. - Warning: 30GB of free disk spaces remains available. - Error: 10GB of free disk spaces remains available The available disk space is indicated for each one of the XMPie servers and detailed per disk. The disk space usage is indicated with respect to the available disk space (for example, 26.24 GB Free of 40GB) and the usage status is illustrated with a colored progress bar. The color of the progress bar represents the status: - Green - OK - Yellow - Warning - Red - Error The status indicator is displayed at several levels and is refreshed every hour: | Level | Display | Description | Severity | | --- | --- | --- | --- | | Tool | Next to the tool name | The overall status for all XMPie servers. | The tool status severity is determined by the most severe status of one of its severs. | | Server | Next to the server name | The overall status for that server. | The server status severity is determined by the most severe status of one of its disks. | | Disk | Indicated by the progress bar length and color | The disk space usage | The disk space with respect to the pre-determined warning or error threshold. | **Example**: In the image below the first server has the **Warning** status since the disk C:\ has this status. The second server has the **Error** status due to the disk space error on the disk C:\. The Disk Space tool status is **Error** since this is the most severe status of one of its servers. You can click the button next to a server to display only the summary status: ## Database size monitoring tool The uProduce system requires a certain database size in order to function properly. The Database Size tool monitors the used database space to determine whether you need to increase its size or remove unneeded objects. The database size monitoring is performed for each one of the XMPie databases. For each database the following information is indicated: | Option | Description | | --- | --- | | SQL Type | The SQL Server type name (for example, SQL Server 2008 R2 Standard Edition) | | Instance | The SQL Server instance to which the database is attached. | | Edition | The SQL Server edition (for example, Standard or Express). | | Version | The SQL Server version number. | The Database Size monitoring tool notifies you about the amount of available database size and issues alerts when the minimum database size threshold is reached. - Warning: 25% of database size remains available. - Error: 15% of database size remains available The status indicator is displayed at several levels and is refreshed upon the **Monitoring** page load. | Level | Display | Description | Severity | | --- | --- | --- | --- | | Tool | Next to the tool name | The overall status for all XMPie databases. | The tool status severity is determined by the most severe status of one of the monitored databases. | | Database | Next to the database name | The database status. | The database size with respect to the pre-determined warning or error threshold. | You can click the button next to a server to display only the summary status: ## Services monitoring tool The Services monitoring tool displays the status of XMPie services for each XMPie server. If a service stopped running, it is automatically marked with an **Error** status and an email notification is sent to the administrator. There is no **Warning** status for this tool. To display detailed information about the service, hover over the **Status** icon. The following tool tip is displayed: | Option | Description | | --- | --- | | Service Name | The name of the XMPie service. | | Status | Running or Stopped. | | Start Mode | The manner in which the service is started: Auto: Service to be started automatically by the Service Control Manager during system startup. Manual: Service to be started by the Service Control Manager when a process calls the StartService method. Disabled: Service that can no longer be started. | The status indicator is displayed at several levels and is refreshed every hour: | Level | Display | Description | Severity | | --- | --- | --- | --- | | Tool | Next to the tool name | The overall status for all XMPie servers. | The tool status severity is determined by the most severe status of one of the monitored servers. | | Server | Next to the server name | The overall status for all services running on that server. | The tool status severity is determined by the most severe status of one of the monitored services. If at least one service is stopped, the entire tool is marked with the Error status. | | Service | Next to the service name | The service status. | A service that has been stopped receives the Error status. If you are not using that service, you can disable. | You can click the button next to a server to display only the summary status: ## More topics Setting up User Permissions for Monitoring Email Notifications for uProduce System Alerts ### uProduce Administrator Tasks # uProduce Administrator Tasks #### uProduce Administrator Tasks # uProduce Administrator tasks The administrator logs on to uProduce using a specific user name and password provided by XMPie. This user name and password combination enables administrators to enter the **Users** area of uProduce where they can create and maintain the uProduce users, define delivery providers, configure proxy server, etc. Administrators have access to the following navigation bar buttons and links: | Button | Description | | --- | --- | | | Displays all uProduce users. | | | Displays a list of all jobs for the current user. | | | Displays the uProduce system status: disk space usage, database size and services status. For details, see Monitoring uProduce system. | | | Allows you to configure various settings, for example: install the Proxy Utility and clear cached elements if global caching is used. | | | Allows you to launch user-defined targets directly from the uProduce Dashboard. Click the arrow and then choose the relevant custom button from the list. | After you log on to uProduce as administrator, the **Users** page is displayed and presents the current list of users in alphabetical order: At first login, the **Users** page has only one entry - that of the administrator, as supplied by XMPie. The administrator can edit the user’s properties, add new users, and delete users. After creating new users, the administrator should give the individual users their user names and passwords, so they can login and work on accounts. #### Basic Administrator Tasks # Admin setup tasks The administrator is responsible for creating uProduce users, inviting users to an account, managing account and project users, and registering users to an account. ## Create uProduce users - Click the **Users** button on the navigation bar. The **Users** list is displayed. - Click the **New** button. The **New User** page is displayed. - Enter the following required information (other settings are optional): | Option | Description | | --- | --- | | Login Information | | Login Name | Name the user will use to log in. | | Password Confirm Password | User’s password (re-enter the password for confirmation). | | User Information (Required Fields) | | First Name, Last Name | First name and Last name of the new user. | | Email | Email address of the new user. | - Enter the optional information as necessary. If you have already defined accounts, you can choose on which accounts this user will be able to work, by selecting these accounts in the **Shared Accounts** section. - Click **Save** to save the user information. ## Invite users to an account The administrator can invite other users to participate in projects belonging to a particular account. - Click **File** > **Account** >**Account**-Invite. The Invite to Account page is displayed. The **Project** field value is automatically set to All and cannot be modified. The Account field displays the name of the account. - In the **To** field, type the email address of the user you want to invite. - In the **Roles** field, select the user role/s you want to assign to the invited user. You can combine roles, for example, Planner and Builder, if you want to grant the invited user both sets of permissions. See Circle user roles and permissions. - Optionally, edit the invitation message. - Click **Send** **Invitation**. An email is sent to the invited user with a link to the Circle Registration page. The user then clicks the link to register for a Circle Account. ## Manage account users Account administrators are authorized to view all account users, remove them and assign account roles. - From the **File** menu, select **Account** >**Account** - **Roles**. The Roles window is displayed. You can see all the users who have access permissions to the selected account. To re-assign account roles, select or deselect the corresponding checkboxes. - To remove an account user, hover over **User Name/Email** and click **Delete **.  As Power User and Administrator are chargeable user roles, you might want to remove them to reduce your expenses. - Click **Save**. In the **Roles** window, you can view and delete users assigned to a specific project within the selected account. Those users are marked with **(P)** in the **Name/Email** column. Note that deleting a project user deletes him or her from all the projects within the selected account to which he or she is assigned. ## Register users to an account When a new, unregistered user receives an invitation to collaborate on a specific project or on the entire account, he/she must register to Circle. The invitation email contains a link to the **Registration** window. - Fill in the registration form and click **Register**. ## Manage project users Users working on a project can view other project users. Administrators can also assign and re-assign user roles and remove users from projects. - Open a project. - Click **File** > **Roles**. The **Roles** dialog box is displayed with a list of all users with access permissions to the selected project. The **Name/Email** field displays the email addresses of new users and the first and last names of existing users. - To re-assign a role, select or deselect the checkboxes corresponding to the user's name or email address. Account administrators can assign any role. All other users can assign only the reviewer role. - To remove a project user, hover over the user name or email and click the **Delete** icon. Deleting a project user removes the user only from the current project. The user's access permissions to other projects within the account are not affected. To delete the project user from all the projects within the account, go to the **Account - Roles** window. - Click **Save**. #### Configuring the Proxy Server Settings # Configuring the proxy server settings uProduce can use a proxy server to communicate with the web. Communication via a proxy server may be required by some organizations. - Log in to uProduce as an administrator. - In the **Settings** page, go to the **Settings** list and select **Proxy Server**. - uProduce needs both HTTP and HTTPS external access. If your organization requires a proxy for either HTTP or HTTPS, select the required option. Once you select one of the options, the configuration fields become enabled. - Enter the proxy server IP address or host name in the **Server Address** field. - Specify the **Port**. By default, an HTTP proxy server uses port 80 and an HTTPS proxy server uses port 443. - If the proxy server requires authentication, fill in the proxy **User Name** and **Password**. - Click **Test** to verify the connectivity of uProduce via the proxy settings. - Click **Save** to save the defined proxy settings. #### Configuring Plan parts # Configuring plan parts **Note:** This feature is intended for advanced usage. Normally, configuring plan parts is not required. The plan parts mechanism controls the activation of QLingo extensions when used in uProduce, and is therefore of interest mainly to QLingo extension users. There are currently two plan part aspects that may be controlled: - Caching - A-Synchronization **Caching** of QLingo extensions makes it possible for an extension to define its generated content for caching. This is very useful when the calculation of the content is complex and takes a long time. A good example is uImage, which is implemented as a QLingo extension. Caching images that are generated by uImage considerably improves performance. In order to use Caching, the extension has to provide additional commands on top of the regular functionality of declaring its exported methods. If you are an extension developer, please contact XMPie support at support@xmpie.com for details. **A-Synchronization** is another feature of QLingo extensions that can be configured on uProduce to control the calculation of QLingo extensions. This feature allows uProduce to make asynchronous calls to QLingo extensions, essentially asking them to perform the calculations at an earlier time in the process and to get the result at a later time, allowing it to perform other tasks in the meantime. This is very useful for long calculations. Again, uImage is a good example for a long calculation that benefits from asynchronous calls methodology. Advanced users may find it interesting to control whether caching or asynchronous calls are required for a certain extension in uProduce. To view caching and a-synchronization parameters for QLingo extensions: - Login to uProduce as an administrator and go to **Settings**> **Plan Parts**. - The **Plan Parts** page shows a list of installed QLingo extensions. For each QLingo extension, the list provides the following information: | Option | Description | | --- | --- | | DLL Name | The name of the QLingo extension DLL. | | ID | The ID of the QLingo extension setting. | | Function Name | The name of the function. | | Cache | Whether the Caching option is activated (True) or not (False). | | Sync | Whether the a-synchronization is activated (False) or not (True). Please note, that A-synchronization means that the False value is selected for synchronization. | From this window you can either: - Add a new QLingo extension and define its Caching and A-Synchronization settings. - Edit the Caching and A-Synchronization settings of the existing extensions. ## Add a new QLingo extension - In the **Plan Parts** page, click the **New** button. The **New Plan Part** page is displayed: - Specify the **DLL Name** and the **Function Name** of the new QLingo extension. - Set the **Cache** dropdown list to one of the following options: **True:** if you wish to apply caching to the function results. - **False:** if no caching should be applied. - Set the **Sync** dropdown list to one of the following options: - **True:** if no a-synchronization should be applied. - **False:** if you wish to apply a-synchronization to the function results. - Click **Save** to save the results and to return to the main **Plan Parts** page. If a QLingo extension DLL provides more than a single function, remember to define all of its functions as **Plan Parts** using this window. ## Edit an existing QLingo extension - In the **Plan Parts** dialog, click the **Edit** link next to the required function. The **Edit Plan Parts** page is displayed: - Edit the caching value in the **Cache** dropdown list. - Edit the a-synchronization value in the **Sync** dropdown list. False means that a-synchronization is activated. - Click **Save** to save the results and to return to the main **Plan Parts** page. #### Setting Up User Permissions for Monitoring # Setting up user permissions for monitoring uProduce allows you to monitor the status of your system. To view the status, a user must click the **Monitoring** button on the navigation bar. The **Monitoring** button is only visible to users who are granted permissions to view the monitoring information. To set up permissions for viewing monitoring information: - In the **Settings** page, go to the **Settings** list and select **Preferences**. The **User Preferences** dialog is displayed: - In the **Enable monitoring tools** section, select one of the following options: - **Admin only:**  to grant permissions to uProduce administrator only. - **All users:**  to grant permissions to all users. - Click **Save**. #### Email Notifications for uProduce System Alerts # Email notifications for uProduce system alerts When one of the uProduce monitoring tools report a Warning or an Error, an email notification is sent to the administrator. The email notifications are triggered by the following events: - As soon as a monitoring tool reports an Error or a Warning for the first time. - If the reported status became more severe (for example, a Warning became an Error). - If the status have not changed for 3 days since the first email notification, another email is sent. - If the reported status changed to OK, no email notification is sent. ## Set up the email notifications for system alerts - Log in to uProduce as an administrator. - Click the **Settings** button. The **uProduce for Administrators - Settings** page is displayed. - If no Email Provider is set up, click **Define****a new Email Provider**. The **New Delivery Provider** page is displayed. See Defining delivery providers for instructions for defining an email delivery provider. If an email delivery provider is already defined in the system, in the **Email Provider** dropdown list, select the one you wish to use for sending system alerts. - In the **From Email Address**, enter a sender’s email address. This field must contain a valid email address with an existing domain. - In the **Email Addresses to notify** text box, enter the email addresses of the system alerts recipients. Usually, this will be the address of the uProduce administrator. - Click **Save**. ### GDPR # GDPR #### Circle and GDPR # Circle and GDPR ## Overview The General Data Protection Regulation (GDPR) is a regulation that intends to strengthen data protection for all individuals within the European Union (EU). GDPR aims primarily to give control back to citizens and residents over their personal identifiable information (PII). PII is information that can be used to identify, contact, or locate a single person, or to identify an individual in context. Any information that can be used to trace an individual's identity, such as name, social security number, and even purchasing preferences can be considered PII. In Circle projects, PII is found in several places such as data source recipient list tables, tracking data, images, jobs, and job output. Circle works in conjunction with uProduce to provide tools for GDPR compliance. For more information about GDPR in other XMPie products, see GDPR guidelines for XMPie products. This topic outlines important issues, best practices and functionality to allow you to comply with the various GDPR requirements: - uProduce GDPR setup – a prerequisite - Recipient Key - User Authentication (secURL) - HTTPS Protocol - Export/delete recipient data - Permanent and non-permanent data sources - Sample recipients - Template recipient list - Automated decision processing ## uProduce GDPR setup – a prerequisite A prerequisite to Circle GDPR compliance, is that uProduce be configured for GDPR. Circle relies on the automatic deletion mechanism of uProduce for some aspects of its GDPR solution. For example, when deleting a Circle project, Circle makes sure to delete all traces of the project (e.g., data sources, tracking data) and relies on the uProduce automatic deletion mechanism to complete the process (e.g., deletion of jobs and job output). ## Recipient Key It is recommended not to use personal information in the recipient key, in order to avoid webpages from being accessed by hackers. Finding the recipient key pattern and guessing its values might cause data breaches. In websites that do not require signing in to access personal data, guessing the recipient key enables easy access to a citizen’s personal data. In addition, it reveals that the person is part of the campaign. It is therefore not recommended to use in the recipient key first and last name, email address, identification number, etc. From PersonalEffect version 9.3, you can use the insert expression **|->[?] := SecureID()** function in uPlan, or the Auto-generated Secure ID option in Circle's Master List and Easy Start wizard. ## User Authentication (SecURL) The strongest way to achieve data security in a website is by signing in to the website. This allows providers to deliver both secure and personalized campaigns which require users to validate themselves before exposing any personal information. As part of the GDPR solution, XMPL provides the ability to define a website that requires the recipient to supply credentials and sign-in upon each entry to the website or XMPL API. See User authentication. ## HTTPS protocol To enhance security, you can use the HTTPS protocol to ensure that communication between the browser and the website is encrypted. When connecting to a website via HTTPS, the website encrypts the session with a Digital SSL (Secure Sockets Layer) certificate. When HTTPS is configured and activated, Circle enforces HTTPS in webpage links, friendly URLs, XMPL APIs and Circle Live Preview. Currently HTTPS is not supported in email, PDF on demand and XMPieRURL content object. If you wish to continue using HTTP in email and PDF on demand in an HTTPS configuration, you can do so by leaving port 80 open. See Circle HTTPS configuration Prerequisites and HTTPS Protocol. ## Export/delete recipient data Circle provides the ability to export or delete recipient data (PII) from Circle 2G projects. PII is found in several places, such as data source recipient list tables and tracking data. (Circle 1G is deprecated and there is no GDPR support in uProduce XM.) The export/delete operation can be performed for all projects within a single uProduce account, or on a project by project basis. For details, see Exporting/deleting recipient data. To use this feature, you need to specify the recipient key (for a remote data source) or some other identifying field name and value. When performing the export/delete operation, the search is performed in the recipient table of the data source currently selected in the Master list. | | Data source currently selected in the Master list | | --- | --- | | | Recipient table currently selected in the Master list | | | Additional data source | This means: - Single recipient table The search is performed in the recipient table (see B above) currently selected in the Master list. All other recipient tables of the current data source are not included in the search. All PII must be consolidated into 1 recipient table in a data source (see A above). - Unused data sources All other data sources which are not currently selected in the Master list are not included in the search. (These can be seen in the project’s Library>Data Sources page.) - Additional data sources Additional data sources (see C above) are never included in the search. Since Circle never writes to additional data sources, we consider them static information which is unlikely to include PII. If your usage differs from this and you need to export/delete from additional data sources, it is your responsibility to do so. - Remote data sources Circle does not delete/export recipient data from remote data sources. The management of recipient data in remote data sources is your responsibility. It does, however, delete/export the tracking data associated with the recipient. The tracking data typically resides on the uProduce server. ### Best practices - Never have more than 1 table which includes PII in any data source. Store all PII in a single table in a data source. - Never keep any data source with PII unless it is selected in the Master list. - On uploading a replacement data source, remember to delete the old data source. - On duplicating a project from one uProduce account to another, never copy the Master list data sources. It is not good practice to copy PII between uProduce accounts. In addition, the export/delete operation can be performed within the scope of a single uProduce account. ## Permanent and non-permanent data sources All data sources uploaded via Circle or using the Circle API are marked as permanent. This means that they have no expiration date and therefore are not deleted by the automatic deletion mechanism of uProduce. Circle data sources are set as permanent because the lifespan of Circle projects typically lasts longer than 30 days. Circle provides the ability to manually delete data sources you no longer require (from the project’s Library>Data Sources page). Best practices - Remember that management of unused/old data sources with PII is your responsibility and can be done from the project’s Library>Data Sources. - Never keep any data source with PII unless it is selected in the Master list. - On uploading a replacement data source, remember to delete the old data source. ## Sample recipients Sample recipients are those recipients which are selected in the Sample Recipient wizard to be used to showcase your project. Sample recipient data is stored on the cloud and is viewed by others when previewing the project. Therefore, never select a real recipient (with PII) for use as a sample recipient. Instead, create sample recipients with fake data and choose them as sample recipients to showcase your projects. ## Template recipient list The Master list of a Template project is copied to each of its instances. Therefore, never include real recipient data (with PII) in a Template’s master list. Instead, include only sample recipients with fake data in the Master list. In addition, if you convert a successful project to a template, remember to replace the recipient list (with PII) with fake data. ## Automated decision processing Circle automation includes features such as event-based automation, time-based scheduling, and plan filters. EU citizens have the right to access information about the reasoning behind any decisions taken by automated means. An individual can give written notice asking you not to make any automated decisions using their personal data and can ask you to reconsider a decision taken by automated means. In such cases, retrieving, explaining and changing automated decisions in your projects is your responsibility. #### Exporting/Deleting Recipient Data # Exporting and deleting recipient data The export/delete operation allows you to export/delete data and tracking data of a specific recipient. The operation can be performed for all projects within a single uProduce account, or on a project by project basis. The export and delete recipient operations are especially useful for customers who require GDPR compliance. However, the export operation is a powerful tool for all customers. The exported information can be used to trace all the specific recipient’s choices and behaviors over time and covering multiple projects. The output is in JSON format which can be imported into other tools for deeper analysis or visual presentations. When using the export/delete operation for GDPR, it is imperative that you read Circle and GDPR to understand the scope of the operation and for important facts. For example, in some cases you are responsible for performing part of the task such as deleting the recipient when the recipient is stored on a remote data source. ## Export/delete recipient data from a single project - From the **File** menu, select **Open/Organize**, or use the search to find the specific project.   - In the **My Projects** tab, hover over the project, click the menu icon  and select  **Manage Recipient**. The **Managed Recipient** dialog box opens. - In the **Recipient** row, specify the information which identifies the recipient: - For a remote data source, specify the remote data source recipient key value. - For a local data source, select the field name (e.g., email) and type the recipient’s value (e.g., joe.smith@abc.com) - Select **Export** to export the recipient data, or **Delete** to delete the recipient data. - In the **Comment** field it is recommended that you include the email of the person who requested the export/delete operation. This comment is included in the email which is sent to you some time later, when the operation completes. - Click **Export/Delete Recipient Data**. Once the request is completed you will receive an email from Circle notifying you if the process had succeeded or failed. When exporting recipient data, a link to download the recipient data is included in the notification email. This link is valid for 7 days only, so make sure to forward the link to the data controller who requested the operation. The data controller can download and view the data in a text editor or online viewer, such as JSON viewer. **Important:** In some cases, you are responsible for performing part of the task (e.g., delete from a remote data source). For the scope of the delete/export operation and other important GDPR facts, see Circle and GDPR. ## Export/delete recipient data from all projects of an account - Click **File > Account > Account - Manage Recipient**. The **Manage Recipients: Connect** dialog box opens. - From the **uProduce System** list, select the uProduce system. The system begins the connection process. A green checkmark indicates that the system was successfully connected. - From the uProduce Account list, select the uProduce account from which the recipient will be deleted or exported. Available uProduce accounts are determined by your uProduce system credentials. Only those uProduce accounts accessible by the specified uProduce credentials are displayed in the list. - Click **Next**. The **Manage Recipient: Scope and Action** dialog box opens. The Scope field indicates your selections from the previous dialog box. - In the **Recipient in Data Source** section you have the option of searching remote and/or local data sources. Specify the information which identifies the recipient: - In the** Remote DS** row, specify the remote data source recipient key value. - In the **Local DS row**, type the field name (e.g., email) and type the recipient’s value (e.g., joe.smith@abc.com) - Select **Export** to export the recipient data, or **Delete** to delete the recipient data. - In the **Comment** field, type text. It is recommended that you include the email of the person who requested the export/delete operation. This comment is included in the email which is sent to you some time later, when the operation completes. - Click **Export/Delete Recipient Data**. Once the request is completed you will receive an email from Circle notifying you if the process had succeeded or failed. If there are many projects in the specific uProduce account, it may take a few minutes to complete the operation. When exporting recipient data, a link to download the recipient data is included in the notification email. This link is valid for 7 days only, so make sure to forward the link to the data controller who requested the operation. The data controller can download and view the data in a text editor or online viewer, such as JSON viewer. - **Important:** In some cases, you are responsible for performing part of the task (e.g., delete from a remote data source). For the scope of the delete/export operation and other important GDPR facts, see Circle and GDPR. --- # Knowledge Base Documentation ### Basics # Basics #### Welcome to XMPie Knowledge Base # Welcome to XMPie Knowledge Base The XMPie Knowledge Base offers a wealth of articles to assist you with questions that may arise during your daily work with XMPie products The articles are designed to complement the product documentation. Each article focuses on solving specific issues, helping you fine-tune and optimize your XMPie solutions. - Deprecated/Discontinued Features - Access the latest updates and information on features no longer supported. - Knowledge base articles - Explore a comprehensive library of articles tailored to address common challenges and provide technical guidance.   Additional help resources: - XMPie Help Center - XMPie Campus - XMPie Google Group #### Deprecated/Discontinued Features # Deprecated/Discontinued Features This section lists features/products that have been or are going to be deprecated and discontinued. **Deprecated**: Features that exist in the current release are still supported but are no longer being developed and will no longer be included in future releases. **Discontinued**: Features that are no longer supported. | Feature | Deprecated | Discontinued | | --- | --- | --- | | XMPie Components | | uStore clearing methods: PayPal Website Payment Standard; Ogone/Ingenico | March 2026 | June 2026 | | VIPP output | January 2026 | January 2027 | | uProduce Monitoring Tool SDK | October 2025 | October 2025 | | ASPX user input control (DUC), for functionality that is already supported in NG products | October 2021 | June 1, 2026 | | uStore's legacy stores | October 2021 | January 1, 2026 | | uImage based on Adobe Illustrator templates | May 2025 | May 2026 | | Output destinations (PersonalEffect) | April 2025 | April 2026 | | Output compression (PersonalEffect) | April 2025 | April 2026 | | Filler Pages (PersonalEffect) | January 1, 2025 | January 1, 2026 | | Legacy PDF output format (PersonalEffect) | January 1, 2025 | January 1, 2026 | | uStore clearing methods: Moneris; PayPal Payflow Pro; Authorize.Net AIM API; No clearing, when set with the credit card collection method. | | September 2024 | | Specialty imaging | | March 2024 | | Create image from Photoshop template (non-package) | | January 15, 2023 (see more info) | | Marketing Console | January 1, 2022 | Q2, 2023 (See Marketing Console Discontinuation FAQ) | | uStore's Coffee skin | | October 2022 | | PostScript Type 1 fonts | | January 2023 | | ADOR Core Server (also called Mini Server) | September 1, 2020 | September 1, 2021 | | uCreate Digital for Web | September 30, 2019 | September 30, 2020 | | uCreate Digital for Email | February 28, 2018 | February 28, 2019 | | Circle 1G | May 31, 2017 | May 31, 2018 | | RURL Wizard | October 31, 2017 | October 31, 2018 | | uCreate XM | October 31, 2017 | October 31, 2018 | | Third Party Components | | Windows Server 2012 R2 | | October 2023 | | SQL Server 2014 | July 2019 | July 2024 | | SQL Server 2012 | July 2022 | October 2023 | | TLS 1.0 and TLS 1.1 | | June 2023 (See TLS 1.2 - minimum TLS protocol) | | Windows 8 | | January 2023 | | Windows 7 | | January 2020 | | Windows Server 2008 R2 | March 31, 2017 | March 31, 2018 | | SQL Server 2008 | | October 31, 2017 | ## Create image from Photoshop template (non-package) A DPKG file is the recommended method for incorporating uImage Photoshop templates into your campaign. A DPKG upload operation automatically uploads all components required to achieve the uImage effect and stores them in the appropriate locations (on the uProduce Server and on all uImage Processing Units). The packed components always include the uImage template and fonts, as well as assets, actions and scripts. ## PostScript Type 1 fonts Following Adobe's announcement of disabling support for PostScript Type 1 fonts in January 2023, XMPie's support for these fonts will end on the same date. See Adobe's Type 1 fonts end of support announcement. ## VBScript Starting with version 9.0, VBScript is no longer supported in the plan. If you have campaigns with a plan which uses VBScript, you will need to convert them to JavaScript prior to upgrading. #### Knowledge base articles # Knowledge base articles ## New & updated 0128 - Troubleshooting uStore Integration with Enfocus Switch 0127 - Get Better AI Answers About XMPie Products 0126 - XMPie Premium Support Policy 0125 - StoreFlow Cloud: System and Client Requirements 0124 - Enabling Advanced Logging in uProduce ## All articles 0004 - Configuring Windows NLB for Web 0005 - Best Practices for Variable Data Print Design 0009 - Fault Tolerant PersonalEffect Platinum Configurations 0019 - Advanced RIP-specific features with XMPie 0022 - Preset uChart Chart Options 0031 - Excluding Folders from Antivirus Scanning on PersonalEffect® Servers 0037 - XMPie Server Maintenance 0051 - Considerations when creating a new store in uStore 0052 - Configuring initial settings after uStore installation 0053 - How to upgrade uStore using a staging server 0055 - Security in uStore 0060 - Adding Charts to uStore Reports 0061 - Creating Custom uStore Reports 0063 - StoreFlow Hosted by XMPie 0064 - Deploying XMPie Server Products on Amazon Web Services 0065 - XMPie uProduce Production Units Report for uProduce with “Volume Pack” license 0066 - XMPie Circle Security 0068 - Running XMPie Server Products Connected to SQL Server with TDE 0069 - Using JDF to Pass Media and Finishing Options to Printers with uStore and FreeFlow Core 0070 - Enabling FTP Passive Mode on IIS for Servers Running on Top of Amazon EC2 0072 - XMPie Server Products - Disaster Recovery 0073 - PCI Compliance & XMPie uStore 0074 - XMPL and Fault Tolerance Troubleshooting 0078 - How to Install SQL Failover Cluster with Shared Storage 0080 - uStore Single Sign-on API Security Issue 0086 - GDPR Guidelines 0090 - Circle HTTPS Configuration Prerequisites 0092 - Circle & uProduce Load Test 0093 - XMPie Support for EFS 0094 - Best practices and guidelines for motion designers 0096 - Cookie restrictions for uStore integrations v12 1.htm 0097 - Standalone Email Editor 0098 - uProduce Usage Model 0099 - Adjusting the Cookie ribbon style in version 13.4 and above 0100 - Generating PDFs with embedded ICC profiles 0101 - Improving Search Performance using Windows Indexing 0102 - Configuring a Password Protected PDF 0103 - Configuring a PDF on Demand Document 0104 - Deploying XMPie server products in Microsoft Azure Cloud 0105 - Deploying XMPie Server Products on Azure Cloud Computing Service 0106 - Retirement of FedEx Web Services 0107 - Setting up FedEx Projects 0108 - Security by Design 0109 - SOC 2 and ISO 27001 0110 - XMPie Support Policy 0111 - uStore 17.2 Security Update 0113 - StoreFlow Cloud Security and Availability 0114 - Enabling HEIC and HEIF Image Formats 0115 - Extending Dynamic Media Selection Attributes 0116 - Configuring Adobe Distiller for Legacy PDF Output Format 0117 - XMPie Email Service Security 0118 - Search Engine Optimization in uStore NG Stores 0119 - Security Headers Hardening 0120 - Creating an Offline AquaBlue Theme 0122 - XMPie Production Units (Clicks) 0123 - uStore: Migrating uProduce Destinations to Post Composition Operations 0124 - Enabling Advanced Logging in uProduce 0125 - StoreFlow Cloud: System and Client Requirements 0126 - XMPie Premium Support Policy 0127 - Get Better AI Answers About XMPie Products 0128 - Troubleshooting uStore Integration with Enfocus Switch ### Circle # Circle #### XMPie Circle Security # XMPie Circle Security **Summary**: This article describes the security measures implemented in Circle. The following security measures have been taken: ## Security audit and procedures - Circle is part of XMPie's SOC 2 adoption over ISO27001. For more details, see SOC 2 and ISO 27001. - XMPie maintains a risk-based assessment security program. The Secure Software Development Life Cycle (Secure SDLC) process is one of the cornerstones of XMPie security program. For more details, see Security by Design. - Periodic penetration tests are performed by independent security teams. - Circle is based on Amazon Web Services (AWS) infrastructure and services, which are PCI Level1 compliant. For further information, see https://aws.amazon.com/security/. - All communication is done using Transport Layer Security (TLS 1.2 is the successor of SSL). - Web Application Firewall (WAF) – Circle utilizes Imperva WAF (Web Application Firewall) to provide an additional layer of protection for web applications. Imperva WAF protects against common web-based attacks and OWASP Top 10 vulnerabilities including: - SQL injection attacks - Cross-site scripting (XSS) - Distributed Denial of Service (DDoS) attacks - Bot mitigation and automated threat prevention - Zero-day attack protection - API security and protection The WAF continuously monitors HTTP/HTTPS traffic between web applications and the internet, filtering out malicious requests and allowing legitimate traffic to pass through, ensuring application availability and data protection. - XMPie has restricted access to the AWS servers to several exclusive employees; access can be given only by XMPie. - The system is monitored 24/7 by the XMPie IT group. ## Personal Identifiable Information (PII) and privacy - Circle is fully compliant with General Data Protection Regulations (GDPR). For more details, refer to GDPR Guidelines for XMPie Products. - Personal Identifiable Information (PII) contained in the data source is passed to the cloud in several cases: - Production and processing purposes. All information is deleted shortly after usage, according to GDPR requirements. Examples: Circle Analytics list reports and email mass production. - User-selected sample recipients, used for preview options. Since the details of sample recipients are stored on the cloud, for security reasons fake sample recipients only should be used. - Cloud Tracking events are distributed to the Circle Cloud for event-filtering and analytic purposes, but do not contain any recipient information short of the recipient key. - In all other cases, all ADOR information is stripped out before leaving the LAN. - A multi-tenant security methodology that isolates customers is used, enforced by our Data Access Layer (DAL) and database structure. - Each of the cloud servers is isolated in separate security groups, virtually creating a firewall between each component of the system. ## Data backup and retention The following describes Circle’s data backup and retention practices: - Hourly backups with point-in-time recovery - Data is retained for a period of 35 days - Backups are additionally replicated to a secondary geographic region (Paris) and retained there for one month ## Architecture and system policies - The on-premises administrator selectively picks which Circle subscription should have access to uProduce, others are firewalled out.  - Uninstalling the Circle Agent (located on the premises) blocks all communication between the Circle cloud and uProduce. - No inbound communication port needs to be opened in the on-premise firewall. Only outbound port 443 is used, which is commonly open in firewalls. If you wish to open outbound port 443 to specific hosts only, use these addresses: - eu.xmcircle.com - eu-west-1.queue.amazonaws.com - swf.eu-west-1.amazonaws.com - Role-based security is used for subscription users as well as for internal XMPie cloud administrators. - Passwords are enforced by password policy. - Sessions and tokens are time bound.   Created by: Yaron Tomer, updated by Nahum Cohen on January, 2026 #### XMPL and Fault Tolerance Troubleshooting # XMPL and Fault Tolerance Troubleshooting **Summary**: The document aims at providing answers to problems related to fault tolerance, such as adding and removing XMPL servers, and general XMPL related issues, such as failure of creation and deletion of websites on a server. **Audience**: This document is intended for XMPie support personnel. Click here to read this article.   Created by: Keren Dahan, Galit Zwickel, Rafael Moreno, last updated: May 18, 2016 #### Circle HTTPS Configuration Prerequisites # Circle HTTPS Configuration Prerequisites ## Overview When using HTTPS (Hyper Text Transfer Protocol), communication between your browser and the website is encrypted. When a user connects to a website via HTTPS, the connection between the web browser and the server is secured. HTTPS is often used to increase online security. A good step towards GDPR compliance is protecting your PURLs by using an SSL certificate and sending data over an encrypted connection. In Circle: - HTTPS is implemented on a project level. - HTTPS affects both managed and custom websites. - XMPL version 2.2 or higher is required. - SSL certificates must be installed on the web server. - HTTPS is supported in a friendly URL only if the recipient key is placed after the domain (suffix). - You must perform several steps (described in this article) to complete the HTTPS setup. ## Scope When HTTPS is configured and checked in the Website settings page, Circle enforces HTTPS in webpage links, friendly URLs (suffix only), XMPL APIs and Circle Live Preview (from the diagram). In an HTTPS configuration there is no automatic redirection from HTTP to HTTPS. However, you can add IIS HTTP Redirect module to HTTPS. ## Configuration steps Perform once for all projects/websites: - On the IIS, install the SSL certificate for the default website for XMPL REST API (with the domain name). See Installing an SSL certificate in IIS. - If the domain name (in step 1) is not set as an external address in XMPL, repair the XMPL and set the domain name as an external address. Perform for each project/website: - You can decide between two options for each project: - Use the domain set in step 1 above, in which case you do not need to install another certificate. - Use a new domain, in which case you need to install a new SSL certificate for the new domain on the default website. If you select this option and install multiple SSL certificates for different domains on the same IIS website, select the “Require Server Name Indication” checkbox. Note that there is no need to reinstall XMPL. - In the Circle UI **Website** settings page, select the **Use HTTPS** checkbox. - Click the **Download**  icon to download the new configuration file. - Copy the new configuration file to the site folder. If there is an existing file, replace it with new file. - In the Circle UI, set the friendly URL to work with the relevant domain. ## Important - HTTPS cannot work with an IP, it can only work with a domain name. - On duplicating a project, HTTPS must be configured after creating the website since the website is not copied. - When creating an instance from a Circle template, if the template's website is configured to use HTTPS, the instance will also use HTTPS. - HTTPS is supported in a friendly URL only if the recipient key is placed after the domain (suffix). - In a cluster configuration, the SSL certificate is installed on the load balancer. #### Circle & uProduce Load Test # Circle & uProduce Load Test **Summary**: This article describes tests that were carried out to verify that Circle and uProduce can handle an expected load of 600 orders per day (20 days in a month) = 12,000 instances per month from about 120 templates. **Audience**: XMPie internal Click here to read this article.   Created by: Batyah Rubin, last updated: November 19, 2018 #### Standalone Email Editor # Standalone Email Editor The standalone mode of the email editor enables you to edit existing HTML and text documents. You can integrate the editor in any application using an iFrame. ## Limitations - There is no preview option in the editor, so you can preview documents only from outside the editor. - There is no option to create new documents, only to edit exiting ones. - There is no code button in the editor, so you can only work in design mode. - It is possible to use the standalone mode only in an iFrame, not as a separate window or popup. - The standalone mode should not be opened simultaneously with Circle in the same browser. This will cause the token in the editor to expire after 15 minutes (see Authentication). ## Integration Follow these steps to use the editor in standalone mode:   - Log in to Circle using the API (https://eu.xmcircle.com/CloudAPI/v1/system/login) - POST request: https://eu.xmcircle.com/CloudAPI/v1/system/login   - Set the following body:  **{ " UserName ": "USER_NAME", " UserPassword ": "USER_PASSWORD" } - Use the value returned by the call as the circle_token. - Call the following POST request: https://eu.xmcircle.com/cloudAPI/v1/{{subscription}}/projects/{{project}}/email/editor/singleSignOnUrl?securityToken={{circle_token}} - Set the correct subscription and project ID in the URL. - circle_token – a token received in the login call (URL encoded). - Set the following body with HTML or text document GUID { "DocumentID": "DOCUMENT-GUID" } - Use the URL returned by the last API call as the “src” of the email editor iFrame.   Notes:** - Check our HTML example: EmailEditorStandAlone.html - You can handle authentication issues by catching an event in the iFrame parent (see Authentication). ## Additional information The following is an example of a URL returned in the API, that opens the email editor as standalone:   https://2g.xmcircle.com/#!/editor-modal/{subscriptionId}/{projectId}/?docId={docId}&docType={docType}&token={token}   This URL includes path params: - subscriptionId - projectId This URL includes list of query params: - docId – ID of selected document - docType – type of selected document - token - token for getting access to the email editor ## Authentication If the application is idle for 3 consecutive hours, then the token expires. When the token expires, the application redirects to the Circle login page. The email editor sends an event to the parent window. This event is sent by postMessage (‘message’). The message inside the event is {isExpiredToken: true}. To catch this message use addEventListener inside the parent window.   window.addEventListener('message', function(event) {         if (event.data.isExpiredToken) {           // create new url for email editor standalone         }     })   If you open the link 15 minutes after receiving it, the token will have already expired. Nothing will be shown on the screen and you will need to create a new API request and get a new URL.    If the user clicks on the save button and the token had already expired, the application will redirect to the login page.   If the user opens the standalone email editor and the Circle email editor together, the token for the standalone email editor will expire after 15 minutes. #### Configuring a Password Protected PDF to work with HTTPS # Configuring a Password Protected PDF to work with HTTPS The **Password PDF Protection** option in Circle is hidden by default. If you wish to enable it, contact Support. If you wish your protected PDFs to be secured via HTTPS, you must configure an SSL certificate on the XMPL and uProduce servers, as described below. ## uProduce - Install a valid SSL Certificate on the uProduce server from a Public (Certificate Authority) provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - In the uProduce dashboard, select the **Settings** tab > **Proxy Configuration**, and set the uProduce domain in the **Internal Address** field. - Make sure that both domain addresses (internal and external) are set to be HTTPS. - Make sure uProduce HTTPS URL can be accessed from XMPL server. ## XMPL - Install a valid SSL Certificate on XMPL server from a Public CA provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - Install the latest XMPL version. - During the installation, make sure to use the same uProduce **InternalAddress** (the one that you've set in step no. 2 above for uProduce). - During the installation, make sure to use the XMPL external address with the domain name address (the one that you've set in step no. 1 of this section) - XMPL will update the Helicon file automatically using the external and internal address. ## Circle ### New websites Enable HTTPS for the Circle project. - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. ### Existing websites If you wish to transfer existing sites to HTTPS, you need to enable HTTPS for the Circle project as follows: - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. - In the **General Configuration** section > **Configuration File**, download the new **xmpcfg.js** file. - Replace the existing **xmpcfg.js** file in the website folder on the XMPL server with the new configuration file.   Created by: Mohammad Mansour, updated February 2025 ### Configuration # Configuration #### Configuring Windows NLB for Web Servers # Configuring Windows NLB for Web Servers **Summary**: This article gives step-by-step explanation on how to setup Network Load Balancing (NLB) using Windows Server 2003 Network Load Balancing components. **Audience**: XMPie internal Click here to read this article #### Fault Tolerant PersonalEffect Platinum Configurations # Fault Tolerant PersonalEffect Platinum Configurations **Summary**: This article describes the required installation procedures for setting up the following PersonalEffect server configurations: - PersonalEffect Platinum Cluster Fault Tolerant Configuration - PersonalEffect Platinum Site Fault Tolerant Configuration **Audience**: XMPie internal Click here to read this article   Created by: Arik Michaelovich, last updated: May 24, 2012 #### Excluding folders from antivirus scanning on PersonalEffect servers # Excluding folders from antivirus scanning on PersonalEffect servers **Summary**: This article lists the folders to be excluded from antivirus background scans on machines running PersonalEffect Server products. **Audience**: XMPie customers who wish to run antivirus software on PersonalEffect server products. ## Overview Traditional antivirus solutions function by blocking known malware by examining or scanning files as they are written to disk on a computer device. If the file is known to the AV’s database of malicious files, the software prevents the malware file from executing. This increased file I/O can impact the performance on PersonalEffect Server products. It is our recommendation to consider an Endpoint Detection and Response (EDR) solution. EDR is an integrated endpoint security solution that combines real-time continuous monitoring and collection of endpoint data with rule-based automated response and analysis capabilities to detect and respond to cyber threats like ransomware and malware. It works differently than antivirus and should be lightweight in resource consumption. Installing and running antivirus software on the uProduce Server environment can cause significant performance degradation and - in some cases - software failures. To improve performance and avoid unexpected failures, it is recommended to exclude the folders specified in this article from the antivirus scan. ## Folders to exclude from antivirus scan - $:\XMPie\ - XMPieOutput - XMPieTempOutput - XMPieTempStorage - XMPieData* - XMPieAssets* - TempUpload* - $:\XMPLogs\ - $:\Users\\AppData\Local\XMPie\ - $:\Users\\AppData\Local\Temp\ - %systemroot%\System32\MSMQ\ - $:\Program Files\Microsoft SQL Server\ (If you've changed the default location of SQL data and log files, change this path accordingly.) - C:\Windows\System32\msmq\storage\LQS ***** It is not mandatory to exclude these folders. **Notes:** - The "$" sign represents the corresponding drive letter (for example, C, D, etc.). - The tag represents the concurrent user where XMPie applications are installed/running. - The %systemroot% variable does not work as exclusion for some antivirus software. Make sure to spell out the full path name in the antivirus exclusion list. - In order to verify the installation paths of XMPie and Adobe products, you can run the **ServerInfo** utility provided by XMPie support. This utility will provide you the exact installation locations of these product components. Please contact an XMPie support representative for more information. - Some antivirus applications will flag some of the XMPie services as unknown or possibly unwanted processes. If there are problems with the XMPie system after installing the antivirus application, please check that none of the XMPie services are quarantined.   Created by: Arik Michaelovich, last updated by Mohammad Mansour: March, 2024 #### StoreFlow Hosted by XMPie # StoreFlow Hosted by XMPie **Summary**: This article provides information on the StoreFlow product hosted on Amazon Web Service environment. ## Overview XMPie StoreFlow is a turn-key solution for print service providers managing Web-to-print sites and marketing portals. StoreFlow merges XMPie’s powerful Web-to-print capabilities with flexible pre-press automation to provide a complete, out-of-the-box solution with an end-to-end workflow for receiving, processing and producing orders received online.   StoreFlow (hosted) is stored on the web and is practically based on Amazon Web Services (AWS) architecture and technology. Amazon Web Services (AWS) is a cloud computing platform that provides a suite of infrastructure services. Some of its services are currently used by XMPie StoreFlow (hosted) solution. The usage of AWS cloud provides a highly reliable and secured infrastructure for deploying StoreFlow as a web-based application. ## Infrastructure Amazon Web Services (AWS) provide a reliable, secure, and highly performing infrastructure for the most demanding web applications, an infrastructure that matches XMPie StoreFlow solution. It also delivers a scalable cloud computing platform with high availability and dependability. AWS’s data centers are state of the art, utilizing innovative architectural and engineering approaches. ## StoreFlow Cloud Availability XMPie shall use all reasonable commercial efforts to achieve the target infrastructure availability goal of 99.95% uptime twenty-four hours per day, seven (7) days per week (“Service Commitment”) during the subscription term, except during times of system maintenance, as set forth in the table below. ### System Maintenance System Maintenance refers to any systems software or XMPie applications change or update that has the potential to result in an impact or reduction to the resiliency or functionality of the XMPie service. System Maintenance types: - **Planned Maintenance:** Planned maintenance involves any activity where it is anticipated to have interruption to the operational functioning of the XMPie services during US business hours. XMPie will provide subscribers with at least one (1) week posted notification and e-mail notice prior to conducting any planned maintenance with information on the changes and expected downtime, unless the maintenance is performed outside of US business hours (for example, on Sunday). - **Emergency Maintenance:** Emergency maintenance involves any activity where it may or may not be possible to anticipate an interruption to the operational functioning of the XMPie services during US business hours. XMPie will use all reasonable efforts to provide e-mail notification at least twenty-four (24)hours in advance of any Emergency Maintenance, unless the maintenance is performed outside of US business hours (for example, on Sunday). Provided the client purchased the Fault Tolerance offering from XMPie, for services or systems provided to the client, the supplier will ensure the resumption of operations affected by a disruption within 48 hours (Recovery Time Objective). The supplier will back up the service or systems related data on a daily basis (RPO). ## Security Measures XMPie maintains a risk-based assessment security program. The framework for XMPie's security program includes administrative, technical, and physical safeguards reasonably designed to protect the confidentiality, integrity, and availability of Customer Data.   XMPie's security framework covers: Policies and Procedures, Asset Management, Access Management, Cryptography, Physical Security, Operations Security, Communications Security, Business Continuity Security, People Security, Product Security, Cloud and Network Infrastructure Security, Security Compliance, Third-Party Security, Vulnerability Management, as well as Security Monitoring and Incident Response. Security is represented at the highest levels of the company, with XMPie's Vice President/General Manager meeting with executive management regularly to discuss issues and coordinate security initiatives. Information security policies and standards are reviewed and approved by Xerox management at least annually and are made available to all XMPie employees for their reference. - Tenant Isolation – Each StoreFlow customer is logically isolated from other customers. Depending on the service purchased, XMPie may achieve logical isolation by using Amazon Virtual Private Cloud (Amazon VPC). AWS has highly scalable, secure, and reliable infrastructure hosting. **Information about AWS compliance is available here. - The physical security for StoreFlow is handled by the service provider (AWS). AWS has very rigorous security controls protecting its data centers. More details about the AWS data center's physical security are here. - StoreFlow solution supports SSL as a standard security for establishing encrypted connection between a web server and a client browser. - Security Group – Firewall - Amazon EC2 provides a complete firewall solution; every Amazon EC2 instance (virtual machine) is protected by security groups. Security groups provide firewall protection for the running instances. The traffic can be restricted by protocol, by service port, as well as by source IP address. - XMPie utilizes Crowdstrike Horizon – a Cloud Posture Management (CSPM) system. Crowdstrike Horizon has the following capabilities: - Provides discovery and visibility into cloud infrastructure and resources. - Proactively detects threats across the application development lifecycle. - Misconfiguration management and remediation - Eliminates security risks and accelerates the delivery process. - DevSecOps integration - Employs cloud-native, agentless posture management to reduce overhead and eliminate friction and complexity. - Continuous compliance monitoring: Assesses the security of cloud accounts and eliminates compliance violations. - For more information see Falcon Horizon Cloud Security Posture Management. - In addition, CrowdStrike Falcon (EDR) – a lightweight-agent AI-driven endpoint protection platform - offers real-time protection and visibility across the enterprise, preventing attacks on endpoints on or off the network. CrowdStrike Flacon (EDR) provides the following capabilities: - Endpoint Protection: CS Falcon offers real-time protection for endpoints, such as workstations, servers, and laptops. - Next-Generation Antivirus (NGAV). - Endpoint Detection and Response (EDR). - Managed Threat Hunting: CrowdStrike's threat hunting services offer proactive detection and response capabilities. - Cloud-Native Architecture. - For more information see Endpoint Detection And Response (EDR). - XMPie uses CIS Microsoft Windows Server Level 1 Hardened Image - a preconfigured image built by the Center for Internet Security (CIS) for use on Amazon Elastic Compute Cloud (Amazon EC2). It is built to offer an image secured to industry-recognized security guidance running on Amazon EC2. ## Security by Design The XMPie Software Development Lifecycle (SDL) process is the method by which XMPie creates secure products and defines the activities that the product teams must perform at different stages of development (requirements, design, implementation, and deployment). XMPie engineers perform numerous security activities for the Services including: - Internal security reviews before products are launched - Periodic penetration tests performed by independent security teams - Architecture reviews - Secure Software Development Life Cycle (Secure SDLC) is a software engineering culture to unify software development, deployment, security, and operations: - Static Application Security Testing (SAST) - Analyzes source code to identify vulnerabilities in applications before the applications are compiled or deployed. - Dynamic Application Security Testing (DAST) - Identifies vulnerabilities and applications in (web) applications while they are running. - Software Composition Analysis (SCA) - set of tools and practices that enables identification and management of third-party and open-source components in software applications that helps identify and mitigate security vulnerabilities in these components. SCA also uncovers licensing issues of the components. ## XMPie Architecture Depending on the service offering you choose, XMPie's flexible architecture can be tailored to meet your high availability requirements. Please contact our team to learn more about how we can customize the deployment to suit your needs. ### Standard Configuration ### Fault Tolerance Configuration ## Vulnerability Management XMPie maintains controls and policies to mitigate the risk from security vulnerabilities in a measurable time frame that balances risk and the business/operational requirements.   For the XMPie application software, critical software patches are evaluated, tested and applied proactively. For high-risk patches, XMPie will notify customers prior to the application of a patch. ## Penetration Testing XMPie performs application-level penetration tests for major releases or at least once a year. These tests use a combination of manual and automated techniques that complement each other to comprehensively evaluate the security posture of the application against latest threats as well as best practices like OWASP TOP 10 and SANS Top 25. Results of penetration tests are prioritized, triaged and remediated promptly by XMPie’s security team. ## Backup and Recovery StoreFlow environment is fully backed-up by CPM (Cloud Protection Manager by N2W Software). The CPM is an enterprise-class backup and recovery solution for Amazon EC2 environment. The backup policy routine consists of daily snapshots. The following are the data backup and retention practices: - Daily system snapshots are performed - Snapshot data is retained for 14 days (14 generations) - Retention periods can be extended upon customer request ## Operational Monitoring Licensee acknowledges that XMPie may request reasonable information from the licensee for the purpose of facilitating the use of StoreFlow cloud under the hosting service, and that certain applications may be used to retrieve information about StoreFlow cloud 's usage, to maintain compliance with the terms applicable to the use of the hosting service. XMPie uses Amazon CloudWatch - a monitoring and management service which enables application and infrastructure monitoring.  Amazon CloudWatch provides the following capabilities: - Enables to collect and store logs from resources, applications, and services in near real time. - Cross-account observability across multiple AWS accounts which helps monitor and troubleshoot applications that span multiple accounts within a region. - Alarm and automate actions. - For more information see Amazon CloudWatch features. In addition, depending on the service purchased, XMPie may use Datadog observability service, which enables real-time monitoring and log management. Datadog provides the following capabilities: - Determines performance metrics as well as event monitoring for infrastructure and cloud services. - Infrastructure monitoring - provides our team with a single view of our infrastructure (including servers, apps, metrics and other services). - Application Performance Monitoring (APM) - this includes Processes, Windows Services, XMPie Services, AWS integrations, monitors, synthetic tests, Health checks and more. - Alerts based on critical issues. - Automatically collects and analyzes logs, latency and error rate. - For more information see Datadog Solution Brief. XMPie can help with your NOC needs. Depending on the services purchased, XMPie can establish a Network Operation Center (NOC) for 24/7 monitoring and rapid action management. ## Service Exclusions and Limitations Unless Managed Services are involved, the following are limitations of the hosted solution: - No file system access - for security and service experience reasons, XMPie does not support direct access to the file system. This means no bulk uploads of assets, documents, or hot folder import for uProduce and Free Flow Core (FFC), as well as no hot folder output from uProduce or Free Flow Core.   - FTP output is possible but requires FTP server on the client side. There are many caveats in regard to file naming. It requires scripting license in Free Flow Core (FFC). The only automation out of FFC is to supported in Xerox printers using (depreciated by Xerox) FFC Cloud Print tool installed locally in client location. Only FFC automation is via uStore.   - No operating system access - for security and service experience reasons, XMPie does not support direct access to the operating system. Meaning, no Remote Desktop Connection (RDC) capabilities provided to the client.   - No direct SQL server database access - this means no automation or scripting capabilities, even when upgrading to full SQL license. There is a Professional Service plugin that can provide some access to update a database via flat file. This requires user intervention and cannot be scheduled or automated.   - Customers are solely responsible for ensuring the data they host on the site does not trigger malicious content flags. This responsibility is continuous and ongoing, extending beyond the initial configuration of a store/domain. Should their store/domain become flagged as malicious weeks or months after setup, the onus remains on the customer to actively monitor their data and take appropriate remedial action. If a customer's domain triggers a malicious content flag, XMPie may need to take temporary measures to mitigate the risk, potentially including taking the store(s) offline. This action would be taken solely to protect the platform and its users and would be communicated to the customer beforehand. ## StoreFlow Private Cloud Resource Provisions (AWS Instance) StoreFlow environment is currently offered in two configurations in US-East (N.Virginia) and EU-West (Ireland) AWS regions: - StoreFlow - StoreFlow Pro StoreFlow runs on top of M5 family instance types from AWS. This family includes the M5 instance types and provides a balance of compute, memory and network resources. The main features for M5 instances are: - Up to 3.1 GHz Intel Xeon Platinum 8000 series processor (Skylake-SP or Cascade Lake) with new Intel Advanced Vector Extension (AVX-512) instruction set. - Provisioned IOPS (SSD) volumes, EBS-optimized for fast I/O performance. - Support for Enhanced Networking. - Balance of compute, memory, and network resources. The table below represents the server’s specifications for each of the StoreFlow packages. These are the minimum requirements with the corresponding Amazon EC2 instance types. | Package | AWS Instance | vCPU | RAM (GiB) | | --- | --- | --- | --- | | StoreFlow Backend Server | M5.xlarge | 4 | 16 | | StoreFlow Pro Backend Server | M5.2xlarge | 8 | 32 | | StoreFlow Front End Server | T3.medium | 2 | 4 | | StoreFlow Pro Front End Server | T3.large | 2 | 8 | Notes: ** - XMPie  will alert the customer ahead of time when adding storage is needed. At the time of adding additional storage, XMPie will bill for the incremental additional storage. - Subject to the service purchased, XMPie will use the appropriate SQL server that fits the system/service requirements. - The information above can vary, and it is true as of the last review date of this document.   Last reviewed: June 2025 #### Deploying XMPie Server Products on Amazon Web Services # Deploying XMPie Server Products on Amazon Web Services **Summary**: This article lists the main resource requirements and cost considerations for running XMPie PersonalEffect Server products on Amazon Web Services infrastructure. **Audience**: Customers who wish to host their servers on Amazon EC2. ## Overview This article lists the main resource requirements and cost considerations for running XMPie PersonalEffect Server products on Amazon Web Services infrastructure. Amazon Web Services (AWS) is a cloud computing platform that provides a suite of infrastructure services. The usage of AWS cloud provides a highly reliable and secured infrastructure for deploying XMPie Server products. ## Infrastructure Amazon Web Services provide a reliable, secure, and highly-performing infrastructure for the most demanding applications, an infrastructure that matches XMPie server products solution. AWS can also deliver a scalable cloud computing platform with high availability and dependability. The diagram below represents a dedicated Virtual Private Cloud (VPC) within Amazon Web Services (AWS) Cloud with Public and Private subnets. Usually, only the Public subnet is exposed to the web while the Private subnet remains secured. We recommend this scenario if you want to run a public-facing web application, while maintaining back-end servers that aren't publicly accessible. A common example is XMPie StoreFlow, with a web server in the Public subnet and the Application/DB server in the Private subnet. The following is a sample configuration of the XMPie StoreFlow deployed on AWS within a VPC with a Public and Private Subnets: The best security practice scenario is to run a public-facing web application server, while maintaining back-end servers that aren't publicly accessible. ### Security XMPie PersonalEffect deployed on AWS is designed to meet security best practices, such as: - **Environment Isolation:** This is achieved by using Amazon Virtual Private Cloud (Amazon VPC). Amazon VPC provisions a logically isolated section of the Amazon Web Services (AWS) cloud. - **Firewall:** Amazon Elastic Compute Cloud (EC2) provides a complete firewall solution; every Amazon EC2 instance (virtual machine) is protected by security groups. Security groups provide firewall protection for the running instances. The traffic can be restricted by protocol, by service port, as well as by source IP address. - **Secure Socket Layer (SSL):** A protocol for data encryption over the Internet is supported. - The physical security is handled by the service provider (AWS). ## Minimal System Requirements XMPie PersonalEffect can be deployed in any of the following configurations: - **XMPie Turn-Key Systems**: A basic XMPie Turn-Key system (excluding Print) includes at least two servers: a single Production Server and a front-end web server. - **XMPie Enterprise Platforms:** The XMPie Enterprise Platforms (excluding Print) includes at least three servers: Director, Extension and a front-end web server. Note that any PersonalEffect System can be deployed on AWS Infrastructure without a front-end Web Server. This configuration is NOT recommended by XMPie since it directly exposes the Application/DB Server to the web. As a minimum requirement, XMPie PersonalEffect runs on top of M5 family instance types from AWS Elastic Compute Cloud (EC2). This family provides a balance of compute, memory and network resources. The main Features for M5 instances are: - Up to 3.1 GHz Intel Xeon Scalable processor (Skylake 8175M or Cascade Lake 8259CL) with new Intel Advanced Vector Extension (AVX-512) instruction set - Support for Enhanced Networking - Balance of compute, memory, and network resources The table below represents the AWS instance’s specifications for each of the PersonalEffect packages (both for Turn-key and Platforms systems). These are the minimum requirements with the corresponding Amazon EC2 instance types. | XMPie Turn‐key Systems | AWS Instance Type | vCPU | RAM (GiB) | | --- | --- | --- | --- | | PersonalEffect Print | M5.large | 2 | 8 | | PersonalEffect Print Pro | M5.xlarge | 4 | 16 | | PersonalEffect StoreFlow | M5.large | 2 | 8 | | PersonalEffect StoreFlow Pro | M5.xlarge | 4 | 16 | | PersonalEffect TransMedia | M5.large | 2 | 8 | | PersonalEffect TransMedia Pro | M5.xlarge | 4 | 16 | | | | | | | XMPie Platforms | AWS Instance Type | vCPU | RAM (GiB) | | Enterprise Print - Director | M5.large | 2 | 8 | | Enterprise Print - Extension | M5.large | 2 | 8 | | Enterprise Cross Media - Director | M5.large | 2 | 8 | | Enterprise Cross Media - Extension | M5.xlarge | 4 | 16 | | | | | | | XMPie add-on | AWS Instance Type | vCPU | RAM (GiB) | | Front-end Web Server | T3.medium | 2 | 4 | | uProduce 8-Way MI | M5.2xlarge | 8 | 32 | * The information above can vary and it is true as of November 2022. ## Amazon Web Services Cost Details XMPie PersonalEffect deployed on AWS infrastructure includes a few elements (AWS services) to be considered when calculating the total monthly/yearly cost. Amazon Elastic Compute Cloud (EC2) allows you to pay only for capacity that you actually use. In order to fully understand the total cost of any XMPie PersonalEffect package deployed on AWS infrastructure, you should be familiar with all AWS elements and services presented in the following sections. ### Amazon EC2 Reserved Instances Amazon EC2 Reserved Instances (“RIs”) allow you to make a low, one-time payment to reserve instance capacity and further reduce the on-going Amazon EC2 costs. Reserved Instances provide the ability to maximize your level of savings by purchasing the Reserved Instance that meets your business’s needs. There are various Reserved Instance types. Instance types comprise of various combinations of CPU, memory, storage and networking capacity. For example, m5.large. RIs enable you to balance the amount you pay upfront with your effective hourly price. You can choose between three payment options: All Upfront, Partial Upfront and No Upfront. In this document we only refer to the All Upfront payment option. All Upfront RIs offer the utmost saving of any Reserved Instance type. AWS On-Demand Instances let you pay for compute capacity by the hour with no long-term commitments or upfront payments. Amazon offers significant price breaks for using reserved instances (RI’s) over on-demand instances. ### Amazon EC2 Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. Amazon EC2’s simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. For details, see http://aws.amazon.com/ec2/pricing/ ### EBS Amazon Elastic Block Store (Amazon EBS) provides persistent block-level storage volumes for use with Amazon EC2 instances in the AWS Cloud.  Each Amazon EBS volume is automatically replicated within its Availability Zone to protect you from component failure, offering high availability and durability. Amazon EBS volumes offer the consistent and low-latency performance needed to run your workloads. With Amazon EBS, you can scale your usage up or down within minutes – all while paying a low price for only what you provision. For details, see http://aws.amazon.com/ebs/pricing/ To summarize, with Amazon EBS, you only pay for what you use. ### Elastic IP Address You can have one Elastic IP (EIP) address associated with a running instance at no charge. If you associate additional EIPs with that instance, you will be charged for each additional EIP associated with that instance per hour on a pro rata basis. Additional EIPs are only available in Amazon VPC. To ensure efficient use of Elastic IP addresses, Amazon imposes a small hourly charge when these IP addresses are not associated with a running instance or when they are associated with a stopped instance or unattached network interface. For details, see http://aws.amazon.com/ec2/pricing/ ### Data Transfer Data Transfer pricing is based on data transferred "in" to and "out" of Amazon EC2. Pricing information can be found at https://aws.amazon.com/ec2/pricing/on-demand/ ### Amazon Simple Storage Service (S3) Amazon S3 can be used alone or together with other AWS services such as Amazon Elastic Compute Cloud (Amazon EC2). Amazon S3 provides cost-effective object storage for a wide variety of use cases including cloud applications, backup and archiving and disaster recovery. For details, see http://aws.amazon.com/s3/ Amazon S3 can be used for backup AWS EC2 running instances by creating snapshots into S3. ### AWS Simple Monthly Calculator You can estimate your costs by using AWS Simple Monthly Calculator. The calculator is a JavaScript-based tool that allows you to calculate your monthly cost for using Amazon EC2, Amazon S3 and more. For details, see http://calculator.s3.amazonaws.com/index.html ## Durability and Availability XMPie PersonalEffect systems deployed on AWS infrastructure are mainly based on top of AWS Elastic Compute Cloud (EC2) service. The service runs within Amazon’s proven network infrastructure and data centers. Amazon Web Services offer a highly reliable environment by using the Elastic Compute Cloud (EC2). Amazon EC2 is a web service that provides resizable compute capacity in the cloud. The Amazon EC2 Service Level Agreement commitment is 99.95% availability for each Amazon EC2 Region.   Created by: Arik Michaelovich, updated by Mohammad Mansour on July, 2022 #### Running XMPie Server Products Connected to SQL Server with Transparent Data Encryption (TDE) # Running XMPie Server Products Connected to SQL Server with Transparent Data Encryption (TDE) **Summary**: This article describes how to encrypt sensitive data in the database and protect the keys that are used to encrypt the data with a certificate using Transparent Data Encryption (TDE). TDE performs real-time I/O encryption and decryption of the data and log files. **Audience**: XMPie customers and database administrators who wish to run XMPie Server products connected to an encrypted SQL Database. ## Overview Transparent Data Encryption (TDE) encrypts SQL Server Database data files, known as encrypting data at rest. You can take several precautions to help secure the database, such as designing a secure system encrypting confidential assets and building a firewall around the database servers. However, in a scenario where the physical media (such as drives or backup tapes) are stolen, a malicious party can simply restore or attach the database and browse the data. One solution is to encrypt the sensitive data in the database and protect the keys that are used to encrypt the data with a certificate. This prevents anyone without the keys from using the data. TDE performs real-time I/O encryption and decryption of the data and log files. The encryption uses a database encryption key (DEK), which is stored in the database boot record for availability during recovery. The DEK is a symmetric key secured by using a certificate stored in the master database of the server, or an asymmetric key protected by an EKM module. TDE protects data "at rest", meaning the data and log files. It provides the ability to comply with many laws, regulations, and guidelines established in various industries. This enables software developers to encrypt data by using AES and 3DES encryption algorithms without changing existing applications. ## About TDE TDE enables you to encrypt an entire database. TDE is completely transparent to the application and requires no implementation of code changes. TDE requires SQL Server Enterprise edition. It is not available for SQL Server Standard edition. TDE is also available for SQL Server Datacenter edition. Encryption of the database file is performed at the page level. The pages in an ecnrypted database are ecnrypted before they are written to the disk and decrypted when read into the memory. TDE does not increase the size of the encrypted database. ### Information Applicable to the SQL Database When using TDE with SQL Database, the server-level certificate stored in the master database is automatically created for you by the  SQL Database. ### Information Applicable to the SQL Server When enabling TDE, you should immediately back up the certificate and the private key associated with the certificate. If the certificate ever becomes unavailable or if you must restore or attach the database on another server, you must have backups of both the certificate and the private key, otherwise you will not be able to open the database. The encrypting certificate should be retained even if TDE is no longer enabled on the database. Even though the database is not encrypted, parts of the transaction log may still remain protected, and the certificate may be needed for some operations until the full backup of the database is performed. A certificate that has exceeded its expiration date can still be used to encrypt and decrypt data with TDE. ### Encryption Hierarchy The following illustration shows the architecture of TDE encryption. Only the database-level items (the database encryption key and ALTER DATABASE portions) are user-configurable when using TDE on the SQL Database.   **Important:** TDE does not provide encryption across communication channels. For information on how to encrypt data across communication channels, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager). In addition, TDE protects the data at rest, but an authorized user such as a security administrator or a database administrator can access the data in a TDE-encrypted database. To prevent an SA or DBA from accessing selected parts of the data, you need to use application-level encryption. This is beyond of the scope of this document. ## Using TDE To use TDE, follow these steps using Transact-SQL. **Note:** From this point forward, the instructions assume that you have completed the XMPie Server products installation process. To access SQL Server Management Studio: - On the taskbar, click **Start**, point to **All Programs**, point to **Microsoft SQL Serve**r, and then click **SQL Server Management Studio**. The **Connect to Server** window is displayed. - Enter/select the SQL Server credentials and click **Connect** to login to the SQL Server Management Studio. - In the **Object Explorer** on the left pane, connect to an instance of the Database Engine. - On the Standard bar, click **New Query**. - Copy and paste the following example into the query window and then click **Execute**. The following example illustrates encrypting the XMPDB2 database using a certificate installed on the server named MyServerCert. -- Create a database master key and a certificate in the master database. USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '*rt@87(RT&Yask6'; GO CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'Certificate to protect TDE key' GO -- Create a backup of the server certificate in the master database. -- The following code stores the backup of the certificate and the private key file -- (C:\Program Files\Microsoft SQL Server\Backup\). BACKUP CERTIFICATE MyServerCert TO FILE = 'MyServerCert' WITH PRIVATE KEY ( FILE = 'SQLPrivateKeyFile', ENCRYPTION BY PASSWORD = '*rt@87(RT&Yask6' ); GO   -- Switch to the new database you would like to encrypt. -- Create a database encryption key, that is protected by the server certificate in the master database. -- Alter the new database to encrypt the database using TDE. USE XMPDB2; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; GO ALTER DATABASE XMPDB2 SET ENCRYPTION ON; GO **Note:** Make sure to repeat the above Transact-SQL script in order to encrypt the remaining XMPie databases. The following example illustrates encrypting the DBname-to-Encrypt database using a certificate installed on the server named MyServerCert. USE DBname-to-Encrypt; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; GO ALTER DATABASE DBname-to-Encrypt SET ENCRYPTION ON; GO **Caution**: Backup files of databases that have TDE enabled are also encrypted by using the database encryption key. As a result, when you restore these backups, the certificate protecting the database encryption key must be available. This means that in addition to backing up the database, you have to make sure that you maintain backups of the server certificates to prevent data loss. Data loss will result if the certificate is no longer available. Most of the information in this article has been taken from Microsoft's MSDN library. For further reading regarding Transparent Data Encryption (TDE), refer to: https://msdn.microsoft.com/en-us/library/bb934049.aspx.   Created by: Arik Michaelovich, last updated: November 2, 2015 #### Enabling FTP Passive Mode on IIS for Servers Running on Top of Amazon EC2 # Enabling FTP Passive Mode on IIS for Servers Running on Top of Amazon EC2 **Summary**: This article explains how to enable FTP passive mode on IIS for servers running on top of Amazon EC2. Using the File Transfer Protocol (FTP) service on a server behind Amazon Web Services (AWS) infrastructure may create some challenges due to the way FTP works. To avoid these challenges, FTP also supports a “passive” operational mode in which the client initiates the data channel connection. To better secure the server, you can restrict the port range used by the FTP service, and then create a firewall rule that allows FTP traffic only on the allowed port numbers. The following procedure provides the steps for configuring the FTP service on Internet Information Services (IIS). To configure the FTP service to use only a limited number of ports for passive mode FTP: - Open IIS Manager. - In the **Connections** pane, click the top node of your server. - In the details pane, double-click **FTP Firewall Support**. - Enter the range of port numbers that you want the FTP service to use. For example, 41000-41099 allows the server to support 100 passive mode data connections simultaneously. - Enter the external IPv4 address (Public IP address) through which the data connections arrive. - In the **Actions** pane, click **Apply** to save your settings. - From an administrative command prompt, restart the Microsoft FTP Service to make sure all the changes took effect: net stop ftpsvc net start ftpsvc **Important:** You must also create a firewall rule on the AWS environment (Security Group) to allow inbound connections on the TCP ports you configured in the above procedure. Please work with your system/network administrator in order to allow it.   Created by: Arik Michaelovich, last updated: May 9, 2016 #### XMPie Server Products - Disaster Recovery # XMPie Server Products - Disaster Recovery **Summary**: Disaster Recovery (DR) is the act of recovering a software system after the occurrence of an unforeseen event that could severely impact the software’s ability to operate effectively, thus affecting the business. Whilst there are three stages of disaster recovery, this article discusses only corrective measures. Preventative and detective measures are outside the scope of this document. **Audience**: XMPie employees, channel staff and customers involved in the disaster recovery planning of XMPie installations. The article aims at answering questions about the setup of DR and presents any special actions that should be made. Click here to read this article.   Created by: Arik Michaelovich, last updated: March 7, 2016 #### How to Install SQL Failover Cluster with Shared Storage # How to Install SQL Failover Cluster with Shared Storage **Summary:** This document describes how to install SQL 2014 Standard Edition in a failover configuration. This configuration uses SQL servers in an active/passive mode. **Audience**: XMPie customers who have SQL server Standard Edition and wish to create a failover SQL cluster configuration. **Important:** It is the full responsibility of the IT department to configure the SQL failover configuration. XMPie does not provide support for this process, nor is XMPie liable in any way for its results. ## Overview **Windows Server Failover Clustering** (WSFC) is a high-availability and disaster recovery solution designed to increase the uptime of SQL Server instances. A cluster is a group of independent servers, called nodes, that work together to increase the availability of applications and services that run on the cluster. One is identified as the **active node**, on which a SQL Server instance is running the production workload, and the other is a passive node, on which SQL Server is installed but not running. If the SQL Server instance on the active node fails, the passive node becomes the active node and begins to run the SQL Server production workload with minimal failover downtime. This process is known as **failover**. ### What Clustering Can Do Clustering is designed to improve the availability of the physical server hardware, operating system, and SQL Server instances but excluding the shared storage. Should any of these aspects fail, the SQL Server instance fails over. The other node in a cluster automatically takes over the failed SQL Server instance to reduce downtime to a minimum. Additionally, the use of a Windows Failover Cluster can help reduce downtime when you perform maintenance on cluster nodes. For example, if you need to update hardware on a physical server or install a new service pack on the operating system, you can do so one node at a time. ### Terms and Definitions - **Failover cluster instance:** An instance of a Windows service that manages an IP address resource, a network name resource, and additional resources that are required to run one or more applications or services. Clients can use the network name to access the resources in the group, similar to using a computer name to access the services on a physical server. However, because a failover cluster instance is a group, it can be failed over to another node without affecting the underlying name or address. - **Node:** A Microsoft Windows Server system that is an active or inactive member of a server cluster. - **Cluster resource:** A physical or logical entity that can be owned by a node, brought online and taken offline, moved between nodes, and managed as a cluster object. A cluster resource can be owned by only a single node at any point in time. - **Resource group:** A collection of cluster resources managed as a single cluster object. Typically, a resource group contains all of the cluster resources that are required to run a specific application or service. Failover and failback always act on resource groups. - **Resource dependency:** A resource on which another resource depends. If resource A depends on resource B, then B is a dependency of A. - **Network name resource:** A logical server name that is managed as a cluster resource. A network name resource must be used with an IP address resource. - **Preferred owner:** A node on which a resource group prefers to run. Each resource group is associated with a list of preferred owners sorted in order of preference. During automatic failover, the resource group is moved to the next preferred node in the preferred owner list. - **Possible owner:** A secondary node on which a resource can run. Each resource group is associated with a list of possible owners. Resource groups can fail over only to nodes that are listed as possible owners. - **Quorum mode:** The quorum configuration in a failover cluster that determines the number of node failures that the cluster can sustain. - **Forced quorum:** The process to start the cluster even though only a minority of the elements that are required for quorum are in communication. ### Hardware and Software Requirements The following are the hardware and software requirements for installing the SQL failover cluster. - A fault tolerant domain controller (each controller installed on a separate physical machine) - For the cluster servers: - 2 Windows 2012 R2 servers each hosted on a separate physical machine - At least 50GB of storage per server - Each server should belong to a separate subnet and have additional IPs defined for the network controller - .Net 3.5 installed on each server - A **single** SQL 2014/2016 Standard Edition installer and license - A fault tolerant shared/SAN/NAS storage (min. size 50GB, recommended size 1TB) ### Installation Checklist The following is a checklist of the procedures that need to be taken in order to create the Windows and SQL cluster. Domain Controller (DC) and Windows Cluster Configuration: - Define the DC instance, if you don't have one. - Designate computer names with DNS. - Create a domain user with domain controller permissions to update the DNS of these names. - Define the Windows cluster name and IP as follows: CC_CLUSTER (or choose your own name) – for example 10.33.16.100 - Define the SQL cluster virtual name and IP as follows: DEFAULTSQL (or choose your own name)– for example 10.33.16.101 - Grant CC_CLUSTER full permissions on DEFAULTSQL using advanced properties (ALT+M). - If using file share and a quorum witness file on the DC, **create two shares** **on the DC** with permissions to the SQL domain user. Cluster nodes: - Define the Windows cluster. Set the cluster IP, for example: 10.33.16.100 - In the cluster, set the File Share Witness file to be directed at the shared FS. - Perform custom verification of cluster omitting storage. - After verification succeeds, run the SQL failover installation. - Use a domain user for installing and for running the SQL server (this is necessary to access file/folder shares and change the IP in the DNS). - Set up temp folders to the local server; all other locations should point to **shared storage**. - Upon first server installation, test the connectivity to the DB. - Install an additional SQL server on an additional node/server, with an added node to the failover cluster option. - Provide passwords where needed. - Test the connectivity. ## SQL Failover Architecture The following is the layout of the SQL failover architecture. In this layout one SQL Server is active while the other is inactive (passive). ## Installing Windows Cluster ### Prerequisites - Create a domain user for creating the Windows cluster and installing the SQL. This user needs to have permissions to create and delete child objects. - In the **Active Directory Users and Computers**, assign computer names and IPs to the Windows cluster and the SQL virtual cluster. - In the **Active Directory Users and Computers**, grant the Windows cluster computer full control over the SQL virtual cluster computer. ### Installing the Failover Clustering Feature Being a node of a cluster, the server should first have the Failover Clustering feature installed. - In the **Server Manager** > **Dashboard**, click **Add roles and features** and then click **Next**. - In the **Installation Type** step, choose **Role-based or feature-based installation**, and the click **Next**. - In the **Server Selection** step, click **Next**. - In the **Server Roles** step, click **Next**.   - In the **Features** step, select **Failover****Clustering** and then click **Add****Features**. - Click **Next**, and then **Install**. Click **Close** when the installation is done. - After adding the failover cluster feature, navigate to the Server Manager Tools and select **Failover** **Manager**. ### Installing the Failover Cluster - In the **Server****Manager**, click **Tools** and then select **Failover** **Cluster** **Manager**. - Select **Create****Cluster** to create a cluster with new instances. - In the **Select** **Servers** step, click **Add** and browse the computer names to add instances to the list of clusters. Click **Next**. - In the **Access****Point** **for Administering** **the** **Cluster** step, fill in the cluster name. Click **Next**. - In the **Confirmation** step, click **Next**. - Congratulations! You’ve just created your cluster. You can click **View Report** to check any warning that may have occurred during the cluster creation. Click **Finish**. - Now that the cluster is created, click it’s name in the **Failover Cluster Manager**.Launch the **Quorum Wizard** by right-clicking the cluster name, and selecting **More Actions**> **Configure Cluster Quorum Settings.** - In the **Select Quorum Configuration** step, choose the **Select the quorum witness** option. Click **Next.** - In the **Select Quorum Witness** step, choose **Configure a file share witness**. Click **Next****.** - In the **Configure File Share Witness** step, specify the path to the File Share on your Scale-Out File Server, and click **Next**. - Validate the failover clustering by clicking Validate Configuration. The **Validate a Configuration** wizard opens. Click **Next**. - In the **Select Servers or a Cluster** step, enter the name of the cluster. - In the **Testing Options** step, select **Run only tests I select**, and click **Next**. - In the **Test Selection** step, clear the **Storage** checkbox and then click **Next**. - In the following steps, confirm the validation and ensure that the report is fine. ## SQL 2014 Standard: SQL Server Failover Cluster Installation ### Prerequisites In order to install SQL, you will need to add the .NET 3.5 feature using the Server Manager. Simply select **Add roles and features**, skip through the roles and in the **Features** step select **.NET 3.5**. ### Installation Mount the SQL image and run setup. - Start your SQL 2014 Server installation media and select **Installation**. - Select **New SQL Server failover cluster installation**. - In the **Setup Support Rules** step, click **Ok**. - In the **Product Key** step, provide the product key for your media. - In the **License Terms** step, accept the license agreement, and then click **Next**. - In the **Product Updates** step, click **Next** (if you are not connected to the internet or do not want to perform Windows update, simply click **Next** to continue). - In the **Setup Support Rules** step, wait for the check to complete. Ensure there are no failed tasks. Evaluate the warnings for your environment, and correct if needed. Click **Next **. - In the **Setup Role** step, ensure that **SQL Server Feature Installation** is selected, and click **Next**. - In the **Feature Selection** step, select your required SQL features and then click **Next**. - In the **Feature Rules** step, ensure the feature rule check is complete with no failed statuses. Click **Next**. - In the **Instance Configuration step**, provide network and instance names. The SQL cluster name is **DEFAULTSQL**. **This name will be used as the SQL server name in XMPie installations.** The database instance name is **XMPie (or another name of your choice)**. MS recommends the use of named instances. Click **Next**. - In the **Disk Space Requirements** step, click **Next**. - In the **Cluster Resource Group** step, click **Next**. - In the **Cluster Disk Selection** step, ensure no selection is made since an external file server is being used. Click **Next**. - In the **Cluster Network Configuration** step, enable IPv4 and provide an IP address for this node. Define the two secondary IPs that were defined for the instances. Note that the IPs in the screenshot are for example purposes only. Click **Next**. - MS recommends that you use unique service accounts for each data service. In the **Server Configuration** step, provide service accounts (and Collation, if it differs from the default SQL_Latin1_General_CP1_Cl_AS). The account name users should be domain users with elevated permissions that will grant read/write access to the shared storage/SAN/NAS.** Click Next**. - In the **Database Engine Configuration**, click the **Add Current User** button, and then click the **Data Directories** tab. - In the **Data Directories** tab, define a shared data root directory. You can map a drive letter to the clustered disk for SQL instance content. Consider having different disks for data, log and temp data. For tempDB, use local storage.  Click **Next**. - In the **Error Reporting** step, you can check the sharing error reports with MS. Click **Next**. - In the **Cluster Installation Rules** step, ensure there is no failure of cluster rules. Click **Next**. - In the **Ready to Install** step, confirm the selection. This is your final chance to make any changes before the installation. Click **Install**. - Upon a successful installation, click **Close** to complete the process. In the **Failover Cluster Manager**, this will be reflected in the cluster roles. - To verify successful configuration, open the **SQL Server Management Studio** and check connectivity to database. ## Installing SQL on an Additional Node - Mount the SQL image and run setup. - Start your SQL 2014 Server installation media and select **Installation**. - Click **Add node to an SQL Server failover cluster**. - In the **Cluster Node Configuration** step, click **Next**. - In the **Cluster Network Configuration** step, select two IPs from different network cards. Note that the IPs in the screenshot are for example purposes only. Click **Next**. - Upon receipt of the **Add a Failover Cluster Node** message, click **Yes**. - In the **Service Accounts** step, enter the passwords. Click **Next**. If TempDB was defined on a local server, manually create a duplicate folder under the same path as was defined in the cluster SQL installation. - In the **Ready to Add Node** step, click **Install**. - To verify a successful configuration: - Switch the Windows cluster to the installed node. - Open the **SQL Server Management Studio** and check connectivity to database. ## Failover Licensing The license guide for SQL 2014 Standard: Microsoft SQL Server 2014 Licensing Guide. This Licensing Guide is intended for people who want to gain a basic understanding of how Microsoft® SQL Server® 2014 database software is licensed through Microsoft Volume Licensing programs. **Important:** It is important to stress that the secondary server used for failover support **does not** need to be separately licensed for SQL Server.   Created by: Tal Weinstein, last updated: November 27, 2016 #### Improving Search Performance in the File System Asset Source using Windows Indexing # Improving Search Performance in the File System Asset Source using Windows Indexing **Prerequisite:** PersonalEffect version 11.1 and higher. Currently, the **File System asset source** type, which is not managed by XMPie but rather by the customer, can contain many folders and subfolders in a deep hierarchy. During production, searching for the required files may take a long time, and could thus affect asset-resolving performance. This article raises the possibility of using **Windows Indexing**, when using the File System asset source type, to improve search performance. If you observe poor performance when searching for asset files, it is advisable to use Windows Indexing. Indexing is the process of looking at files on your server and cataloging their information by file name. When you search for files in the server after folders have been indexed, the asset-resolving mechanism looks at an index of terms to find results faster. This mechanism can operate only if the folders are located on a server, and not on a network storage device. **Important!** This feature is relevant only for large file system asset sources, where the search is slow. As a rule of thumb, if the search is under 2 seconds per asset, do not use this option as it may result in performance degradation. ## How to configure Windows Search Indexing - Start **Server Manager**. - Click **Manage**, and then click **Add Roles and Features**. - On the **Before you Begin page**, click Next. - Select **Role-based** or **Feature-based Installation**, and then click Next. - On the **Features** page, select **Windows Search Service**, and then click Next. - On the **Confirmation** page, verify that **Windows Search Service** is listed, then click **Install**. Once the service is enabled, configure each asset folder for which you wish to enable indexing as follows: - Open the **Control Panel** > **Indexing Options**, click **Modify** and add the selected folders. - Make sure to specify the file types that are part of your production which you wish to index, such as JPG, PDF, PNG, EPS, XNIP. This is done in **Advanced Options** window. When you first run indexing, it can take up to a couple hours to complete. After that, indexing will run in the background on your server as you use it, only re-indexing updated data. Once Windows Indexing is configured and enabled for the required file system asset folders, you should now activate this functionality on the uProduce asset source. To do so, in uProduce go to the **Asset Source** window of the campaign, and select the "Use Windows Search Indexing" checkbox. ## More about Windows indexing Search indexing in Windows 10 Troubleshoot Windows Search performance   Created by: Mohammad Mansour, January 2022 #### Configuring a Password Protected PDF to work with HTTPS # Configuring a Password Protected PDF to work with HTTPS The **Password PDF Protection** option in Circle is hidden by default. If you wish to enable it, contact Support. If you wish your protected PDFs to be secured via HTTPS, you must configure an SSL certificate on the XMPL and uProduce servers, as described below. ## uProduce - Install a valid SSL Certificate on the uProduce server from a Public (Certificate Authority) provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - In the uProduce dashboard, select the **Settings** tab > **Proxy Configuration**, and set the uProduce domain in the **Internal Address** field. - Make sure that both domain addresses (internal and external) are set to be HTTPS. - Make sure uProduce HTTPS URL can be accessed from XMPL server. ## XMPL - Install a valid SSL Certificate on XMPL server from a Public CA provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - Install the latest XMPL version. - During the installation, make sure to use the same uProduce **InternalAddress** (the one that you've set in step no. 2 above for uProduce). - During the installation, make sure to use the XMPL external address with the domain name address (the one that you've set in step no. 1 of this section) - XMPL will update the Helicon file automatically using the external and internal address. ## Circle ### New websites Enable HTTPS for the Circle project. - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. ### Existing websites If you wish to transfer existing sites to HTTPS, you need to enable HTTPS for the Circle project as follows: - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. - In the **General Configuration** section > **Configuration File**, download the new **xmpcfg.js** file. - Replace the existing **xmpcfg.js** file in the website folder on the XMPL server with the new configuration file.   Created by: Mohammad Mansour, updated February 2025 #### Configuring a PDF on Demand Document to work with HTTPs # Configuring a PDF on Demand Document to work with HTTPs If you wish your PDF on Demand document to be secured via HTTPS, you must configure an SSL certificate on the XMPL and uProduce servers, as described below. This requires XMPL version 3.3 or higher. ## uProduce - Install a valid SSL Certificate on the uProduce server from a Public (Certificate Authority) provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - In the uProduce dashboard, select the Settings tab > Global Settings, and set the uProduce domain in the **InternalAddress** field. ## XMPL - Install a valid SSL Certificate on XMPL server from a Public CA provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - Install the latest XMPL version. - During the installation, make sure to use the same uProduce **InternalAddress** (the one that you've set in step no. 2 above for uProduce). - During the installation, make sure to use the XMPL external address with the domain name address (the one that you've set in step no. 1 of this section) - XMPL will update the helicon file automatically using the external and internal address. ## Circle ### New websites Enable HTTPS for the Circle project. - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. ### Existing websites If you wish to transfer existing sites to HTTPS, you need to enable HTTPS for the Circle project as follows: - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. - In the **General Configuration** section >  **Configuration File**, download the new **xmpcfg.js** file. - Replace the existing **xmpcfg.js** file in the website folder on the XMPL server with the new configuration file.   Created by: Mohammad Mansour, April 2022 #### Deploying XMPie server products in Microsoft Azure Cloud # Deploying XMPie server products in Microsoft Azure Cloud **Summary**: This article describes how to configure the Azure Cloud service to run XMPie software. **Audience**:  XMPie customers who wish to run XMPie Server products using the Azure Cloud service. Deploying XMPie Server using the Azure Cloud service is similar to deployment in virtual machine environments. However, the Azure Cloud service infrastructure imposes several limitations that should be taken into consideration prior to deploying XMPie products: - Our VM recommendations must comply with Azure's instance specifications. - Each Azure instance must include a dedicated Azure managed disk. - Print production is possible but the network connectivity/bandwidth might be a bottleneck when sending a print job from uProduce to the physical printer. See Virtual machine network bandwidth. - By default, configuration of the Azure network security groups prohibits any traffic. Therefore, the security groups must be set up to use ports that are authorized to access your XMPie server instances. See Create, change, or delete a network security group. - **Notice!** XMPie supports a dedicated Microsoft SQL server installed on an Azure virtual machine. It does not support Azure SQL managed instance and Azure SQL Database. See What is Azure SQL? ## More topics Deploying XMPie Server Products on Azure Cloud Computing Service   Created by: Mohammad Mansour on July 2022 #### Deploying XMPie Server Products on Azure Cloud Computing Service # Deploying XMPie Server Products on Azure Cloud Computing Service **Summary**: This article lists the main resource requirements and cost considerations for running XMPie PersonalEffect Server products on Azure Cloud Computing Service. **Audience**: Customers who wish to host their servers on the Azure Cloud Computing Service. ## Overview Azure Cloud Computing Service is a cloud computing platform that provides a suite of infrastructure services. The usage of Azure Cloud provides a highly reliable and secured infrastructure for deploying XMPie Server products. **Note:** XMPie supports a dedicated Microsoft SQL server installed on an Azure virtual machine. It does not support Azure SQL managed instance and Azure SQL Database. See What is Azure SQL? ## Infrastructure Azure Cloud Computing Service provide a reliable, secure, and highly-performing infrastructure for the most demanding applications, an infrastructure that matches XMPie server product solution. This service can also deliver a scalable cloud computing platform with high availability and dependability. The following is a sample configuration of the XMPie StoreFlow deployed on Azure Cloud Services within a VNet with a public and private subnets: The best security practice scenario is to run a public-facing web application server, while maintaining back-end servers that aren't publicly accessible. ## Security XMPie PersonalEffect deployed on Azure is designed to meet security best practices, such as: - **Environment isolation** – This is achieved by using Azure Private Cloud. - **Firewall** - Azure Firewall provides a complete firewall solution. See What is Azure Firewall. - **Secure Socket Layer (SSL)** - a protocol for data encryption over the internet is supported. - The physical security is handled by the service provider. ## Minimal System Requirements XMPie PersonalEffect can be deployed in any of the following configurations: - **XMPie Turn-Key Systems** – A basic XMPie Turn-Key system (excluding print) includes at least two servers: a single production server and a front-end web server. - **XMPie Enterprise Platforms** – The XMPie Enterprise Platforms (excluding print) includes at least three servers: Director, Extension and a front-end web server. As a minimum requirement, XMPie PersonalEffect runs on top of Dv4 and Dsv4-series. This series provides a balance of compute, memory and network resources. The main features for the series are: - Intel® Xeon® Platinum 8370C (Ice Lake) or the Intel® Xeon® Platinum 8272CL (Cascade Lake) processors, running at 3.4 GHz - Support for Enhanced Networking - Balance of compute, memory, and network resources The table below represents the Azure Computing Series specifications for each of the PersonalEffect packages (both for Turn-key and Platforms systems). These are the minimum requirements with the corresponding Azure Cloud Service instance types. | XMPie Turn‐key Systems | Instance Type | vCPU | RAM (GiB) | | --- | --- | --- | --- | | PersonalEffect Print | D2ds_v4 | 2 | 8 | | PersonalEffect Print Pro | D4ds_v4 | 4 | 16 | | PersonalEffect StoreFlow | D2ds_v4 | 2 | 8 | | PersonalEffect StoreFlow Pro | D4ds_v4 | 4 | 16 | | PersonalEffect TransMedia | D2ds_v4 | 2 | 8 | | PersonalEffect TransMedia Pro | D4ds_v4 | 4 | 16 | | | | | | | XMPie Platforms | Instance Type | vCPU | RAM (GiB) | | Enterprise Print - Director | D2ds_v4 | 2 | 8 | | Enterprise Print - Extension | D2ds_v4 | 2 | 8 | | Enterprise Cross Media - Director | D2ds_v4 | 2 | 8 | | Enterprise Cross Media - Extension | D4ds_v4 | 4 | 16 | | | | | | | XMPie add-on | Instance Type | vCPU | RAM (GiB) | | Front-end Web Server | D2a_v4 | 2 | 4 | | uProduce 8-Way MI | D8ds_v4 | 8 | 32 | The information above can vary and it is true as of July 2022. ## Azure Web Services Cost Details XMPie PersonalEffect deployed on Azure Cloud Services infrastructure includes a few elements to be considered when calculating the total monthly/yearly cost. Azure Cloud Services allows you to pay only for capacity that you actually use. In order to fully understand the total cost of any XMPie PersonalEffect package deployed on Azure Cloud Services infrastructure, you should be familiar with all Azure elements and services: - Sizes for virtual machines in Azure - Azure Cloud Services Reserved Instances - Availability options for Azure Virtual Machines - Azure disks and storage - Virtual networks and virtual machines in Azure - Azure Virtual Machines security - Backup and restore options for virtual machines in Azure   Created by: Mohammad Mansour on July 2022 #### Security by Design # Security by Design **Summary**: This article describes XMPie’s Secure Software Development Life Cycle (Secure SDLC) principles. ## Overview As context, XMPie maintains a risk-based assessment security program. The Secure Software Development Life Cycle (Secure SDLC) process is one of the cornerstones of XMPie security program. The framework for XMPie's security program includes administrative, technical, and physical safeguards reasonably designed to protect confidentiality, integrity, and availability. XMPie's security framework covers Policies and Procedures, Asset Management, Access Management, Cryptography, Physical Security, Operations Security, Communications Security, Business Continuity Security, People Security, Product Security (Secure SDLC), Cloud and Network Infrastructure Security, Security Compliance, Third-Party Security, Vulnerability Management, as well as Security Monitoring and Incident Response. Security is represented at the highest levels of the company, with XMPie's Vice President/General Manager meeting with executive management regularly to discuss issues and coordinate security initiatives. Information security policies and standards are reviewed and approved by Xerox management at least annually and are made available to all XMPie employees for their reference. ## Security by Design The XMPie Software Development Lifecycle (SDL) process is the method by which XMPie creates secure products and defines the activities that the product teams must perform at different stages of development (requirements, design, implementation, and deployment). XMPie engineers perform numerous security activities for the services including: - Internal security reviews before products are launched. - Periodic penetration tests performed by independent security teams. - Architecture reviews. - Implementation of Secure Software Development Life Cycle (Secure SDLC). Secure SDLC is a software engineering culture that unifies software development, deployment, security, and operations by performing the following: - Static Application Security Testing (SAST) - Analyzes source code to identify vulnerabilities in applications before the applications are compiled or deployed. - Dynamic Application Security Testing (DAST) - Identifies vulnerabilities and applications in (web) applications while they are running. - Software Composition Analysis (SCA) - Set of tools and practices that enables identification and management of third-party and open-source components in software applications that helps identify and mitigate security vulnerabilities in these components. SCA also uncovers licensing issues of the components. XMPie is a Xerox company. Therefore, the Xerox policies and procedures apply to XMPie. Read more about Xerox compliance in the following pages: - https://www.xerox.com/en-us/about/security-compliance - https://trust.corp.xerox.com/   Created by: Nahum Cohen on February 2024 #### SOC 2 and ISO 27001 # SOC 2 and ISO 27001 **Summary:** This article addresses XMPie's SOC 2® adoption over ISO27001. The SOC 2 audit testing framework is based on the Trust Services Criteria (TSC), which are used to identify various risks (points of focus) an organization should consider addressing. Based on the TSCs the organization selects to be in scope, the third-party compliance and audit firm evaluates whether the organization has the appropriate policies, procedures, and controls to manage the identified risks effectively. Over the past years, an increasing number of companies in Europe have required SOC 2 reports so they can determine whether service providers have the necessary controls in place along the supply chain to protect the data of all parties involved. The SOC 2 report is more in-depth than an ISO 27001 certificate. With the result of a SOC 2 assessment being an extensive attestation report up to 150+ pages in length, it tends to give a company’s partners and clients a higher level of detail about their security posture compared to the result of an ISO 27001 audit, which is simply a one-page certification letter. This is one of the leading reasons why the cybersecurity compliance norm in Europe is beginning to welcome SOC 2 as an excellent supplemental security framework. XMPie cultivates a culture of security by design. Secure Software Development Life Cycle (Secure SDLC) is a software engineering culture that unifies software development, deployment, security, and operations. XMPie successfully completed SOC 2 assessment for data security excellence. For more information, click here.   Created by: Nahum Cohen on December 2024 ### PersonalEffect # PersonalEffect #### Advanced RIP-specific features with XMPie # Advanced RIP-specific features with XMPie **Summary**: This article explains advanced XMPie features, such as Dynamic Media Selection and external or references images for popular RIPs and printers. **Audience**: Pre-press production staff who are responsible for creating the variable data output from XMPie and setting up the files for production on the RIP. **Prerequisites:** This article assumes knowledge of XMPie products, basic Windows/Solaris Operating System skills, as required by your RIP, and experience with your RIP's user interface. ## Overview XMPie provides some output options which take advantage of different RIPs features including: - **Dynamic Media Selection** – to change paper trays for different pages in the job for each recipient. - **Image Referencing** – the ability to omit images from the output file so the data being sent to the printer is smaller and quicker to move across the network. Also some RIPs may process images faster when they are referenced outside of the print file. This article aims to show how to use these features with a selection of different RIP/Printer combinations, highlighting common mistakes and how to avoid them. It should be noted that while XMPie provides access to these features, it does not control the way the features are implemented on different RIPs. This article is a guide only, and some testing will be necessary to determine the best performance for your individual job, and the setup required on your RIP. ## Dynamic Media Selection XMPie enables two primary types of Dynamic Media Selection: - You can set a specific media type to a particular page in the InDesign template. That page will then use that paper type for each recipient. For example, page 1 will be plain paper; page 2 will be gloss paper; and this will apply to all recipients in the database. In this document, we’ll refer to this as static media selection. - You can also use business rules in an ADOR object to dynamically change the paper type for a particular page based on a value in the database. For example: page 1 for recipient 1 might be plain paper; but, for recipient 2, page 1 might be gloss paper. In this document, we’ll refer to this as dynamic media selection. To achieve media selection with XMPie: - Set up the required media selections in the InDesign document. - Create the print file in a format which supports media selection. - Load the required paper stocks to the printer. - Configure your RIP and print queue to support the media selection calls. - Submit the print file. The following sections describe these steps with a variety of different production RIP and printer combinations. ### Setting the media selection in InDesign #### Static Media Selection - Open the **Pages** palette in InDesign, and select (by double-clicking) the spread or page that you want to assign to a specific media. In the example below we are setting the media for spread/page 2. - In the fly-out menu on the **Pages** palette, select **Dynamic Media Selection**. This option will only appear if the InDesign document has already been connected to a database or plan file in the uCreate Print palette. - In the **Dynamic Media Selection** dialog, select the **Media Type**, **Color** or **Weight** option and enter the required value for your chosen output method as described in Entering the right media value for your output type. . #### Dynamic Media Selection - First create an ADOR object with the required logic. The value the ADOR returns should be a string value in the required format described in Entering the right media value for your output type. Examples of an expression to select different media based on the gender database column are presented below: uCreate Print: uPlan: - Open the **Pages** palette in InDesign, and select (by double-clicking) the spread or page that you want to assign the media to. In the following example we are setting the media for spread/page 2. - In the fly-out menu on the **Pages** palette, select **Dynamic Media Selection**. This option will only appear if the document has already been connected to a database or plan file in the uCreate Print palette. - Use the **Media Type**, **Color** or **Weight** option to select the ADOR object you created in step 1. This is shown in Figure 5. ### Entering the right media value for your output type The trick now, is to know what media type value to enter in the **Dynamic Media Selection** textbox, or the ADOR object, as this will vary depending on your RIP or output device and the output format that you will choose to print. #### Choosing the output format Dynamic Media Selection is available with VIPP, VPS, PostScript, PDF/VT-1 and PPML/VDX output formats. - If you have a Xerox FreeFlow Print Server (FFPS), VIPP should be the most efficient output format for you. First, check that you have a VIPP license enabled on your RIP. From the **Setup** menu, choose **Feature Licenses**. - If you see **Enabled** next to** Variable Intelligent PostScript Printware**, then you can use VIPP output from XMPie. - If VIPP is **Disabled**, then you should use PostScript or PDF/VT-1 output from XMPie. - If you have a Creo Spire print server, then VPS should be the most efficient output method for you. VPS is available on all Creo Spire RIPs. - If you have a Kodak or Xeikon print server, check if it supports PPML/VDX. If so, then this should be the most efficient output method for you. - If you have a different print server to those listed above, check the documentation to see if it supports VIPP, VPS or PDF/VT-1 output formats. These should be most efficient if they are available. Alternatively, select PostScript. #### Media type value required for VIPP output for Xerox FFPM For VIPP output, you need to select the Media Type option, and set a value in the following format: MediaType:MediaColor:MediaWeight Examples: Plain:White:90 Drilled:Yellow:120 It is also possible to specify only certain media parameters, in which case you should ensure to enter the parameter in the correct place: Examples: Change type only: Plain:: Change color only: :Red: Change weight only: ::90 Refer to these images for examples of using these values for VIPP output: #### Media type value required for VIPP output for Xerox iGen FFPM With the Xerox iGen, the required Media Type value is almost identical to the previous example. However, the iGen requires two additional parameters in the media value: MediaType:MediaColor:MediaWeight:MediaFrontCoating:MediaBackCoating Examples: Plain:White:90:Uncoated:Uncoated Plain:White:120:Gloss:Uncoated By default the valid settings for iGen coatings are: Uncoated, Glossy, HighGloss, SemiGloss, Satin, and Matte. It is also possible to use other coating settings, but these must first be setup on the iGen Press Interface (not the FFPM). #### Media type value required for VPS output to Creo Spire print servers For VPS output format, the Media Type value can be any text value. You can use spaces and other characters, but you must be careful that you replicate the name exactly in both Dynamic Media Selection dialog in InDesign and in the media library on the Creo RIP. Example of use for VPS output #### Media type value required for PPML/VDX output The VDX output by XMPie complies with the PDM2 specification. This specification provides three media types, which can be referenced in the output: - Body - Insert - Cover If you wish to output VDX for your RIP, you can enter any of these three media types in the Dynamic Media Selection dialog in InDesign, and set the appropriate media settings for the corresponding media type on your RIP. Note that the Body/Insert/Cover keywords are case sensitive. If your RIP processes a later specification of VDX (eg ANSI rather than PDM2), then you are not restricted to these three media types. However, to get XMPie to use media calls that are not PDM2 compliant, you must contact XMPie Support to have a registry setting changed so uCreate Print or uProduce will put non PDM2 compliant media calls into your VDX output. #### Media type value required for PostScript output to Fiery EX-P2100 The EX-P2100 has pre-configured media types already defined. You must use one of: Plain, Transparency, Preprinted, Tabstock, Labels, Recycled, Heavy, Extraheavy, Lightpaper, HeavyTabstock, Usertype1, Usertype2, Usertype3, Usertype4, and Usertype5. You can use any of these pre-defined media type values. You will later remap these values to stocks that you define. For example you can use Heavy, and later map it to a stock which is normal weight. Example of use for PostScript output #### Media type value required for PostScript output to Xerox FFPS FFPS has some pre-configured media types already defined. For example: Plain, Transparency, Preprinted, Postcard, Labels, Recycled, Adhesive, etc. You can choose to use one of these predefined values, or to define a custom media type. If you choose to use a custom value, you can use any string value, but you must name it exactly the same in both the Dynamic Media Selection dialog in InDesign and on the RIP stock settings. Also, remember that the values will be case sensitive on FFPS. Example of use for PostScript output Note that while most Xerox FFPS rips support Media Type, some (for example Xerox Color 1000 Press) do not support Media Type, and Media Color and/or Media Weight must be used instead. #### Media type value required for PDF/VT-1 output to Xerox FFPS Only FFPS versions after v7 will support dynamic media selection with PDF/VT-1 output format. The Media Type, Media Color and Media Weight values can be either a pre-configured name or custom – same as for PostScript output type described above in section 3.2.7. Note that while most Xerox FFPS rips support Media Type, some (for example Xerox Color 1000 Press) do not support Media Type, and Media Color and/or Media Weight must be used instead. #### Media value required for PostScript output to other devices/printers It is possible that other printers which are PostScript-compatible may be able to use Dynamic Media Selection from XMPie PostScript output. You will have to refer to your printer’s documentation or contact the manufacturer. XMPie puts the media call into the PostScript in the following format: <> setpagedevice Where xxx will be the value you enter into the Dynamic Media Selection dialog. You will have to determine whether your RIP/printer will support the MediaType parameter of the setpagedevice PostScript call, and what value is required to achieve the selection of the media you want on your printer. If your printer does not support media selection based on the MediaType setpagedevice PostScript call, it is also possible to enter more complex PostScript commands which will replace or redefine the setpagedevice operator. This requires a strong knowledge of PostScript programming, and a registry change which instructs XMPie to accept PostScript commands in the **Dynamic Media Selection** dialog, or ADOR object. To set this registry setting, create a new string value called: UserWritesCompleteMediaCommand At this location: \\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\XMPie\Common\1.00.000 Set the data value to: 1 For uProduce servers with extension servers, the registry setting needs to be made on all servers Directors and Extensions. **Note:** It is recommended to make a backup of the registry before making changes. Errors in the registry can make the system inoperable. To use custom PostScript setpagedevice commands with uCreate Print on Macintosh, edit: Library->Application Support->XMPie->XMPRegistry.plist Create two new lines as below: UserWritesCompleteMediaCommand 1 **Note:** Customizations to the registry and the XMPRegistry.plist files will be removed if you “repair” or “modify” the uProduce Server or uCreate Print installer, or if you upgrade to a newer version. Now that you have set the registry to accept custom PostScript commands, you need to identify from your RIP vendor the setpagedevice command that is needed in the PostScript. For example, for the EFI Fiery RIP on a Xerox 700 DCP, the values that should be entered into the **Dynamic Media Selection** dialog to select different trays with XMPie PostScript output are: << /XJXsettrayselV2 [ 1 ] >> XJXEFIsetpageproperties %%Tray 1 << /XJXsettrayselV2 [ 4 ] >> XJXEFIsetpageproperties %%Tray 2 << /XJXsettrayselV2 [ 5 ] >> XJXEFIsetpageproperties %%Tray 3 << /XJXsettrayselV2 [ 20 ] >> XJXEFIsetpageproperties %%Tray 4 << /XJXsettrayselV2 [ 2 ] >> XJXEFIsetpageproperties %%Tray 5 As you can see, these settings are very specific to the RIP/printer involved. Therefore, you need to get this information from your RIP/Printer vendor and it is not possible for XMPie Support to provide advice on this. ### Creating the print file with XMPie #### uCreate Print - On the uCreate Print fly-out menu, choose **Dynamic Print** and select required output Format. The image below shows the selection of VIPP output from uCreate Print. #### uProduce Server - Select the document in uProduce and click **Process**. Select the required Print Format. The image below shows the selection of VIPP output. ### VIPP Project Container option If you are printing to VIPP output on uProduce, there is another option which you may choose to select. XMPie provides an option to create a VI Container or VPC (VIPP Project Container) as shown below: A VPC is a zip file containing the print file, plus assets and resources separate to the print file, but included in the zip. If you choose to use this feature, the print queue that you submit the job to must be setup to receive a VPC so the assets and resources will be unzipped and placed into the correct places on the RIP. For more information the RIP settings to use for VPC, refer to Section 3.4.2. ### RIP setup for Dynamic Media Selection #### Setup on FFPS for VIPP job submission - Firstly, under **Setup** select **System Preferences**, on the **Job Processing** tab is a setting which requires some thought. The setting highlighted in the image below enables you to determine how much disk space will be allocated to Variable Data Objects. The more disk space you allocate to Variable Data Objects, the more images can be cached. But, the more disk space you allocate to Variable Data Objects means less disk space for holding print jobs in the completed queue. - Create a new Queue to submit your VIPP jobs to. From the FFPS **Queue** menu select **New Queue**. - On the **PDL Settings** tab, **PostScript / PDF** section. There some more settings which need some thought and consideration. Refer to the image below. - **Image Processing** sets the resolution that will be used when the VIPP/PostScript will be processed. The default setting is **Enhanced**, which processes at 600x600 dpi. **Normal** will process at 300x300 dpi. **Enhanced** provides slightly better image quality, but takes significantly longer to process. It is recommended to test **Normal** to see if it suits your needs. (Note that most other comparative RIPs eg Creo/Fiery use 300x300 dpi processing.) - **Resolution** is the resolution that the job will be sent to the printer. All Xerox production printers print native 600x600 dpi. Reducing this resolution will not save you much time, but will cost you in print quality. - Under **Variable Data**, you need to ensure **Caching** is **Enabled**. (This is the default when creating a new queue.) - Load the required media into the printer. Note: all media for the job must be the same sheet size. - From the **Printer** menu on the RIP, select **Paper** **trays**. - Double click the first tray you loaded media into. - Ensure the name is set to **Unspecified**. Set the Media Type, Media Color, Media Weight. Note: the values you set here must be the same as the values you entered into the **Dynamic Media Selection** dialog in InDesign or set in the ADOR object. - Set any other paper attributes relevant to your media – e.g. coating, and sheet size etc. - Click **OK** and repeat for any additional paper trays required for your job. - You are now able to submit the job to the new queue. #### Additional setup on FFPS for VPC job submission When processing to VIPP on the uProduce Server, XMPie provides an option to create a VPC (VIPP Project Container). In order to use the VPC file on your FFPS, you need to follow the same steps as outline above, plus, there is one additional setting you need to make to the Queue. In the **Queue Properties** dialog, on the **Settings** tab, click the **Job Filter** section. Click **Apply Filter** and select the **FreeFlow VI Project Container Filter** as shown below: #### Setup on the Creo Spire for VPS job submission To use XMPie Dynamic Media Selection with Creo VPS, you can follow these steps: - On the Creo, open the Resource Center by clicking on the relevant icon, or select **Resource Center…** from the **Tools** menu. - Change the **Resource** drop-down from **Virtual Printers** to **Paper Sets**. Depending on the version of your Creo, this may be called **Paper Stocks**. - Click the + icon in the lower left corner to create a new paper set with the required attributes. In the example pictured, we are using two paper sets: “Colotech 120 Gloss” and “Colortech 90 uncoated”: | | | | --- | --- | - Click **OK** to create your new paper set, and repeat for any additional stocks required for your job. - In the **Resource Center** dialog, change the **Resource** drop-down to **Virtual Printers**. Click the + icon in the lower left to create a new virtual printer. - Enter a name for your virtual printer and check the box to **Support dynamic page exceptions** as shown below. - In the **Based on** drop-down list, select an existing queue for this one to be based on (e.g., SpoolStore/ProcessPrint/ProcessStore). | | | | --- | --- | - Click the **Edit** button to set defaults for this new virtual printer. - On the **Exceptions** tab, select the paper set required for your job, and assign it to the tray that you will load this paper to in the printer as shown below: - On the **Paper Stock** tab select the paper set that will be used for the first sheet of your job as shown below. If you do not do this step, you will have to make this setting on the job after you submit it to the queue - Click **Save**, to exit the settings, click **OK** to save your new virtual printer, and then close the Resource Center. - You are now able to submit the job to the new virtual printer. #### Setup on the Xerox FFPS v8 and later for PostScript job submission - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. - Open the **Stock Library Manager**. Click the **Stock Library…** button. - Click the **Create new…** button. - From the **Type** drop-down, select the same name that you entered into the **Dynamic Media Selection** dialog in InDesign, or in the ADOR object. - If the media type you used is not available in the drop-down list, select Custom from the drop-down. In the next dialog, enter the **New Stock Type Name**, and click the **Add Type >>>** button until all the required stock names are in the custom stock list. After closing the dialog, they will appear in the drop-down list. Select one for this new stock definition. - Click **Advanced Setup**. Ensure the **Stock by Name Only** checkbox is NOT checked. Click **OK**. - Enter a descriptive **Name** for your new stock type, and define the other stock settings eg sheet size, orientation, weight, coating, etc. Then **Save** the new stock type. - In the **Stock Library Manager**, click the tray where you loaded your stock, and select your newly defined stock name from the library list. In the image below, Matt is in tray 1 and Gloss is in Tray 3. - Create a new Queue for your job submission. On the **Settings** tab, **Input format** section, set the **Format** to **PostScript**. - On the **PDL Settings** tab, **Postscript** section, disable** Parallel RIPs** and enable **Variable Data Caching**. You may also want to test reducing the **Resolution** to 300dpi instead of 600dpi. Reducing the resolution will make processing faster if you feel the image quality is sufficient at 300dpi. - On the **Stock** tab, click the **Set Use Ready** button. Then click **OK** to the confirmation dialog. You queue is now ready. Enter a descriptive **Name** for the queue, and save it. - Submit your job to this queue as per normal. #### Setup on the Xerox FFPS v8 and later for PDF/VT-1 job submissions - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. - Open the **Stock Library Manager**. Click the **Stock Library…** button: - Click the **Add new…** button: - From the **Type** drop-down, select the same name that you entered into the **Dynamic Media Selection** dialog in InDesign, or in the ADOR object: - If the media type you used is not available in the drop-down list, select **Custom** from the drop-down. In the next dialog, enter the new stock type **Name**, and click the** Add Type >>>** button until all the required stock names are in the custom stock list. After closing the dialog, they will appear in the drop-down list. Select one for this new stock definition: - Click **Advanced Setup**. Ensure the **Stock by Name Only** checkbox is NOT checked. Click **OK:** - Enter a descriptive **Name** for your new stock type, and define the other stock settings, such as sheet size, orientation, weight, coating, etc. Then save the new stock type. - In the **Stock Library Manager**, click the tray where you loaded your stock, and select your newly defined stock name from the library list. In the image below, Matt is in tray 1 and Gloss is in Tray 3. - Create a new Queue for your job submission. On the **Settings** tab, **Input format** section, set the format to **PDF** and lock it. - On the **PDL Settings** tab, **PDF Processing** section, set to use the **Adobe PDF Print Engine**. - On the **PDL Settings** tab, **Native PDF** section, select **Disable** for **Parallel RIPs**, and select **Enable Caching** for **Variable Data**. - On the **Stock** tab, click the **Set Use Ready** button. Then click **OK** to the confirmation dialog. Enter a descriptive **Name** for the queue, and save it: -  Submit your job as per normal. #### Setup on the Xerox FFPS v7 and earlier for PostScript job submission - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. Note 1: All sheet sizes should be the same. Note 2: When using PostScript output type and named media type with your FFPS, you must use the same stock color/weight/coating for all stocks required in the tray. (Of course you can load different colored stock in one tray, but you need to set the printer and RIP saying it is the same color as the other media. Loading paper that has a different weight or coating than what you specify is NOT recommended.) - Depending on your output device, you may need to configure Custom Paper Types on the Printer. (EG, this step is not necessary for Nuvera, but is required for DocuColor 700.) On the DC700 you must login to the printer console as administrator and enter Tools mode to set up the custom paper settings. Refer to your printer’s documentation for more information. - Follow steps 1-3 as described in Setup on FFPS for VIPP job submission. - On the RIP, select **Paper Trays** from the **Printer** menu. - Double-click on the tray which you loaded the first stock. Leave the stock name as default or Unspecified. Set the size/color. Click **Type/Weight**, select **Custom** from the **Type** menu. Enter the name of the stock exactly as you did in the **Dynamic Media Selection** dialog InDesign, or in the ADOR you are using for media selection. - Click **OK**, and repeat step 5 for additional media required for your job. For PostScript output, only the custom name can be different. Size/Color/Weight/Coating options must be the same. (Of course you can load different colored stock in one tray, but you need to set the printer and RIP saying it is the same color as the other media. Loading paper that has a different weight or coating than what you specify is NOT recommended.) - Create a new queue to (see Setup_on_FFPS_for_VIPP_job_submission). On the **Stock** tab, ensure that the media is set for the first page of your job. - You are now able to submit the job to the new virtual printer. #### Setup on the Fiery EX-P2100 for PostScript job submission - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. - Open the **Stock Library Manager**. Click the **Stock Library** button. - Click the **Create new …** button. - From the **Type** drop-down, select the same name that you entered into the **Dynamic Media Selection** dialog in InDesign. The Fiery does not permit custom media type names. You must use one of the media types predefined by EFI. - If the EFI Media Type name is not available in the Versant stock library Type drop-down list, select **Custom**. In the next dialog, enter the new media type **Name**, and click the **Add Type >>>** button. Repeat until the required stock names are in the custom stock list. After closing the dialog, they will appear in the drop-down list. - Click **Advanced Setup**. Ensure the **Stock by Name Only checkbox** is NOT checked. Click **OK**. - Enter a descriptive **Name** for your new stock type, and define the other stock settings eg sheet size, orientation, weight, coating, etc. Then save the new stock type. - In the **Stock Library Manager**, click the tray where you loaded your stock, and select your new stock. In the example pictured below, we have Preprinted in tray 1, and Recycled in tray 3. - Login to Command Workstation and select Configure from the **Server** menu. - Click **PDL** and then click **SPD**. Check the box to **Enable Set Page Device Mapping**, and **Apply** your change. If you needed to enable this setting, click **Reboot**. - Import your PostScript file into the Command Workstation Hold Queue, and double click to open the **Job Properties** dialog. - On the **Media** tab, check the **Use set page device media mapping** box. Then click the **Settings…** button. - For each of the media types defined in your job, click **Add**. From the **Media type** drop-down, select the media type name that you entered into the **Dynamic Media Selection** dialog in InDesign. From the **Paper Catalog Entry** drop-down, select the name of the stock that you just created in the Versant stock library. - Click **OK** and submit your job. ### Dynamic Media Selection limitations - At the time of writing, Dynamic Media Selection is only supported with VIPP, VPS, PS, PDF/VT-1 and PPML/VDX output types. IE other output formats (PPML/PS, PDF, Adobe PDF, and Legacy PDF) do NOT support Dynamic Media Selection. - Do not use XMPie’s Step and Repeat feature, or your RIP’s imposition feature when using Dynamic Media Selection. - All required media trays in the RIP/Printer must be the same size. It is a limitation of PostScript that all pages in the document must be the same size. - Some RIPs will not automatically rotate the output image to suit mixed portrait/landscape loading of media in one job. If you experience problems, ensure that all media trays are loaded in the same orientation. (IE all long-edge feed, or all short-edge feed.) ## Image Referencing Normally, when creating your print output from XMPie, you will choose to Embed the Assets and Resources as shown in Figures 48 and 49. This means that the images will be included in the output file which you have to send to the printer. **Note:** Even if you choose to embed images in the output stream, if your document contains the same image in several places, XMPie includes the image in the output stream only once, and references the object for subsequent appearances. But, in some cases, for example when you have a document that you print regularly against different databases, if it includes several large images, it could be more efficient to store the images on the RIP, and exclude them from the output file. This means the output file will be much smaller and take less time to send to the printer. To exclude the images from the output file, and insert “references” to the image name, simply uncheck the **Assets** and/or **Resources** checkbox. - **Assets** refers to images which are variable in your document (where a graphic ADOR is selecting the image to display for each recipient), while - **Resources** refers to images which are static – they are not Graphic ADORs and will be the same for all recipients. If your print job is only ever run once, then it is not particularly efficient since you still need to copy the images to the RIP – although you may choose to do this via external media rather than copying them over the network. ### Referenced images with Xerox FFPS and VIPP To process your VIPP output file when images are omitted from the print stream, follow these steps: - Create a new print queue on the RIP as described in section Setup on FFPS for VIPP job submission. You do not need to enable the OPI (Open Prepress Interface) setting which is used by some print systems to replace low resolution images with high resolution versions at the time of production. - Copy the required images to the FFPS. You can move the files to the server via CD/USB/FTP/SMB – whatever medium is convenient. (Refer to the FFPS User Guide for more information on how to connect to the RIP’s file system.) The place to put the image files on the RIP is: /usr/xgfc/gshared. When processing the VIPP output from uProduce, it is possible to send the output file and images to the RIP automatically during production. To do this, first create two output destinations in uProduce: One being an FTP site, network path or network printer – to send the output print file to. - One being a network path – to send the assets and resources to the required images folder on the RIP. This feature requires you to setup an SMB share on the FFPS using Samba. Refer to the FFPS User Guide for more information on how to do this. Once you first print the job to both destinations, if there are no additional assets or resources, you can choose to send only the print file. - If creating output via uCreate Print, or uProduce (without copying to a secondary destination) you can submit your print file normally, once you have copied all the required images to the gshared folder. It is also possible for you to manage the images you have on the RIP, by selecting **VI Projects Manager** from the **System** menu. #### Using VI Project Container (VPC) with FFPS When producing VIPP output with uProduce, you also have the option of creating a VPC file. A VPC is a zip file containing the print file, plus assets and resources separate to the print file, but included in the zip. If you choose to use this feature, the print queue that you submit the job to must be setup to receive a VPC so the assets and resources will be unzipped and placed into the correct places on the RIP. For more information the RIP settings to use for VPC, refer to Section Additional setup on FFPS for VPC job submission. ### Referenced images with Creo Spire and VPS output To process your VIPP output file when images are omitted from the print stream, follow these steps: - Create a new print queue on the RIP as described in section Setup on the Creo Spire for VPS job submission. - Copy the required images to the Creo. You can move the files to the server via CD/USB/FTP/SMB – whatever medium is convenient. (Refer to the User Guide for more information.) The place to put the image files on the RIP is: D:\Shared\High Res or \\\Shared\High Res. When processing the VPS output from uProduce, it is also possible to send the output file and images to the RIP automatically at the same time. To do this, first create two output destinations in uProduce: - One being an ftp site, network path or network printer – to send the output print file to. - One being a network path – to send the assets and resources to the required images folder on the RIP. Once you first print the job to both destinations, if there are no additional assets or resources, you can choose to send only the print file. - If creating output via uCreate Print, or uProduce (without copying to a secondary destination) you can submit your print file normally, once you have copied all the required images to the High Res folder. ### Tips and tricks with image referencing #### I made a change in my image, but I still get the old image when I print One of the most common problems reported by customers when they start to use externally referenced images, is that they will update an image on the local computer and print the document from InDesign, but the image remains the same on the print out. You must also remember to update the copy of the image which is on the RIP! #### Images are reported missing on FFPS, but they’re there Remember that the FFPS uses a Solaris operating system, which has case-sensitive file names. It is common for customers to copy the files to the correct spot on the file system, and get confused when the RIP reports some images as missing. Closely double check the case of any images reported missing... #### I selected to not embed images, but the output file size is the same Only certain image types can be excluded from the print file: - VPS and VIPP support EPS/JPG/TIFF outside of the print file. - PPML supports only EPS outside of the print file. Check your image assets and resources types to ensure that they can be supported outside of the print file. ## Glossary ADOR Automatic Dynamic Object Replacement – Also known as “Content Object”. This is the XMPie object which is placed into the InDesign layout and is replaced with information from a database at the time of production. Cache / Caching When a RIP processes an element which is tagged as reusable, it will hold this element in its processed state, so that when the next time this element is required in the job, it is already processed and ready to go. #### **FFPS** FreeFlow Print Server – A Xerox RIP or print server, originally called DocuSP, later versions are known as FreeFlow Print Server. #### **DPI** Dots Per Inch / Pixels Per Inch – this is a measure of the resolution or quality of an image. The higher the resolution, the higher the DPI, and the larger the file size. #### **Global** **Cache ** Caching is normally done on a job-by-job basis, however some RIPs support global caching which enables the RIP to hold a processed copy of the element to use in following print jobs. This is useful when processing multiple batches of the same job, but can cause problems/confusion if the image is later changed and the job reprinted... #### **PDF/VT-1 ** A format of PDF designed for variable data or transactional print. It can include additional information such as recipient meta data. #### **PDM2 ** PDM2 is a specification of the VDX output format. Refer to VDX for more information. #### **Pixel** The smallest, most basic unit of an image. Rows of pixels of different color and density make up images for digital print, television and computer display. #### **PPML** Personalised Print Markup Language – PPML is an XML-based output format developed by the Digital Print Initiative (PODi). #### **Raster** To convert page text and graphic data to lines of pixels which a printer can transfer to paper. #### **RIP** Raster Image Processor – Most production printers will have a dedicated PC or server known as a RIP which receives the print file and process it (rasters it) in preparation for printing. #### **Reference / Referencing** VIPP, VPS and PPML output formats have a feature called “referencing” which enables for certain image types to be omitted from the main print file and found in a separate file which is “referenced” from the main print file. #### VDX Variable Data eXchange – (Also called PPML/VDX), is based on a subset of the PPML specification and is developed by the Committee for Graphic Arts Technologies Standards (CGATS). XMPie outputs VDX which is PDM2-compliant. PDM2 provides legacy support for PPML v1.5. Later versions of VDX are ANSI-compliant, which supports PPML v2.0. #### **VIPP** Variable-data Intelligent PostScript Printware – Developed by Xerox, VIPP is an output format based on PostScript, but with some additional features to address PostScript’s limitations for variable data print. #### **VPC** VIPP Project Container – a zip file which contains a print file and the resources (images etc) required to print. The Xerox FFPS (with a properly configured print queue) will extract the resources into the necessary folders on the RIP. #### **VPS** Variable Print Specification – VPS is a PostScript-based output format developed by Scitex (now Print On Demand Solutions, a Kodak company). Like VIPP it includes some additional features to better support variable data print. ## Additional information For more information, refer to the relevant user guide: - uProduce Reference Manual - uCreate Print User Guide - Your RIP User Guide   Created by: Steve Couch, last updated: February 29, 2016 #### Excluding folders from antivirus scanning on PersonalEffect servers # Excluding folders from antivirus scanning on PersonalEffect servers **Summary**: This article lists the folders to be excluded from antivirus background scans on machines running PersonalEffect Server products. **Audience**: XMPie customers who wish to run antivirus software on PersonalEffect server products. ## Overview Traditional antivirus solutions function by blocking known malware by examining or scanning files as they are written to disk on a computer device. If the file is known to the AV’s database of malicious files, the software prevents the malware file from executing. This increased file I/O can impact the performance on PersonalEffect Server products. It is our recommendation to consider an Endpoint Detection and Response (EDR) solution. EDR is an integrated endpoint security solution that combines real-time continuous monitoring and collection of endpoint data with rule-based automated response and analysis capabilities to detect and respond to cyber threats like ransomware and malware. It works differently than antivirus and should be lightweight in resource consumption. Installing and running antivirus software on the uProduce Server environment can cause significant performance degradation and - in some cases - software failures. To improve performance and avoid unexpected failures, it is recommended to exclude the folders specified in this article from the antivirus scan. ## Folders to exclude from antivirus scan - $:\XMPie\ - XMPieOutput - XMPieTempOutput - XMPieTempStorage - XMPieData* - XMPieAssets* - TempUpload* - $:\XMPLogs\ - $:\Users\\AppData\Local\XMPie\ - $:\Users\\AppData\Local\Temp\ - %systemroot%\System32\MSMQ\ - $:\Program Files\Microsoft SQL Server\ (If you've changed the default location of SQL data and log files, change this path accordingly.) - C:\Windows\System32\msmq\storage\LQS ***** It is not mandatory to exclude these folders. **Notes:** - The "$" sign represents the corresponding drive letter (for example, C, D, etc.). - The tag represents the concurrent user where XMPie applications are installed/running. - The %systemroot% variable does not work as exclusion for some antivirus software. Make sure to spell out the full path name in the antivirus exclusion list. - In order to verify the installation paths of XMPie and Adobe products, you can run the **ServerInfo** utility provided by XMPie support. This utility will provide you the exact installation locations of these product components. Please contact an XMPie support representative for more information. - Some antivirus applications will flag some of the XMPie services as unknown or possibly unwanted processes. If there are problems with the XMPie system after installing the antivirus application, please check that none of the XMPie services are quarantined.   Created by: Arik Michaelovich, last updated by Mohammad Mansour: March, 2024 #### XMPie Server Maintenance # XMPie Server Maintenance **Summary**: This article describes the maintenance tasks that are needed to maximise the performance of your XMPie server and to make sure you are able to recover from any critical failures. **Audience**: The tasks outlined in this document should only be performed by the system engineer who is responsible for the maintenance of the XMPie PersonalEffect servers. **Prerequisites**: This article assumes a high level of Microsoft Windows Server knowledge as it is possible to cause irreversible damage to the XMPie PersonalEffect installation if not followed correctly. Before running any of these tasks, it is recommended to back up the SQL server. **Important: **It is the customer’s responsibility to provide sufficient resources to the system, such as free disk space, database storage and memory. Falling too low on resources might result in system slowdown, failures and unexpected behavior. ## Overview To maximise performance of XMPie PersonalEffect, it is important to maintain your servers correctly. The following topic will guide you through some recommended maintenance tasks that should be performed to ensure that your system continues to run smoothly and to help you fix any issues that may arise. The GDPR (General Data Protection Regulation) mechanism, which was developed by XMPie in order to assist customers in complying with the GDPR regulations, can be utilized as a cleanup tool for automatic deletion of local data sources, recipient lists, jobs and outputs. Activating this mechanism will save you the need to perform manual cleanup operations, and thus will prevent system downtime. Detailed information about it can be found in the uProduce online help. ## Monitoring the XMPie System Before performing any maintenance task, it is recommended that you take a look at the status of your system. This can be done using the uProduce monitoring tool. Open the tool by clicking the **Monitor** button on the navigation bar. This button is only visible to the users who are granted permissions to view the monitoring information. The following monitoring capabilities are given: - **Disk Space monitoring:** Notifies you about the amount of available disk space and issues alerts when the minimum disk space threshold is reached. - **Database size monitoring:** Monitors the used database space to determine whether you need to increase its size or remove unneeded objects. - **Services monitoring:** Displays the status of XMPie services for each XMPie server. If a service stopped running, it is automatically marked with an error status. In case an error or a warning, an email notification is sent to the administrator. Detailed information about these monitoring capabilities is found in the uProduce online help. ## Maintenance Tasks To maintain performance, it is important to run the tasks that are outlined in this document at regular intervals. You can refer to the chart below to see the recommended interval for each task. Important! These tasks should only be performed during off-peak periods, when your server is not in use. | Task Description | Recommended | | --- | --- | | Windows System Components | | Cleanup using RESTful API | Monthly | | Install Windows Updates | Weekly & before upgrade | | Check Windows Time | Weekly* | | Defragment the file system | Monthly | | Check disk usage | Weekly & before upgrade | | SQL Database Components | | Cleanup using RESTful API | Monthly | | Check SQL database file size | Weekly (or before any large campaign)** | | Rebuild SQL database indexes | Monthly | | XMPie Server Components | | Cleanup using RESTful API | Monthly | | Back Up the XMPie Server | Daily & before upgrade | | Delete uProduce temporary files | Monthly | | Remove jobs from the Job Center | Monthly | | Remove events from the XMPie Tracking database | Weekly (or before any large campaign)** | | Delete old hosted data sources | Monthly | * If your Windows time is correct each time you check, it means the NTP server is functioning correctly and you can cut back on the frequency of this maintenance task. ** This task is critical if running Microsoft SQL Express Edition. ## Maintaining XMPie Server Components via the uProduce Dashboard It is possible to run maintenance and cleanup processes via the uProduce dashboard. For details, see the uProduce Maintenance page. This ability is available starting from version 12.2. It is recommended that you back up your data bases prior to performing any of these maintenance processes. ## Maintaining XMPie Server Components via the uProduce RESTful API It is possible to run maintenance and cleanup processes via the uProduce RESTful API. To use this API you must have an API license. It is recommended that you back up your data bases prior to performing any of these maintenance processes. You can access the API at http:///xmpierestapi Expand the **System** section and look for the **/v1/system/maintenance/cleanup **request. Click **MaintenanceCleanupRequest** to view all available cleanup parameters: Click the **Try it out** button to set all parameters, and then click **Execute**. If you do not have an API license, you can run the commands in power shell. Set the correct server, user name and password as follows: Invoke-RestMethod -Uri 'http://****/XMPieRestAPI/v1/system/maintenance/cleanup' -Method 'POST' -Headers @{Authorization=("Basic {0}" -f ([Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f '****','****')))))} -ContentType 'application/json' -Body (@{ShrinkDB=1;RebuildDBIndexes=1}|ConvertTo-Json) ## Windows System Components ### Installing Windows updates To ensure a secure, up‐to‐date system, it is recommended to check Windows Updates at least once a week. Make sure it is not set to automatic updates. If updates are found, make sure you have a current backup before applying them, in case there are any conflicts with the XMPie PersonalEffect system. Updates should be applied when there is no activity on the server. If running multiple servers, make sure the same Windows Update settings are defined for all servers and that all server are running the same updates. ### Checking Windows time If the Windows time is set incorrectly on your servers, emails sent through XMPie email service might not actually be sent and instead return an error. The time settings of most servers will be automatically synchronized with an “NTP server”, to set time automatically, which normally works as expected. However, in some cases (for example when running in a virtualized environment), it is possible for the time to drift out by a few minutes, which will cause email send failure. ### Defragmenting the file system Through time, the computer's hard disk may become damaged or fragmented (unavailable in a large contiguous block). If there is not enough contiguous space for the system to save a file, it saves segments of that file on different locations of the disk. This increases the time needed for an application to read a fragmented file. Please note that during defragmentation disk usage will be very high and therefore system responsiveness will be impacted. We highly recommend only running/scheduling a Defrag only when your XMPie server solution is not in use. ### Checking disk usage XMPie PersonalEffect will store temporary files on both your OS drive and the XMPie data partition. It is important to make sure there is enough available space for your software to operate correctly. If all disk space is used the server will cease to produce any output. Check the available disk space on each drive and confirm the available disk space on each drive. If the drives are getting full, it would be wise to make sure the Recycle Bin is empty, and remove uProduce Temporary Files and Old Jobs as described in Deleting uProduce Temporary Files  and Removing Old Jobs from the Job Center. Purchasing a larger drive should be considered in order to make sure the system runs without interruption when processing very large jobs. ## SQL Database Components ### Checking SQL database file size XMPie PersonalEffect uses Microsoft SQL server for all of its database storage. Depending on the version of Microsoft SQL you have installed, there is a limitation on the maximum file size of each SQL Database. You can check the size of XMPie databases by running the following SQL command on your SQL Server. SELECT DB_NAME(database_id) AS Database_Name, Name AS File_Name, Physical_Name AS Physical_Path, (size*8)/1024 AS Size_MB FROM sys.master_files WHERE DB_NAME(database_id) in ('XMPDB2','uStore','XMPDBASSETS','XMPDBTRACKING','XMPDBHDS') ORDER BY Size_MB desc GO This will give you a list of the XMPie databases and their file size: If any of these databases are approaching the maximum database size for your version of Microsoft SQL, it would be wise to consider an upgrade to Microsoft SQL Server Standard Edition, or shrinking the database and files. If the XMPDBTracking database is too large, consider removing tracking data for campaigns that are no longer required, as described in Removing events from the Tracking database. If any of your databases are approaching the file size limit for your version of SQL Server, it’s strongly suggested to monitor these databases before and during a campaign, as if they do hit their size limit during a campaign your campaign may go offline. ### Rebuilding SQL database indexes It is recommended to perform database reorganization on your SQL database monthly. This will rebuild the indexes so that the data is no longer fragmented. Fragmented data can cause SQL Server to perform unnecessary data reads, slowing down SQL Server’s performance. **Important!**  Before running any SQL commands, make sure a backup of your database has been taken. The following SQL command can be run on your SQL Server to reindex the required XMPie databases. -- This will reindex all tables in the 'uStore', 'XMPDB2' and 'XMPDBASSETS'databases if there is sufficient space. USE uStore GO EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")' USE XMPDB2 GO EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")' USE XMPDBASSETS GO EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")' USE XMPDBHDS GO EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")' USE XMPDBTRACKING GO EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")' **Important!**  Reindexing will temporarily take your database offline. Only reindex when the server is not in use. ### Removing events from the Tracking database When a campaign has tracking turned on, these tracking events are recorded in the XMPDBTracking database. Over time this database can grow very large in size and depending on the version of SQL that is installed on your server, it is possible to hit a maximum database size which will stop events from being tracked. If this occurs mid‐campaign you may lose tracking information related to that campaign. Therefore, it is very important not only to monitor the size of this database as described in Checking SQL database file size, but to also remove tracking from campaigns that are no longer required. For instructions on how to remove unused tracking events, please refer to Support. ## XMPie Server Components ### Backing up the XMPie server As a precautionary step, it is crucial to back up the XMPie server in order to be prepared for any scenario in which the system crashes or completely fails. The backup should include databases, files system and registry. **Important!** Backup should be performed daily and before any software upgrades. There are two options when performing a backup: - A full system backup which will back up the complete operating system and the XMPie server solution. This will take more space and may take longer, but it will allow you to recover from a failure quicker and will cover you for failures not only within the XMPie system but also within the Windows OS. - The other option is to only back up the XMPie file system and registry settings. If you are performing a full system backup there are many tools available which are outside of the scope of this article. If you choose to back up only the file system, please refer to the chart below that contains all the locations critical to XMPie that need to be backed up. To back up the file system: | Application | Folders that should be backed up | Server | | --- | --- | --- | | uProduce | [drive letter]:\xmpie | Back end server* | | uStore | [drive letter]:\xmpie\uStore | Back end server* | | XMPL | [drive letter]:\XMPie\XMPieWebServer\XMPieWebSiteManagement\XMPieWebSites | Front end web server** | | ISAPI_Rewrite(Helicon) | [drive letter]:\ProgramFiles\Helicon\ISAPI_Rewrite3\ The path may vary in case of localized OS | Front end web server** |   To back up the registry: | Application | Registry entry that should be backed up | Server | | --- | --- | --- | | All | HKLM\SOFTWARE\Wow6432Node\XMPie | Back and front end servers* |   To back up the database: | Application | Databases that should be backed up | Server | | --- | --- | --- | | uProduce | XMPDB2, XMPDBASSETS, XMPDBHDS | Back end server* | | Analytics | XMPDBTRACKING | Back end server* | | uStore | uStore | Back end server* | * Back end server refers to Solo ** Web server refers to Proxy server (located in the DMZ) ### Deleting uProduce temporary files It is important to remove unused temporary files, as they are by default located on the primary OS drive which often has limited space. To remove these files, you can run one of the following commands from either the Command Prompt or Powershell. Command Prompt: forfiles /P "C:\Users\%USERNAME%\AppData\Local\Temp" /M "*" /S -C "CMD /C **DEL** /F /Q @file" /d -7 Powershell: forfiles /P "C:\Users\$env:UserName\AppData\Local\Temp" /M "*" /S -C "CMD /C DEL /F /Q @file" /d -7 | forfiles /P "C:\Users\$env:UserName\AppData\Local\Temp" /M "*" /S -C "CMD /C DEL /F /Q @file" /d -7 | | --- | **Note:** It is important that you log in with the Windows user credentials that were used with XMPie's services. The variable %USERNAME% will automatically be replaced with the logged in user. ### Removing jobs from the Job Center To maximise performance of the XMPie PersonalEffect server and to minimize disk usage, it is recommended to remove jobs from the Job Center once the job is completed and the output is no longer required on the server. Unused jobs can be deleted from the Job Center. **Important!** Remove the jobs with caution as any deleted jobs cannot be retrieved. ### Deleting old hosted data sources To maximise performance of the XMPie PersonalEffect server and to minimise database disk usage, it is recommended to remove old hosted data sources from the uProduce dashboard or from the Circle library. **Important!** Remove the data sources with caution as a mistakenly deleted data source may break the campaign.   Created by: Mohammad Mansour, last updated: September 2024 #### Running XMPie Server Products Connected to SQL Server with Transparent Data Encryption (TDE) # Running XMPie Server Products Connected to SQL Server with Transparent Data Encryption (TDE) **Summary**: This article describes how to encrypt sensitive data in the database and protect the keys that are used to encrypt the data with a certificate using Transparent Data Encryption (TDE). TDE performs real-time I/O encryption and decryption of the data and log files. **Audience**: XMPie customers and database administrators who wish to run XMPie Server products connected to an encrypted SQL Database. ## Overview Transparent Data Encryption (TDE) encrypts SQL Server Database data files, known as encrypting data at rest. You can take several precautions to help secure the database, such as designing a secure system encrypting confidential assets and building a firewall around the database servers. However, in a scenario where the physical media (such as drives or backup tapes) are stolen, a malicious party can simply restore or attach the database and browse the data. One solution is to encrypt the sensitive data in the database and protect the keys that are used to encrypt the data with a certificate. This prevents anyone without the keys from using the data. TDE performs real-time I/O encryption and decryption of the data and log files. The encryption uses a database encryption key (DEK), which is stored in the database boot record for availability during recovery. The DEK is a symmetric key secured by using a certificate stored in the master database of the server, or an asymmetric key protected by an EKM module. TDE protects data "at rest", meaning the data and log files. It provides the ability to comply with many laws, regulations, and guidelines established in various industries. This enables software developers to encrypt data by using AES and 3DES encryption algorithms without changing existing applications. ## About TDE TDE enables you to encrypt an entire database. TDE is completely transparent to the application and requires no implementation of code changes. TDE requires SQL Server Enterprise edition. It is not available for SQL Server Standard edition. TDE is also available for SQL Server Datacenter edition. Encryption of the database file is performed at the page level. The pages in an ecnrypted database are ecnrypted before they are written to the disk and decrypted when read into the memory. TDE does not increase the size of the encrypted database. ### Information Applicable to the SQL Database When using TDE with SQL Database, the server-level certificate stored in the master database is automatically created for you by the  SQL Database. ### Information Applicable to the SQL Server When enabling TDE, you should immediately back up the certificate and the private key associated with the certificate. If the certificate ever becomes unavailable or if you must restore or attach the database on another server, you must have backups of both the certificate and the private key, otherwise you will not be able to open the database. The encrypting certificate should be retained even if TDE is no longer enabled on the database. Even though the database is not encrypted, parts of the transaction log may still remain protected, and the certificate may be needed for some operations until the full backup of the database is performed. A certificate that has exceeded its expiration date can still be used to encrypt and decrypt data with TDE. ### Encryption Hierarchy The following illustration shows the architecture of TDE encryption. Only the database-level items (the database encryption key and ALTER DATABASE portions) are user-configurable when using TDE on the SQL Database.   **Important:** TDE does not provide encryption across communication channels. For information on how to encrypt data across communication channels, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager). In addition, TDE protects the data at rest, but an authorized user such as a security administrator or a database administrator can access the data in a TDE-encrypted database. To prevent an SA or DBA from accessing selected parts of the data, you need to use application-level encryption. This is beyond of the scope of this document. ## Using TDE To use TDE, follow these steps using Transact-SQL. **Note:** From this point forward, the instructions assume that you have completed the XMPie Server products installation process. To access SQL Server Management Studio: - On the taskbar, click **Start**, point to **All Programs**, point to **Microsoft SQL Serve**r, and then click **SQL Server Management Studio**. The **Connect to Server** window is displayed. - Enter/select the SQL Server credentials and click **Connect** to login to the SQL Server Management Studio. - In the **Object Explorer** on the left pane, connect to an instance of the Database Engine. - On the Standard bar, click **New Query**. - Copy and paste the following example into the query window and then click **Execute**. The following example illustrates encrypting the XMPDB2 database using a certificate installed on the server named MyServerCert. -- Create a database master key and a certificate in the master database. USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '*rt@87(RT&Yask6'; GO CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'Certificate to protect TDE key' GO -- Create a backup of the server certificate in the master database. -- The following code stores the backup of the certificate and the private key file -- (C:\Program Files\Microsoft SQL Server\Backup\). BACKUP CERTIFICATE MyServerCert TO FILE = 'MyServerCert' WITH PRIVATE KEY ( FILE = 'SQLPrivateKeyFile', ENCRYPTION BY PASSWORD = '*rt@87(RT&Yask6' ); GO   -- Switch to the new database you would like to encrypt. -- Create a database encryption key, that is protected by the server certificate in the master database. -- Alter the new database to encrypt the database using TDE. USE XMPDB2; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; GO ALTER DATABASE XMPDB2 SET ENCRYPTION ON; GO **Note:** Make sure to repeat the above Transact-SQL script in order to encrypt the remaining XMPie databases. The following example illustrates encrypting the DBname-to-Encrypt database using a certificate installed on the server named MyServerCert. USE DBname-to-Encrypt; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; GO ALTER DATABASE DBname-to-Encrypt SET ENCRYPTION ON; GO **Caution**: Backup files of databases that have TDE enabled are also encrypted by using the database encryption key. As a result, when you restore these backups, the certificate protecting the database encryption key must be available. This means that in addition to backing up the database, you have to make sure that you maintain backups of the server certificates to prevent data loss. Data loss will result if the certificate is no longer available. Most of the information in this article has been taken from Microsoft's MSDN library. For further reading regarding Transparent Data Encryption (TDE), refer to: https://msdn.microsoft.com/en-us/library/bb934049.aspx.   Created by: Arik Michaelovich, last updated: November 2, 2015 #### XMPL and Fault Tolerance Troubleshooting # XMPL and Fault Tolerance Troubleshooting **Summary**: The document aims at providing answers to problems related to fault tolerance, such as adding and removing XMPL servers, and general XMPL related issues, such as failure of creation and deletion of websites on a server. **Audience**: This document is intended for XMPie support personnel. Click here to read this article.   Created by: Keren Dahan, Galit Zwickel, Rafael Moreno, last updated: May 18, 2016 #### Generating PDFs with embedded ICC profiles # Generating PDFs with embedded ICC profiles **Summary:**This document summarizes how to set up uCreate Print and uProduce to embed ICC profiles in the PDF output. ## Sample application The application we will be testing is a simple variable postcard containing a single variable text frame and a variable (CMYK) image. ## Installing the ICC profile on the client (PC) - Download the **eci_offset_2009.zip** file from the http://www.eci.org/doku.php?id=en:downloads site. - Install the **ISOcoated_v2_300_eci.icc** file on the local machine (right-click > Install Profile). On Windows, profiles are saved in C:\Windows\System32\spool\drivers\color ## Generating in uCreate Print a PDF file without an embedded ICC profile - From the uCreate Print panel, select **Dynamic Print**. - On the left, click the **Advanced** tab. - Select the options as indicated in the following screen, and click **OK** to generate the PDF file. - The generated file is a "vanilla" CMYK PDF file without any embedded color profile. ## Generating in uCreate Print a PDF file with an embedded ICC profile - In InDesign, select **File > Adobe PDF Presets > Define**, and based on the **XMPieQualityHigh**preset,, create a new joboptions file with the output parameters as indicated in the following screen. - Save the file as**ISO_COATED_V2_300**. The joboptions file is saved on the local machine under C:\Users\\AppData\Roaming\Adobe\Adobe PDF\Settings\ ISO_COATED_V2_300.joboptions - When printing the document using uCreate Print, set this options file for the dynamic print and generate the PDF document (images must be in CMYK format) as follows: The color profile is embedded in the PDF document. ## Generating in uProduce a PDF file with an embedded ICC profile from an InDesign document type ### Preparation - Copy **ISOcoated_v2_300_eci.icc** to the uProduce server and install it as described above. It will be copied to the :\XMPie\XMPieExec\Normalizer\ICCProfiles directory. - Copy the **ISO_COATED_V2_300.joboptions** file to the :\XMPie\XMPieData\Shared\Settings\JobOptions directory on the uProduce server. - Reboot the uProduce server. ### Running the application - Log in to the dashboard, install the CPKG, and submit the job. - In the **INDD Document Advanced Parameters** section, make sure the PDF Export settings are set to the joboptions name copied to the server. The PDF file will be generated as a PDF/X-4and will embed the ICC profile. Note that images must be in CMYK format. ## Generating a PDF file with an embedded ICC profile using FreeFlow Core We will use Xerox FreeFlow core to add the required ICC profile to the PDF file. We will create a workflow to process the PDF files and save them to an output folder. We will then create a hot folder to allow automatic PDF file submission. - Log in to FreeFlow Core, go to **Workflow Setup**, the click the **Add** button to create a new workflow. The workflow will consist of 2 nodes: The Optimize node will be used to add the "ISO Coated v2 300% (ECI)" ICC profile and make the PDF file PDF/X-4 compliant: The save node is used to save the modified PDF file to a destination folder. In this case, we are saving the file to the D:\my_folder\PDFs\output folder. We will also prepend a date & time stamp to the filename: We have saved the workflow as "Frank ICC profile test". - Go to **Administration > Hot Folders** and create a new hot folder as illustrated below. The input folder has been set to "D:\my_folder\PDFs\input".  The workflow destination dropdown must match exactly the name of the workflow created above: - To test the workflow, drop a PDF file into the D:\my_folder\PDFs\input folder or use the Job Management and Status screen to upload the file. After a few seconds, the updated file should be copied to the D:\my_folder\PDFs\output folder. ## Generating a XLIM PDF file with an embedded ICC profile using FreeFlow Core In the previous section, we set up a FreeFlow Core workflow and a hot folder to add an ICC profile to a PDF file. We can use this workflow to allow the untagged PDF files generated by XLIM to be processed. - In uProduce, create a new destination and set the folder path to the hot folder input directory created above: - When submitting the job in uProduce, select the created destination as the job output destination. The PDF file will now be automatically processed by FreeFlow Core.   Created by: Frank Hubert: October 14, 2021, updated by Mohammad Mansour: April 12, 2022 #### Deploying XMPie server products in Microsoft Azure Cloud # Deploying XMPie server products in Microsoft Azure Cloud **Summary**: This article describes how to configure the Azure Cloud service to run XMPie software. **Audience**:  XMPie customers who wish to run XMPie Server products using the Azure Cloud service. Deploying XMPie Server using the Azure Cloud service is similar to deployment in virtual machine environments. However, the Azure Cloud service infrastructure imposes several limitations that should be taken into consideration prior to deploying XMPie products: - Our VM recommendations must comply with Azure's instance specifications. - Each Azure instance must include a dedicated Azure managed disk. - Print production is possible but the network connectivity/bandwidth might be a bottleneck when sending a print job from uProduce to the physical printer. See Virtual machine network bandwidth. - By default, configuration of the Azure network security groups prohibits any traffic. Therefore, the security groups must be set up to use ports that are authorized to access your XMPie server instances. See Create, change, or delete a network security group. - **Notice!** XMPie supports a dedicated Microsoft SQL server installed on an Azure virtual machine. It does not support Azure SQL managed instance and Azure SQL Database. See What is Azure SQL? ## More topics Deploying XMPie Server Products on Azure Cloud Computing Service   Created by: Mohammad Mansour on July 2022 #### Deploying XMPie Server Products on Azure Cloud Computing Service # Deploying XMPie Server Products on Azure Cloud Computing Service **Summary**: This article lists the main resource requirements and cost considerations for running XMPie PersonalEffect Server products on Azure Cloud Computing Service. **Audience**: Customers who wish to host their servers on the Azure Cloud Computing Service. ## Overview Azure Cloud Computing Service is a cloud computing platform that provides a suite of infrastructure services. The usage of Azure Cloud provides a highly reliable and secured infrastructure for deploying XMPie Server products. **Note:** XMPie supports a dedicated Microsoft SQL server installed on an Azure virtual machine. It does not support Azure SQL managed instance and Azure SQL Database. See What is Azure SQL? ## Infrastructure Azure Cloud Computing Service provide a reliable, secure, and highly-performing infrastructure for the most demanding applications, an infrastructure that matches XMPie server product solution. This service can also deliver a scalable cloud computing platform with high availability and dependability. The following is a sample configuration of the XMPie StoreFlow deployed on Azure Cloud Services within a VNet with a public and private subnets: The best security practice scenario is to run a public-facing web application server, while maintaining back-end servers that aren't publicly accessible. ## Security XMPie PersonalEffect deployed on Azure is designed to meet security best practices, such as: - **Environment isolation** – This is achieved by using Azure Private Cloud. - **Firewall** - Azure Firewall provides a complete firewall solution. See What is Azure Firewall. - **Secure Socket Layer (SSL)** - a protocol for data encryption over the internet is supported. - The physical security is handled by the service provider. ## Minimal System Requirements XMPie PersonalEffect can be deployed in any of the following configurations: - **XMPie Turn-Key Systems** – A basic XMPie Turn-Key system (excluding print) includes at least two servers: a single production server and a front-end web server. - **XMPie Enterprise Platforms** – The XMPie Enterprise Platforms (excluding print) includes at least three servers: Director, Extension and a front-end web server. As a minimum requirement, XMPie PersonalEffect runs on top of Dv4 and Dsv4-series. This series provides a balance of compute, memory and network resources. The main features for the series are: - Intel® Xeon® Platinum 8370C (Ice Lake) or the Intel® Xeon® Platinum 8272CL (Cascade Lake) processors, running at 3.4 GHz - Support for Enhanced Networking - Balance of compute, memory, and network resources The table below represents the Azure Computing Series specifications for each of the PersonalEffect packages (both for Turn-key and Platforms systems). These are the minimum requirements with the corresponding Azure Cloud Service instance types. | XMPie Turn‐key Systems | Instance Type | vCPU | RAM (GiB) | | --- | --- | --- | --- | | PersonalEffect Print | D2ds_v4 | 2 | 8 | | PersonalEffect Print Pro | D4ds_v4 | 4 | 16 | | PersonalEffect StoreFlow | D2ds_v4 | 2 | 8 | | PersonalEffect StoreFlow Pro | D4ds_v4 | 4 | 16 | | PersonalEffect TransMedia | D2ds_v4 | 2 | 8 | | PersonalEffect TransMedia Pro | D4ds_v4 | 4 | 16 | | | | | | | XMPie Platforms | Instance Type | vCPU | RAM (GiB) | | Enterprise Print - Director | D2ds_v4 | 2 | 8 | | Enterprise Print - Extension | D2ds_v4 | 2 | 8 | | Enterprise Cross Media - Director | D2ds_v4 | 2 | 8 | | Enterprise Cross Media - Extension | D4ds_v4 | 4 | 16 | | | | | | | XMPie add-on | Instance Type | vCPU | RAM (GiB) | | Front-end Web Server | D2a_v4 | 2 | 4 | | uProduce 8-Way MI | D8ds_v4 | 8 | 32 | The information above can vary and it is true as of July 2022. ## Azure Web Services Cost Details XMPie PersonalEffect deployed on Azure Cloud Services infrastructure includes a few elements to be considered when calculating the total monthly/yearly cost. Azure Cloud Services allows you to pay only for capacity that you actually use. In order to fully understand the total cost of any XMPie PersonalEffect package deployed on Azure Cloud Services infrastructure, you should be familiar with all Azure elements and services: - Sizes for virtual machines in Azure - Azure Cloud Services Reserved Instances - Availability options for Azure Virtual Machines - Azure disks and storage - Virtual networks and virtual machines in Azure - Azure Virtual Machines security - Backup and restore options for virtual machines in Azure   Created by: Mohammad Mansour on July 2022 #### XMPie Production Units (Clicks) # XMPie Production Units (Clicks) TThe PersonalEffect Turn-Key Solutions are offered in two license or price models: - Full license (unlimited) - Production unit usage license **Note:** The production units (also called "clicks") expire 1 year after activation. Additional production unit licenses can be activated at any time. If two production unit licenses are active at the same time, production units will be decremented from the license that was first installed, until the license has expired, or no production units remain on that license. ## Production unit usage calculation ### Proof production Proof production does not incur any production unit charges. ### Print production The calculation of production units for print production depends on the printed document size. Two facing US-Letter-size (8.5 x 11 inch) pages with 0.5 inch bleed is equivalent to 1 click or one production unit. This is the **single click area** or print area that consumes one click. For documents of different sizes, the cost in clicks is calculated like this: #### Click calculation `“Total Printed Area” / “Single Click Area”` #### XMPie formula for the calculation of clicks per job `(“Number of Pages Composed” * “Single Page Area”) / “Single Click Area”` ### Cross-media production For PersonalEffect TransMedia servers using a production unit license, production units are also consumed for cross media production at these rates: - Email Send (either mass or triggered) = 0.5 or half a production unit per recipient - Personalized Page View = 0.0625 or 1/16 of a production unit per recipient. - Update or insert of recipient data = 0.125 or 1/8 of a production unit per recipient. - Update/insert of recipient data + response email = approx. 0.75 or ¾ of a production unit per recipient. ## Reviewing production unit charges From version 25.2, the click charge for each job is listed in the uProduce Job Center. Even if the server has a full unlimited license, the clicks used for each job are displayed since this information may be of use when billing the end customer. In the case of unlimited licensed servers, the clicks will be noted as "(not charged)".   Created by: Mohammad Mansour, updated on December, 2025 ### uCreate Print # uCreate Print #### Best Practices for Variable Data Print (VDP) Design # Best Practices for Variable Data Print (VDP) Design **Summary**: This articles provides best practices for VDP design to ensure maximum print production performance. **Audience**: Graphic designers and prepress production staff who are responsible for the creation, preparation and/or production of documents for XMPie variable data print. **Prerequisites:** This article assumes knowledge of XMPie products, Adobe Photoshop, Illustrator and InDesign as well as general prepress skills. ## Overview Adobe InDesign is a very flexible product and it has many features to make it quick for non-technical people to create beautifully designed documents. However, many of these features can add complexity to the document that causes - Increase in the time it takes to create the print output. - Increase in the size of the output file (and, therefore, the time it takes to send to the printer). - Output files which are not efficiently processed on the printer, causing the printer to run slower than its rated speed. In static or one-off print jobs, these tend to be minor indiscretions that we can live with, but when printing variable or dynamic print jobs with thousands of records, we need to ensure these issues don’t create exponential problems with file size or production speed. This article lists many common things to look out for to prevent these issues. Much of this is just “good prepress” that should be done for any digital print, but there are also some points which are unique to variable data print. ## Designing for VDP XMPie provides a number of different ADORs or content object types, and in many cases there are different ways to achieve the same output. For example, to create a brochure with different company logo and text, you could: - Create different layers in InDesign for each design and use Visibility ADORs to turn on or off the layers. - Create different pages in InDesign for each design and use Visibility ADORs to turn off or off the pages. - Have only one page and layer in InDesign, and use a Graphic ADOR and a Text ADOR to change the content on the page. - Have only one page and layer in InDesign and use a Graphic ADOR and a Text-File ADOR to change the content on the page. - Export out the whole brochure page for each company as a graphic, and create another template in InDesign which uses one Graphic ADOR to load the right graphic for each company. All the above options are valid and would result in the same output. However, what would happen if your brochure had say 50 different company logo/text combinations to manage instead of just 2 or 3? In this case, options 1 and 2, would result in many pages or layers in the InDesign document and maintaining or editing the document would become difficult. Even option 5 (which would result in the smallest and fastest processing document) would take much longer to setup and also be very difficult to maintain changes. So, in this example, options 3 or 4 are most sensible since they result in a document which is easier to manage and update over time and still produce efficient output. The difference between the two options is whether to use a Text ADOR (where the variable text is coming from the database or plan file) or Text File ADOR (where the text is coming from a text file asset). The decision here would depend on the amount of text and how you wanted to make updates/changes in future. In general, Text File ADORs are a better solution when there is a lot of text since they are cached more efficiently. But, for small amounts of text, Text ADORs can be easier to update by changing the database, or the plan file. The point to be made here is that there are many ways to create variable documents, and success will come from having at the start, a clear understanding of what will be changing in the document, how the document will be updated in the future and which ADOR types are most efficient. ## Watch a video Design for VDP introduction Planning for efficient design ## Transparency Transparency is the number one cause for slow production, large output files, and slow print processing times. InDesign provides many different effects that involve transparency and can be applied to either text or graphic boxes. Here are just two: | Feather | Drop Shadow | | --- | --- | The problem with transparency is that many printers or output devices cannot correctly reproduce transparency between different objects, so to ensure that you get printed what you see on screen, Adobe InDesign “flattens” or combines these objects into one object when you print it. Naturally, this process takes some time, and even when you’re printing a normal static InDesign document you’ll notice that it takes a bit longer if there are transparent effects in the document. XMPie works perfectly well with transparency, and if it is needed for your design it is certainly possible. But, as a designer, you need to be aware of the impact of transparency on production time so that you can allow additional production time, or minimize the impact by identifying and changing the way the transparent effect is used. The biggest issue for transparency in variable data printing comes into effect if one or more of the boxes that need to be flattened contain variable data – either image or text. ### Example 1: Flattening boxes with variable data The image above shows a text box (with a drop shadow) containing the “first name” ADOR which overlays a graphic box that contains a static image. To reproduce this transparency effect, XMPie has to flatten the text box and graphic box together. Since the first name can be different for every record in the database, this multiplies the time needed to flatten the image for all the different names, and multiplies the size of the output file. Let’s assume that the image size is 1MB, that you are printing 1500 records, and that 200 people in the database have the same first name as someone else already processed: InDesign & XMPie have to flatten the two boxes 1500 – 200 = 1300 times. If it takes 1 second to flatten the image with the transparent effect, then this will add 1300 seconds or 21.6 minutes to the total job processing time. And, the output print stream has to include the 1300 flattened 1MB images (approx. 1.26GB) of data just for this graphic - not including any other pictures, text, etc.!!! ### Detecting transparency issues The first step to optimizing is to identify which elements contain transparency effects. XMPie provides a preflight tool which will do this. Select **Preflight** from the uCreate Print panel: Another method for detecting transparent effects in your design is to use the InDesign **Flattener Preview** panel: ### Optimizing transparency issues Once you have identified the offending object you can take steps to remove or reduce the performance problem: - If the overlapping transparent objects are static, consider flattening them in Photoshop and placing it into InDesign as a graphic which is already flattened. - When a placed graphic contains transparency – for example the PNG graphic shown in the image above – there are two better ways to achieve the same effect without transparency and without impacting performance: - Open the graphic in Photoshop, create a path around the object (an orange in this example). Set the path as a clipping path, and save the image as an EPS with the clipping path. - Resave the graphic as a JPG image. This will remove the transparency. Then in InDesign, select the graphic box and choose **Clipping Path** from the **Object** menu. Use the **Detect Edges** option to automatically create a clipping path around the object, and you can then use the pen tool to adjust the clipping path if necessary. - If possible, move the box with transparency so that it does not overlap other boxes – especially boxes containing dynamic content. - Consider not using the transparent effect. - If there is a bitmap graphic in one of the affected boxes, reduce the graphics file size to the minimum by ensuring that it is correctly cropped, scaled and is at the lowest possible resolution to provide the necessary print quality. (This will help reduce the flattening time and output file size.) - If the box with the transparent effect overlays more than one box, try to reduce this to the minimum. ### Example 2: Transparent effect overlaying more than one box In the Example 2, all three boxes would be treated as one object. Now, if the yellow box was actually a large graphic which was static for all records and the blue and/or pink boxes contained variable content, we would again encounter the problem discussed in Example 1. However, depending on the design of your document, it might be possible to make a change so that only two objects have to be combined (blue and pink in the below example): ### Example 3: Splitting the yellow box into two boxes ### Example 4: Placing the blue box back Evaluate and minimize the problem effect where it affects dynamic content. For example, in Example 5: On the left is one text box placed over an image and set with 80% transparency. Because the text box contains the First Name ADOR, the transparency effect on the text box will be applied to the text it contains. And, because of the variability every unique first name will have to be flattened with the background image increasing production time, and increasing the output file size. On the right, are two boxes – one just for the white background which has the 80% transparency applied. The second box placed over the top has the text containing the First Name ADOR. In this case, the white box and background image will be flattened once. ### Example 5: Minimizing transparency effect on variable content While the effect is not exactly the same (the text is 100% opaque and there is no building showing through the text) it is very similar and perhaps the customer would accept this slight design change – if so, the savings in production time and output file size would be significant. ### Production options for managing transparency XMPie provides a powerful production option called X-DOT (XMPie Dynamic Object Transparency) which enables you to quickly and easily control transparency at production time without having to modify the InDesign document. X-DOT provides three options: - Use X-DOT – the output will honor all transparency setup in the InDesign file. - Ignore X-DOT – the production engine will remove all transparency effects in the file. - Ignore X-DOT where needed – this option applies intelligence to determine if the transparent effect will impact performance by interacting with a variable object. With this option, individual transparent effects will only be removed if they will impact performance. Those which don’t impact production speed will remain. ### Output format considerations for transparency XMPie provides several different output formats for use when you are creating the final print file. Different output formats have different options available. When selecting PDF/VT-1 as the output format, the **INDD Document Advanced Parameters****> Transparency Implementation** section shows an option to tell XMPie not to flatten the transparency, and to leave this to the RIP/printer. Naturally, this will make the XMPie production much faster, but may increase the processing time on your printer – assuming that your printer will handle PDF/VT-1 files with transparency. ## Watch a video Impact of transparency on dynamic print productions ## uImage performance Creating personalized images is another time consuming task. Also, since there will be individual images for each recipient in the database, output file size can be large and print production time long because of amount of data to process. - Ensure Photoshop is set up and configured as efficiently as possible, as per Adobe’s recommendations (https://helpx.adobe.com/photoshop/kb/optimize-photoshop-cc-performance.html). - Reduce the physical size/scale of the Photoshop template so will be placed into InDesign at 100%. - Remove any extraneous image in Photoshop, rather than cropping in InDesign. - Reduce the resolution of the Photoshop template to the minimum necessary for the required output print quality. (For digital print this should be about 150-200 dpi. Any more resolution will not increase the visible print quality, but will impact output file size and printer performance.) - Minimize the number of layers in the Photoshop template by flattening or merging layers where possible. - If using actions, remove any unnecessary steps, and test different options that provide similar effect (especially filters) to see if one is faster than another. - Only use uImage where necessary – if you can achieve a similar effect by overlaying text on the image in InDesign, you will save time. - Make sure you use the “OPT:” Optimize option in uPlan. This first checks to see if there is already a personalized image for the recipient, so it will not waste time creating images that already exist. - If the area of personalization on the image is only a small part of the whole image, consider using the uImage Optimize option. This creates a smaller overlay image for each recipient, so the amount of extraneous image being duplicated in the output stream is dramatically reduced: ## Watch a video Optimizing uImage files to get the fastest production and smallest output file ## Choosing the right output format To get shortest time between click and clunk – the time between your click of the **Generate VDP Output** option and clunk of the print landing in the printer’s output tray – you will also need to choose the best output format for your printer. XMPie provides several different output formats. Here is a table showing the available output types and their advantages and disadvantages: | Output Type | Advantages | Disadvantages | | --- | --- | --- | | PDF/VT-1 | PDF/VT-1 is a form of PDF which is designed for variable or transactional printing; Recommended image asset type: PDF ; Can accommodate different page sizes | Some older RIPs may not support PDF/VT-1; Some older RIPs may not correctly support transparency, booklet, or other PDF/VT-1 features.; Some older RIPS may not give page previews or impose PDF/VT-1 in the same way that they do with standard PDF files. | | PostScript | PostScript is supported on nearly all production RIPs; Recommended image asset type: EPS | Not all printers can take advantage of caching reusable elements in Optimized PostScript; PostScript does not have a definition of “booklet” so duplexing a job with an odd number of pages will cause problems. | | Adobe PDF | PDF is supported on nearly all production RIPs; Recommended image asset type: PDF; Can accommodate different page sizes | Cannot do Dynamic media selection; Like PostScript, there is no definition of “booklet” | Things to be considered when selecting the output format include: - The time it takes XMPie to produce the output format. - The size of the output file (and therefore the time to get it across the network to your printer). - Whether your RIP can process the particular output format. - The speed at which your RIP or printer can process the output format. ### Splitting into batches On the uProduce server, if you have extension servers, or a multiple instance (MI) license of InDesign Server, you are able to process multiple jobs at the same time. By splitting a large job into multiple batches, means that as the first batch completes on the uProduce server, it can be sent to the printer and start processing/printing while remaining batches are being prepared on the uProduce server. In other words, the printer is able to start printing, while at the same time, the job is still being produced. This feature does have one drawback. XMPie is able to optimize the caching of image assets in the output file, so that if many records use the same image asset, it is only placed into the output file once. However, when you split into batches, the same image asset will need to be placed into each batch where the image is required. If your RIP supports global caching, this is less of a problem. ### InDesign image rendering The uProduce setting **INDD Document Advanced Parameters > ****Image Rendering **enables faster performance. XMPie can insert all images (both image assets, and non-variable image resources) directly into the output file. This means there is no production delay while we programmatically load the images into InDesign and export them out again. However, when you select the performance option, XMPie puts the linked images into the output file as-is, without making any changes to the images. This means there are some important things to note: - You should crop your images in an image editing application rather than using InDesign to crop images. Failing to crop images and using the non-InDesign Rendering option will result in larger print output files. - When using PDF files as an image, the non-InDesign Rendering option will put the entire PDF file into the print output file. So you should ensure that the PDF image file has only one page, and is optimized. If necessary, place the PDF into InDesign and export out a new PDF. Then, use this PDF as the image asset. - If you are using JPG images, and you need to apply ICC profiles to the image in InDesign for color management reasons, then you need to select the Require InDesign Rendering option or the ICC profile will not be applied. ### Step and repeat imposition If you select to do imposition in XMPie, this process happens at the end of all the normal production. Therefore, adding step and repeat, will increase the total processing time. For large jobs, you may find it is more efficient to use the RIP’s imposition features, or using 3rd party imposition tools. ## Text wrapping If there is an ADOR object involved in text wrap (either static text wrapped around a variable image or variable text around a static or variable image) the text flow may have to be evaluated for every record being processed. While not involving a huge amount of processing time, it can also affect the reusability of objects in the print stream, so may increase the amount of data being sent to the printer, in addition to the processing time. ## Image assets - XMPie provides greater optimization with PDF assets when creating PDF-based output formats (Adobe PDF and PDF/VT-1). If using PDF/VT-1 output type, try to ensure that the assets are PDF for better performance. - XMPie provides greater optimization with EPS assets when creating PostScript-based output formats (PPML, VPS, VIPP, Optimized PostScript). If using one of these output formats, try to ensure that assets are EPS for better performance. - Avoid using native Photoshop or Illustrator files as assets. Especially if they include transparency effects. “Export” or “Save As” in Illustrator/Photoshop and save to JPG, EPS or PDF. Remember to choose an image file format which can be referenced outside of the print stream if you wish to take advantage of this feature. Refer to choosing the right output format. - If you need to mask an image, use the EPS clipping path method. This will use efficient PostScript to achieve the masking rather than an inefficient transparency effect that will cause production performance problems. - Reduce layers by flattening, or merging layers in bitmap graphics to reduce file size before exporting. - When exporting/saving image assets, use Binary (rather than ASCII) encoding methods when possible – this will reduce file size. (Binary/ASCII options are usually offered when exporting to EPS, but may also be offered with other formats depending on your image editing software.) - Ensure that placed bitmap images are cropped to the right size for placement in InDesign. Excess image in the print file contributes to large, slow print files. - Don’t place EPS files within other EPS files. - It is preferred to convert fonts to outlines in your vector EPS files. - In vector graphics, use a specific line width rather than “hairline”. EG use “0.25pt”. - Reduce the number of points in your vector artwork. The complex vector path on the left can be reduced to just three points: The Illustrator's **Simplify** option makes easy work of optimizing vector paths: ## ADOR caching One of the most powerful features of XMPie's patented dynamic print technology is the ability to cache objects in the output stream so that reusable objects are placed into the output file only once and are referenced for all additional records/recipients that use the same object. This means that the print file is created faster, is smaller in size, can be sent to the printer faster and processes faster on the printer or RIP. XMPie makes the decision which objects are cached automatically, based on the ADOR type. Usually, Graphic and Text file ADORs are reusable objects, and are thus cached. Text ADORs, on the other hand, are usually unique and will not be cached. However, occasionally, it may be desirable to change this automatic behavior for certain ADORs. **Important!** It is recommended that you change this automatic behavior only if you fully understand the caching mechanism, and the impact of the change. InDesign objects XMPie treats objects in the InDesign document in one of three ways: - **Fixed:** When the object contains no ADORs. - **Reusable:** When the object contains a file-based ADOR, such as a Graphic ADOR or a Text File ADOR. - **Unique:** When the object contains any other type of ADOR, such as a Text ADOR. An "object" in InDesign is a text frame or a graphic frame. ### How are reusable objects used? Records/recipients to be processed are checked to see if the same Graphic or Text File ADORs contain a file that is used for more than one record/recipient in the database being processed. Reusable object information is stored in memory as the production job is processed. This process is designed to work where Graphic or Text File ADORs contain a file that is used for more than one record/recipient. In some unusual circumstances, it is possible for a Graphic or Text File ADOR to call an asset which is unique for every record or recipient in the database, for example a personal photo of each recipient. In this case, storing the InDesign object in memory serves no purpose and for particularly large databases, and large asset sizes, can lead to excessive memory use. If your Graphic or Text File ADOR will be unique for every record/recipient in the database, then you can disable the caching mechanism by renaming the ADOR to include **.unique** at the end of the ADOR name. For example, a Graphic ADOR named "photo" can be renamed "photo.unique" to disable the caching mechanism. ### Risks of disabling the caching on an ADOR If you add **.unique** to the name of a Graphic or Text File ADOR which contains an asset that is used by multiple records/recipients in the database, then the InDesign object will not be cached and the object will be added to the output file for each record/recipient. This means that the print production will be slower and create a significantly larger print file than needed. ### How are Unique objects used? Unique objects are inserted directly into the output file for each record/recipient processed and are not cached. For example, an InDesign text frame that contains the body of a letter with static text as well as some Text ADOR, is considered unique since the chance of another record/recipient with the exact same values in each Text ADOR used in the text frame, is very low. In some occasions, it is possible for a Text ADOR to contain a value which is reusable by some records/recipients in the database. For example, a Text ADOR "club level" could contain the values "Gold", "Silver" or "Bronze", where many recipients will use one of these values. If this Text ADOR is used in a text frame in InDesign either by itself, or with only static text (meaning that the text frame does not contain other unique ADORs) then it is possible to enable the caching mechanism by adding** .reusable** at the end of the ADOR name. For example, "club level" can be renamed "club level.reusable" to enable the caching mechanism. ### Risks of enabling the caching on an ADOR If you add **.reusable** to the name of an ADOR, then InDesign objects that use that ADOR will be cached and stored in memory to check for other records using that InDesign object with the same ADOR value. This means that more objects will be stored in memory, and for large databases, if used incorrectly, this increases the risk that the available memory may not be sufficient to complete the entire production job. ## Asset management Manage your assets wisely. When uCreate or uProduce processes a print file that has image or text file assets, it will search through the assets folder to confirm the required asset exists, and to set the file path and extension in the output file. If you set the assets folder to c:\ or have thousands of unnecessary files and folders in the assets folder, then it will take longer for XMPie to find and reference each asset. In uCreate, correctly set the assets folder, and ensure it does not contain irrelevant files and folders. In uProduce, it is possible to set many different assets folders. Before processing in uProduce, you can change the search order, or enable/disable different asset folders (e.g. for lowres and highres assets). If only a part of the campaign’s assets are required for a specific production job / document - create a designated assets source for it. Change the assets sources order or disable unnecessary asset sources, if you can, for the duration of the production. ### Windows Search Indexing Currently, the **File System asset source** type, which is not managed by XMPie but rather by the customer, can contain many folders and subfolders in a deep hierarchy. During production, searching for the required files may take a long time, and could thus affect asset-resolving performance. It is possible to use **Windows Indexing**, when using the File System asset source type, to improve search performance. If you observe poor performance when searching for asset files, it is advisable to use Windows Indexing. For more information, see Improving Search Performance using Windows Indexing. ## Table ADORs Table ADORs are not cached as reusable objects in the print stream – they are evaluated for every recipient. Where performance is critical, avoid Table ADORs. Production will be especially slow if the Table ADOR includes an image. The entire table is treated as unique for each recipient, so any images placed in the table will be embedded in the output for each recipient. IE if multiple recipients have the same image in their table, the image will be included in the output file multiple times. Customers often think that using a table ADOR is the only way to add a variable number of dynamic images to the design. It is much better to use a few graphic ADORs and where the customer requires less images than the number of graphic ADORs, use simple logic to place a 1px x 1px transparent or white image instead. ## Visibility ADORs It is very common for people who are not familiar with designing for variable data publishing, to create an InDesign document with several pages or layers – each of which represents a different market segment - For example, one page/layer for male recipients; and a second for female recipients. When the XMPie operator gets this document, it can be very easy (and lazy) to simply create a visibility rule to turn on/off the relevant page/layer in the design. It is much more efficient to take a “template” approach and create “containers” on the page which hold text or graphics that change based on the database logic. Use layer and page visibility only where there are significant design changes to the document layout which cannot be achieved with text/graphic/style ADORs. ## XLIM If you have XMPie PersonalEffect (and therefore have uProduce server), then you also have a feature called XLIM (pronounced “slim”). XLIM is XMPie’s own document composition engine, similar to InDesign, but with a reduced number of design features. Despite having a few less design options, XLIM provides a tremendous boost to performance with most documents process at least 30 times faster in XLIM. XLIM still uses Adobe InDesign’s desktop version to create the design, but when exporting the document to a Campaign Package (CPKG) or Document Package (DPKG) to upload it to uProduce, you also have the option to save your design as a XLIM document or package. Also, the uCreate Print's Dynamic Content panel has some options to either: - Check the InDesign document to see if it is compatible with XLIM. - Work in XLIM design mode – which warns you if you create an object which cannot be supported in XLIM. The speed improvements offered by XLIM are so large, that many of the other performance tips suggested in this document are almost insignificant. If performance is critical for your job, then you should be working with XLIM . However, this feature is only available with the server versions of XMPie. ## General prepress tips - Try to place ADOR objects in individual text or graphic boxes. If possible, don’t place text boxes or image boxes that contain ADORs “inline” in another text box. If there is an ADOR object in any of the boxes, it will causes the entire group to be treated as unique for each recipient, rather than just the smaller box containing the ADOR object. This will result in poor performance. - When placing images/graphics into the InDesign file, place them in using the Ctrl-D keyboard shortcut or File->Place menu option. Don’t copy and paste from other applications. - Use the Links palette to ensure that all images are “linked”. Don’t “Embed” images into the document. The icon in the image below shows that this image is embedded in the InDesign file. - InDesign provides some drawing tools for boxes, lines etc. Use these only for simple tasks. If you are creating more complex drawings, use Illustrator or Photoshop to create the image, and place that one item into InDesign. - Use the **Direct Selection Tool** (white arrow) in InDesign to click on graphic boxes. The red line in the image below shows the full dimension of an image which has been cropped significantly in InDesign. It should be opened in Photoshop, cropped, resaved and placed again into InDesign. This will prevent excess data being sent to the printer, decrease output file size and increases performance. - Ensure that placed bitmap images are scaled to the right size for placement in InDesign. Excess image in the print file is a main contributor to large print files. By using the “Effective Resolution” details in the **Info** panel you can see that the image selected in image below was originally 240dpi, but has been scaled down in InDesign and is now 888dpi which means that more than three times the amount of data necessary will be sent to the printer. - Don’t rotate images in InDesign other than 90 degree increments. If you need to rotate a graphic other than 0/90/180/270 degrees – reopen the graphic in Photoshop/Illustrator, rotate, save and replace in InDesign. InDesign sends the rotation instruction to the RIP. 90 degree rotations are easy mathematically for the RIP. Other increments will cause degradation in RIP performance. ## Watch a video Basic prepress tips ## Font tips - If your design includes many fonts, you may find it is faster to have your fonts already installed on the RIP, and to exclude the fonts from the print stream. - When designing on a Macintosh, remember that if you are going to process the document on a uProduce server, or if you wish to exclude the fonts from the print stream and load them separately to the RIP – remember that not all Macintosh fonts can be used on a Windows server. Preferably keep to OpenType (OTF) or TrueType (TTF) fonts which are cross platform compatible. - InDesign is not able to omit double-byte fonts from the print file. If you choose not to embed fonts, single-byte fonts will be omitted, but double-byte fonts will still be embedded, but will be subsetted. (Note: In v4.5 and earlier, when creating PDF output there is no option to omit (or subset fonts). Contact XMPie support for information on how to setup subsetting of fonts with PDF output.) ## Glossary ADOR Automatic Dynamic Object Replacement – Also known as "Content Object". This is the XMPie object which is placed into the InDesign layout and is replaced with information from a database at the time of production. RIP Raster Image Processor – Most production printers will have a dedicated PC or server known as a RIP which receives the print file and process it in preparation for printing. Subsetted / subsetting fonts The print output file normally includes or excludes the fonts required for the job. Another option is to include only those font outlines for the characters that are actually used in the print job. This is called font subsetting. This is particularly useful for double-byte fonts which can be very large files because of the huge number of characters in the font set. VDP Variable Data Print – The art of combining a print design with a database. Also known as VI (Variable Information), 121 (one to one) and several other acronyms. X-DOT XMPie Dynamic Object Transparency – a powerful XMPie feature which enables management of transparency related issues automatically at production time. XLIM XMPie Less Is More – XLIM is XMPie’s own document composition engine. Similar to Adobe InDesign Server, XLIM is able to take a document and a database and create variable data print output. Because XLIM has a smaller overhead than InDesign Server, it is able to compose output much faster, but with less design features. ## Watch a webinar Designing for Performance: Optimizing VDP Designs High volume creative VDP campaigns   Created by: Stephen Couch, last updated by Mohammad Mansour: January 2023 #### Advanced RIP-specific features with XMPie # Advanced RIP-specific features with XMPie **Summary**: This article explains advanced XMPie features, such as Dynamic Media Selection and external or references images for popular RIPs and printers. **Audience**: Pre-press production staff who are responsible for creating the variable data output from XMPie and setting up the files for production on the RIP. **Prerequisites:** This article assumes knowledge of XMPie products, basic Windows/Solaris Operating System skills, as required by your RIP, and experience with your RIP's user interface. ## Overview XMPie provides some output options which take advantage of different RIPs features including: - **Dynamic Media Selection** – to change paper trays for different pages in the job for each recipient. - **Image Referencing** – the ability to omit images from the output file so the data being sent to the printer is smaller and quicker to move across the network. Also some RIPs may process images faster when they are referenced outside of the print file. This article aims to show how to use these features with a selection of different RIP/Printer combinations, highlighting common mistakes and how to avoid them. It should be noted that while XMPie provides access to these features, it does not control the way the features are implemented on different RIPs. This article is a guide only, and some testing will be necessary to determine the best performance for your individual job, and the setup required on your RIP. ## Dynamic Media Selection XMPie enables two primary types of Dynamic Media Selection: - You can set a specific media type to a particular page in the InDesign template. That page will then use that paper type for each recipient. For example, page 1 will be plain paper; page 2 will be gloss paper; and this will apply to all recipients in the database. In this document, we’ll refer to this as static media selection. - You can also use business rules in an ADOR object to dynamically change the paper type for a particular page based on a value in the database. For example: page 1 for recipient 1 might be plain paper; but, for recipient 2, page 1 might be gloss paper. In this document, we’ll refer to this as dynamic media selection. To achieve media selection with XMPie: - Set up the required media selections in the InDesign document. - Create the print file in a format which supports media selection. - Load the required paper stocks to the printer. - Configure your RIP and print queue to support the media selection calls. - Submit the print file. The following sections describe these steps with a variety of different production RIP and printer combinations. ### Setting the media selection in InDesign #### Static Media Selection - Open the **Pages** palette in InDesign, and select (by double-clicking) the spread or page that you want to assign to a specific media. In the example below we are setting the media for spread/page 2. - In the fly-out menu on the **Pages** palette, select **Dynamic Media Selection**. This option will only appear if the InDesign document has already been connected to a database or plan file in the uCreate Print palette. - In the **Dynamic Media Selection** dialog, select the **Media Type**, **Color** or **Weight** option and enter the required value for your chosen output method as described in Entering the right media value for your output type. . #### Dynamic Media Selection - First create an ADOR object with the required logic. The value the ADOR returns should be a string value in the required format described in Entering the right media value for your output type. Examples of an expression to select different media based on the gender database column are presented below: uCreate Print: uPlan: - Open the **Pages** palette in InDesign, and select (by double-clicking) the spread or page that you want to assign the media to. In the following example we are setting the media for spread/page 2. - In the fly-out menu on the **Pages** palette, select **Dynamic Media Selection**. This option will only appear if the document has already been connected to a database or plan file in the uCreate Print palette. - Use the **Media Type**, **Color** or **Weight** option to select the ADOR object you created in step 1. This is shown in Figure 5. ### Entering the right media value for your output type The trick now, is to know what media type value to enter in the **Dynamic Media Selection** textbox, or the ADOR object, as this will vary depending on your RIP or output device and the output format that you will choose to print. #### Choosing the output format Dynamic Media Selection is available with VIPP, VPS, PostScript, PDF/VT-1 and PPML/VDX output formats. - If you have a Xerox FreeFlow Print Server (FFPS), VIPP should be the most efficient output format for you. First, check that you have a VIPP license enabled on your RIP. From the **Setup** menu, choose **Feature Licenses**. - If you see **Enabled** next to** Variable Intelligent PostScript Printware**, then you can use VIPP output from XMPie. - If VIPP is **Disabled**, then you should use PostScript or PDF/VT-1 output from XMPie. - If you have a Creo Spire print server, then VPS should be the most efficient output method for you. VPS is available on all Creo Spire RIPs. - If you have a Kodak or Xeikon print server, check if it supports PPML/VDX. If so, then this should be the most efficient output method for you. - If you have a different print server to those listed above, check the documentation to see if it supports VIPP, VPS or PDF/VT-1 output formats. These should be most efficient if they are available. Alternatively, select PostScript. #### Media type value required for VIPP output for Xerox FFPM For VIPP output, you need to select the Media Type option, and set a value in the following format: MediaType:MediaColor:MediaWeight Examples: Plain:White:90 Drilled:Yellow:120 It is also possible to specify only certain media parameters, in which case you should ensure to enter the parameter in the correct place: Examples: Change type only: Plain:: Change color only: :Red: Change weight only: ::90 Refer to these images for examples of using these values for VIPP output: #### Media type value required for VIPP output for Xerox iGen FFPM With the Xerox iGen, the required Media Type value is almost identical to the previous example. However, the iGen requires two additional parameters in the media value: MediaType:MediaColor:MediaWeight:MediaFrontCoating:MediaBackCoating Examples: Plain:White:90:Uncoated:Uncoated Plain:White:120:Gloss:Uncoated By default the valid settings for iGen coatings are: Uncoated, Glossy, HighGloss, SemiGloss, Satin, and Matte. It is also possible to use other coating settings, but these must first be setup on the iGen Press Interface (not the FFPM). #### Media type value required for VPS output to Creo Spire print servers For VPS output format, the Media Type value can be any text value. You can use spaces and other characters, but you must be careful that you replicate the name exactly in both Dynamic Media Selection dialog in InDesign and in the media library on the Creo RIP. Example of use for VPS output #### Media type value required for PPML/VDX output The VDX output by XMPie complies with the PDM2 specification. This specification provides three media types, which can be referenced in the output: - Body - Insert - Cover If you wish to output VDX for your RIP, you can enter any of these three media types in the Dynamic Media Selection dialog in InDesign, and set the appropriate media settings for the corresponding media type on your RIP. Note that the Body/Insert/Cover keywords are case sensitive. If your RIP processes a later specification of VDX (eg ANSI rather than PDM2), then you are not restricted to these three media types. However, to get XMPie to use media calls that are not PDM2 compliant, you must contact XMPie Support to have a registry setting changed so uCreate Print or uProduce will put non PDM2 compliant media calls into your VDX output. #### Media type value required for PostScript output to Fiery EX-P2100 The EX-P2100 has pre-configured media types already defined. You must use one of: Plain, Transparency, Preprinted, Tabstock, Labels, Recycled, Heavy, Extraheavy, Lightpaper, HeavyTabstock, Usertype1, Usertype2, Usertype3, Usertype4, and Usertype5. You can use any of these pre-defined media type values. You will later remap these values to stocks that you define. For example you can use Heavy, and later map it to a stock which is normal weight. Example of use for PostScript output #### Media type value required for PostScript output to Xerox FFPS FFPS has some pre-configured media types already defined. For example: Plain, Transparency, Preprinted, Postcard, Labels, Recycled, Adhesive, etc. You can choose to use one of these predefined values, or to define a custom media type. If you choose to use a custom value, you can use any string value, but you must name it exactly the same in both the Dynamic Media Selection dialog in InDesign and on the RIP stock settings. Also, remember that the values will be case sensitive on FFPS. Example of use for PostScript output Note that while most Xerox FFPS rips support Media Type, some (for example Xerox Color 1000 Press) do not support Media Type, and Media Color and/or Media Weight must be used instead. #### Media type value required for PDF/VT-1 output to Xerox FFPS Only FFPS versions after v7 will support dynamic media selection with PDF/VT-1 output format. The Media Type, Media Color and Media Weight values can be either a pre-configured name or custom – same as for PostScript output type described above in section 3.2.7. Note that while most Xerox FFPS rips support Media Type, some (for example Xerox Color 1000 Press) do not support Media Type, and Media Color and/or Media Weight must be used instead. #### Media value required for PostScript output to other devices/printers It is possible that other printers which are PostScript-compatible may be able to use Dynamic Media Selection from XMPie PostScript output. You will have to refer to your printer’s documentation or contact the manufacturer. XMPie puts the media call into the PostScript in the following format: <> setpagedevice Where xxx will be the value you enter into the Dynamic Media Selection dialog. You will have to determine whether your RIP/printer will support the MediaType parameter of the setpagedevice PostScript call, and what value is required to achieve the selection of the media you want on your printer. If your printer does not support media selection based on the MediaType setpagedevice PostScript call, it is also possible to enter more complex PostScript commands which will replace or redefine the setpagedevice operator. This requires a strong knowledge of PostScript programming, and a registry change which instructs XMPie to accept PostScript commands in the **Dynamic Media Selection** dialog, or ADOR object. To set this registry setting, create a new string value called: UserWritesCompleteMediaCommand At this location: \\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\XMPie\Common\1.00.000 Set the data value to: 1 For uProduce servers with extension servers, the registry setting needs to be made on all servers Directors and Extensions. **Note:** It is recommended to make a backup of the registry before making changes. Errors in the registry can make the system inoperable. To use custom PostScript setpagedevice commands with uCreate Print on Macintosh, edit: Library->Application Support->XMPie->XMPRegistry.plist Create two new lines as below: UserWritesCompleteMediaCommand 1 **Note:** Customizations to the registry and the XMPRegistry.plist files will be removed if you “repair” or “modify” the uProduce Server or uCreate Print installer, or if you upgrade to a newer version. Now that you have set the registry to accept custom PostScript commands, you need to identify from your RIP vendor the setpagedevice command that is needed in the PostScript. For example, for the EFI Fiery RIP on a Xerox 700 DCP, the values that should be entered into the **Dynamic Media Selection** dialog to select different trays with XMPie PostScript output are: << /XJXsettrayselV2 [ 1 ] >> XJXEFIsetpageproperties %%Tray 1 << /XJXsettrayselV2 [ 4 ] >> XJXEFIsetpageproperties %%Tray 2 << /XJXsettrayselV2 [ 5 ] >> XJXEFIsetpageproperties %%Tray 3 << /XJXsettrayselV2 [ 20 ] >> XJXEFIsetpageproperties %%Tray 4 << /XJXsettrayselV2 [ 2 ] >> XJXEFIsetpageproperties %%Tray 5 As you can see, these settings are very specific to the RIP/printer involved. Therefore, you need to get this information from your RIP/Printer vendor and it is not possible for XMPie Support to provide advice on this. ### Creating the print file with XMPie #### uCreate Print - On the uCreate Print fly-out menu, choose **Dynamic Print** and select required output Format. The image below shows the selection of VIPP output from uCreate Print. #### uProduce Server - Select the document in uProduce and click **Process**. Select the required Print Format. The image below shows the selection of VIPP output. ### VIPP Project Container option If you are printing to VIPP output on uProduce, there is another option which you may choose to select. XMPie provides an option to create a VI Container or VPC (VIPP Project Container) as shown below: A VPC is a zip file containing the print file, plus assets and resources separate to the print file, but included in the zip. If you choose to use this feature, the print queue that you submit the job to must be setup to receive a VPC so the assets and resources will be unzipped and placed into the correct places on the RIP. For more information the RIP settings to use for VPC, refer to Section 3.4.2. ### RIP setup for Dynamic Media Selection #### Setup on FFPS for VIPP job submission - Firstly, under **Setup** select **System Preferences**, on the **Job Processing** tab is a setting which requires some thought. The setting highlighted in the image below enables you to determine how much disk space will be allocated to Variable Data Objects. The more disk space you allocate to Variable Data Objects, the more images can be cached. But, the more disk space you allocate to Variable Data Objects means less disk space for holding print jobs in the completed queue. - Create a new Queue to submit your VIPP jobs to. From the FFPS **Queue** menu select **New Queue**. - On the **PDL Settings** tab, **PostScript / PDF** section. There some more settings which need some thought and consideration. Refer to the image below. - **Image Processing** sets the resolution that will be used when the VIPP/PostScript will be processed. The default setting is **Enhanced**, which processes at 600x600 dpi. **Normal** will process at 300x300 dpi. **Enhanced** provides slightly better image quality, but takes significantly longer to process. It is recommended to test **Normal** to see if it suits your needs. (Note that most other comparative RIPs eg Creo/Fiery use 300x300 dpi processing.) - **Resolution** is the resolution that the job will be sent to the printer. All Xerox production printers print native 600x600 dpi. Reducing this resolution will not save you much time, but will cost you in print quality. - Under **Variable Data**, you need to ensure **Caching** is **Enabled**. (This is the default when creating a new queue.) - Load the required media into the printer. Note: all media for the job must be the same sheet size. - From the **Printer** menu on the RIP, select **Paper** **trays**. - Double click the first tray you loaded media into. - Ensure the name is set to **Unspecified**. Set the Media Type, Media Color, Media Weight. Note: the values you set here must be the same as the values you entered into the **Dynamic Media Selection** dialog in InDesign or set in the ADOR object. - Set any other paper attributes relevant to your media – e.g. coating, and sheet size etc. - Click **OK** and repeat for any additional paper trays required for your job. - You are now able to submit the job to the new queue. #### Additional setup on FFPS for VPC job submission When processing to VIPP on the uProduce Server, XMPie provides an option to create a VPC (VIPP Project Container). In order to use the VPC file on your FFPS, you need to follow the same steps as outline above, plus, there is one additional setting you need to make to the Queue. In the **Queue Properties** dialog, on the **Settings** tab, click the **Job Filter** section. Click **Apply Filter** and select the **FreeFlow VI Project Container Filter** as shown below: #### Setup on the Creo Spire for VPS job submission To use XMPie Dynamic Media Selection with Creo VPS, you can follow these steps: - On the Creo, open the Resource Center by clicking on the relevant icon, or select **Resource Center…** from the **Tools** menu. - Change the **Resource** drop-down from **Virtual Printers** to **Paper Sets**. Depending on the version of your Creo, this may be called **Paper Stocks**. - Click the + icon in the lower left corner to create a new paper set with the required attributes. In the example pictured, we are using two paper sets: “Colotech 120 Gloss” and “Colortech 90 uncoated”: | | | | --- | --- | - Click **OK** to create your new paper set, and repeat for any additional stocks required for your job. - In the **Resource Center** dialog, change the **Resource** drop-down to **Virtual Printers**. Click the + icon in the lower left to create a new virtual printer. - Enter a name for your virtual printer and check the box to **Support dynamic page exceptions** as shown below. - In the **Based on** drop-down list, select an existing queue for this one to be based on (e.g., SpoolStore/ProcessPrint/ProcessStore). | | | | --- | --- | - Click the **Edit** button to set defaults for this new virtual printer. - On the **Exceptions** tab, select the paper set required for your job, and assign it to the tray that you will load this paper to in the printer as shown below: - On the **Paper Stock** tab select the paper set that will be used for the first sheet of your job as shown below. If you do not do this step, you will have to make this setting on the job after you submit it to the queue - Click **Save**, to exit the settings, click **OK** to save your new virtual printer, and then close the Resource Center. - You are now able to submit the job to the new virtual printer. #### Setup on the Xerox FFPS v8 and later for PostScript job submission - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. - Open the **Stock Library Manager**. Click the **Stock Library…** button. - Click the **Create new…** button. - From the **Type** drop-down, select the same name that you entered into the **Dynamic Media Selection** dialog in InDesign, or in the ADOR object. - If the media type you used is not available in the drop-down list, select Custom from the drop-down. In the next dialog, enter the **New Stock Type Name**, and click the **Add Type >>>** button until all the required stock names are in the custom stock list. After closing the dialog, they will appear in the drop-down list. Select one for this new stock definition. - Click **Advanced Setup**. Ensure the **Stock by Name Only** checkbox is NOT checked. Click **OK**. - Enter a descriptive **Name** for your new stock type, and define the other stock settings eg sheet size, orientation, weight, coating, etc. Then **Save** the new stock type. - In the **Stock Library Manager**, click the tray where you loaded your stock, and select your newly defined stock name from the library list. In the image below, Matt is in tray 1 and Gloss is in Tray 3. - Create a new Queue for your job submission. On the **Settings** tab, **Input format** section, set the **Format** to **PostScript**. - On the **PDL Settings** tab, **Postscript** section, disable** Parallel RIPs** and enable **Variable Data Caching**. You may also want to test reducing the **Resolution** to 300dpi instead of 600dpi. Reducing the resolution will make processing faster if you feel the image quality is sufficient at 300dpi. - On the **Stock** tab, click the **Set Use Ready** button. Then click **OK** to the confirmation dialog. You queue is now ready. Enter a descriptive **Name** for the queue, and save it. - Submit your job to this queue as per normal. #### Setup on the Xerox FFPS v8 and later for PDF/VT-1 job submissions - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. - Open the **Stock Library Manager**. Click the **Stock Library…** button: - Click the **Add new…** button: - From the **Type** drop-down, select the same name that you entered into the **Dynamic Media Selection** dialog in InDesign, or in the ADOR object: - If the media type you used is not available in the drop-down list, select **Custom** from the drop-down. In the next dialog, enter the new stock type **Name**, and click the** Add Type >>>** button until all the required stock names are in the custom stock list. After closing the dialog, they will appear in the drop-down list. Select one for this new stock definition: - Click **Advanced Setup**. Ensure the **Stock by Name Only** checkbox is NOT checked. Click **OK:** - Enter a descriptive **Name** for your new stock type, and define the other stock settings, such as sheet size, orientation, weight, coating, etc. Then save the new stock type. - In the **Stock Library Manager**, click the tray where you loaded your stock, and select your newly defined stock name from the library list. In the image below, Matt is in tray 1 and Gloss is in Tray 3. - Create a new Queue for your job submission. On the **Settings** tab, **Input format** section, set the format to **PDF** and lock it. - On the **PDL Settings** tab, **PDF Processing** section, set to use the **Adobe PDF Print Engine**. - On the **PDL Settings** tab, **Native PDF** section, select **Disable** for **Parallel RIPs**, and select **Enable Caching** for **Variable Data**. - On the **Stock** tab, click the **Set Use Ready** button. Then click **OK** to the confirmation dialog. Enter a descriptive **Name** for the queue, and save it: -  Submit your job as per normal. #### Setup on the Xerox FFPS v7 and earlier for PostScript job submission - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. Note 1: All sheet sizes should be the same. Note 2: When using PostScript output type and named media type with your FFPS, you must use the same stock color/weight/coating for all stocks required in the tray. (Of course you can load different colored stock in one tray, but you need to set the printer and RIP saying it is the same color as the other media. Loading paper that has a different weight or coating than what you specify is NOT recommended.) - Depending on your output device, you may need to configure Custom Paper Types on the Printer. (EG, this step is not necessary for Nuvera, but is required for DocuColor 700.) On the DC700 you must login to the printer console as administrator and enter Tools mode to set up the custom paper settings. Refer to your printer’s documentation for more information. - Follow steps 1-3 as described in Setup on FFPS for VIPP job submission. - On the RIP, select **Paper Trays** from the **Printer** menu. - Double-click on the tray which you loaded the first stock. Leave the stock name as default or Unspecified. Set the size/color. Click **Type/Weight**, select **Custom** from the **Type** menu. Enter the name of the stock exactly as you did in the **Dynamic Media Selection** dialog InDesign, or in the ADOR you are using for media selection. - Click **OK**, and repeat step 5 for additional media required for your job. For PostScript output, only the custom name can be different. Size/Color/Weight/Coating options must be the same. (Of course you can load different colored stock in one tray, but you need to set the printer and RIP saying it is the same color as the other media. Loading paper that has a different weight or coating than what you specify is NOT recommended.) - Create a new queue to (see Setup_on_FFPS_for_VIPP_job_submission). On the **Stock** tab, ensure that the media is set for the first page of your job. - You are now able to submit the job to the new virtual printer. #### Setup on the Fiery EX-P2100 for PostScript job submission - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. - Open the **Stock Library Manager**. Click the **Stock Library** button. - Click the **Create new …** button. - From the **Type** drop-down, select the same name that you entered into the **Dynamic Media Selection** dialog in InDesign. The Fiery does not permit custom media type names. You must use one of the media types predefined by EFI. - If the EFI Media Type name is not available in the Versant stock library Type drop-down list, select **Custom**. In the next dialog, enter the new media type **Name**, and click the **Add Type >>>** button. Repeat until the required stock names are in the custom stock list. After closing the dialog, they will appear in the drop-down list. - Click **Advanced Setup**. Ensure the **Stock by Name Only checkbox** is NOT checked. Click **OK**. - Enter a descriptive **Name** for your new stock type, and define the other stock settings eg sheet size, orientation, weight, coating, etc. Then save the new stock type. - In the **Stock Library Manager**, click the tray where you loaded your stock, and select your new stock. In the example pictured below, we have Preprinted in tray 1, and Recycled in tray 3. - Login to Command Workstation and select Configure from the **Server** menu. - Click **PDL** and then click **SPD**. Check the box to **Enable Set Page Device Mapping**, and **Apply** your change. If you needed to enable this setting, click **Reboot**. - Import your PostScript file into the Command Workstation Hold Queue, and double click to open the **Job Properties** dialog. - On the **Media** tab, check the **Use set page device media mapping** box. Then click the **Settings…** button. - For each of the media types defined in your job, click **Add**. From the **Media type** drop-down, select the media type name that you entered into the **Dynamic Media Selection** dialog in InDesign. From the **Paper Catalog Entry** drop-down, select the name of the stock that you just created in the Versant stock library. - Click **OK** and submit your job. ### Dynamic Media Selection limitations - At the time of writing, Dynamic Media Selection is only supported with VIPP, VPS, PS, PDF/VT-1 and PPML/VDX output types. IE other output formats (PPML/PS, PDF, Adobe PDF, and Legacy PDF) do NOT support Dynamic Media Selection. - Do not use XMPie’s Step and Repeat feature, or your RIP’s imposition feature when using Dynamic Media Selection. - All required media trays in the RIP/Printer must be the same size. It is a limitation of PostScript that all pages in the document must be the same size. - Some RIPs will not automatically rotate the output image to suit mixed portrait/landscape loading of media in one job. If you experience problems, ensure that all media trays are loaded in the same orientation. (IE all long-edge feed, or all short-edge feed.) ## Image Referencing Normally, when creating your print output from XMPie, you will choose to Embed the Assets and Resources as shown in Figures 48 and 49. This means that the images will be included in the output file which you have to send to the printer. **Note:** Even if you choose to embed images in the output stream, if your document contains the same image in several places, XMPie includes the image in the output stream only once, and references the object for subsequent appearances. But, in some cases, for example when you have a document that you print regularly against different databases, if it includes several large images, it could be more efficient to store the images on the RIP, and exclude them from the output file. This means the output file will be much smaller and take less time to send to the printer. To exclude the images from the output file, and insert “references” to the image name, simply uncheck the **Assets** and/or **Resources** checkbox. - **Assets** refers to images which are variable in your document (where a graphic ADOR is selecting the image to display for each recipient), while - **Resources** refers to images which are static – they are not Graphic ADORs and will be the same for all recipients. If your print job is only ever run once, then it is not particularly efficient since you still need to copy the images to the RIP – although you may choose to do this via external media rather than copying them over the network. ### Referenced images with Xerox FFPS and VIPP To process your VIPP output file when images are omitted from the print stream, follow these steps: - Create a new print queue on the RIP as described in section Setup on FFPS for VIPP job submission. You do not need to enable the OPI (Open Prepress Interface) setting which is used by some print systems to replace low resolution images with high resolution versions at the time of production. - Copy the required images to the FFPS. You can move the files to the server via CD/USB/FTP/SMB – whatever medium is convenient. (Refer to the FFPS User Guide for more information on how to connect to the RIP’s file system.) The place to put the image files on the RIP is: /usr/xgfc/gshared. When processing the VIPP output from uProduce, it is possible to send the output file and images to the RIP automatically during production. To do this, first create two output destinations in uProduce: One being an FTP site, network path or network printer – to send the output print file to. - One being a network path – to send the assets and resources to the required images folder on the RIP. This feature requires you to setup an SMB share on the FFPS using Samba. Refer to the FFPS User Guide for more information on how to do this. Once you first print the job to both destinations, if there are no additional assets or resources, you can choose to send only the print file. - If creating output via uCreate Print, or uProduce (without copying to a secondary destination) you can submit your print file normally, once you have copied all the required images to the gshared folder. It is also possible for you to manage the images you have on the RIP, by selecting **VI Projects Manager** from the **System** menu. #### Using VI Project Container (VPC) with FFPS When producing VIPP output with uProduce, you also have the option of creating a VPC file. A VPC is a zip file containing the print file, plus assets and resources separate to the print file, but included in the zip. If you choose to use this feature, the print queue that you submit the job to must be setup to receive a VPC so the assets and resources will be unzipped and placed into the correct places on the RIP. For more information the RIP settings to use for VPC, refer to Section Additional setup on FFPS for VPC job submission. ### Referenced images with Creo Spire and VPS output To process your VIPP output file when images are omitted from the print stream, follow these steps: - Create a new print queue on the RIP as described in section Setup on the Creo Spire for VPS job submission. - Copy the required images to the Creo. You can move the files to the server via CD/USB/FTP/SMB – whatever medium is convenient. (Refer to the User Guide for more information.) The place to put the image files on the RIP is: D:\Shared\High Res or \\\Shared\High Res. When processing the VPS output from uProduce, it is also possible to send the output file and images to the RIP automatically at the same time. To do this, first create two output destinations in uProduce: - One being an ftp site, network path or network printer – to send the output print file to. - One being a network path – to send the assets and resources to the required images folder on the RIP. Once you first print the job to both destinations, if there are no additional assets or resources, you can choose to send only the print file. - If creating output via uCreate Print, or uProduce (without copying to a secondary destination) you can submit your print file normally, once you have copied all the required images to the High Res folder. ### Tips and tricks with image referencing #### I made a change in my image, but I still get the old image when I print One of the most common problems reported by customers when they start to use externally referenced images, is that they will update an image on the local computer and print the document from InDesign, but the image remains the same on the print out. You must also remember to update the copy of the image which is on the RIP! #### Images are reported missing on FFPS, but they’re there Remember that the FFPS uses a Solaris operating system, which has case-sensitive file names. It is common for customers to copy the files to the correct spot on the file system, and get confused when the RIP reports some images as missing. Closely double check the case of any images reported missing... #### I selected to not embed images, but the output file size is the same Only certain image types can be excluded from the print file: - VPS and VIPP support EPS/JPG/TIFF outside of the print file. - PPML supports only EPS outside of the print file. Check your image assets and resources types to ensure that they can be supported outside of the print file. ## Glossary ADOR Automatic Dynamic Object Replacement – Also known as “Content Object”. This is the XMPie object which is placed into the InDesign layout and is replaced with information from a database at the time of production. Cache / Caching When a RIP processes an element which is tagged as reusable, it will hold this element in its processed state, so that when the next time this element is required in the job, it is already processed and ready to go. #### **FFPS** FreeFlow Print Server – A Xerox RIP or print server, originally called DocuSP, later versions are known as FreeFlow Print Server. #### **DPI** Dots Per Inch / Pixels Per Inch – this is a measure of the resolution or quality of an image. The higher the resolution, the higher the DPI, and the larger the file size. #### **Global** **Cache ** Caching is normally done on a job-by-job basis, however some RIPs support global caching which enables the RIP to hold a processed copy of the element to use in following print jobs. This is useful when processing multiple batches of the same job, but can cause problems/confusion if the image is later changed and the job reprinted... #### **PDF/VT-1 ** A format of PDF designed for variable data or transactional print. It can include additional information such as recipient meta data. #### **PDM2 ** PDM2 is a specification of the VDX output format. Refer to VDX for more information. #### **Pixel** The smallest, most basic unit of an image. Rows of pixels of different color and density make up images for digital print, television and computer display. #### **PPML** Personalised Print Markup Language – PPML is an XML-based output format developed by the Digital Print Initiative (PODi). #### **Raster** To convert page text and graphic data to lines of pixels which a printer can transfer to paper. #### **RIP** Raster Image Processor – Most production printers will have a dedicated PC or server known as a RIP which receives the print file and process it (rasters it) in preparation for printing. #### **Reference / Referencing** VIPP, VPS and PPML output formats have a feature called “referencing” which enables for certain image types to be omitted from the main print file and found in a separate file which is “referenced” from the main print file. #### VDX Variable Data eXchange – (Also called PPML/VDX), is based on a subset of the PPML specification and is developed by the Committee for Graphic Arts Technologies Standards (CGATS). XMPie outputs VDX which is PDM2-compliant. PDM2 provides legacy support for PPML v1.5. Later versions of VDX are ANSI-compliant, which supports PPML v2.0. #### **VIPP** Variable-data Intelligent PostScript Printware – Developed by Xerox, VIPP is an output format based on PostScript, but with some additional features to address PostScript’s limitations for variable data print. #### **VPC** VIPP Project Container – a zip file which contains a print file and the resources (images etc) required to print. The Xerox FFPS (with a properly configured print queue) will extract the resources into the necessary folders on the RIP. #### **VPS** Variable Print Specification – VPS is a PostScript-based output format developed by Scitex (now Print On Demand Solutions, a Kodak company). Like VIPP it includes some additional features to better support variable data print. ## Additional information For more information, refer to the relevant user guide: - uProduce Reference Manual - uCreate Print User Guide - Your RIP User Guide   Created by: Steve Couch, last updated: February 29, 2016 #### Preset uChart chart options # Preset uChart chart options **Summary**: This article describes uChart chart options that have preset values that cannot be overridden. **Audience**: Users of Adobe InDesign, who use the uChart module of uCreate Print to create charts and graphs . **Prerequisites**: Readers of this document should have a basic understanding of the following products: - Adobe InDesign - XMPie uCreate - uChart ## Overview uChart is the XMPie add‐on to uCreate that allows you to create dynamic data‐driven graphical charts and graphs. It integrates the features of Chartbot™, a third party add‐on from Soft Horizons (http://). XMPie has used some of the Chartbot features for its own purposes and has assigned values which cannot be overridden. This document describes which ## Preset uChart Chart Options uChart allows you to further enhance the look of your charts by entering Chartbot commands in theChart Optionsarea of theuChart Properties dialog: You can use any Chartbot command to modify your charts except for the commands listed below. The values of these commands have been pre‐set by XMPie and cannot be overridden. Entering other values will have no effect on the appearance of the chart. | Chartbot Command | Description | Preset Value | | --- | --- | --- | | /3DViewAngle | The viewing angle of the 3D effect. | If 3D Effect is checked the pre-set value is 450; If 3D Effect is NOT checked, the value can be overridden | | /BarGap The | The size of the gap between data bars/columns. | 0 if more than one column; 0.3 for compound charts | | /Chart | The type of chart. | The chart type is determined by the value selected in the Type field of the uChart Properties dialog and cannot be overridden. Possible values are Pie Chart, Column Chart, Line Chart, Area Chart and Compound Chart. | | /ColorList | A list of the colors of the chart’s bars, lines and slices. | The CMYK color selection in theColors Datatable in theuChart Propertiesdialog | | /CutoutText | Text is "cut out" from its surroundings when onchart values overlap the data line making it easier to read. | Yes | | /FillBelow | In Area charts, the area below data line is filled in. The color of the area is determined by the /ColorList processing. The data line color must be set using / | Yes | | /GroupGap | The space between data groups (instead of /BarGap). | 1.5 if more than one column; 0.3 for compound charts | | /Hyphenate | Words using Adobe CID fonts (a large format normally used in Chinese, Japanese and Korean) are not hyphenated. | No | | /LabelOverflow | When on‐chart label text is too long, the text is automatically adjusted so that it shrinks in steps until it fits the space allocated. | ShrinkToFit | | /Layering | In multi‐dimensional charts, each layer of data represents a dimension. This command controls how the data layers are displayed in relation to each other. | Interleave for column graphs; Overlay for other graph types | | /LayerLabel | Sets the LayerLabel text associated with a Layer. | According to layer input. (This option can be overridden with the GUI.) | | /LayerLabelLocation | The location of the layer label on the chart. | When Legend is checked, the layer label is displayed as the legend.; When Legend is NOT checked, refer to Chartbot™ Reference for a list of possible locations. | | /LeftTextLimit | The leftmost limit for text. No text will be rendered to the left of this position. | According to input offset from the chart, determined automatically from box bounds | | /LegendOutlineWidth | The width of the line around each color spot in the legend. | 1 | | /LegendOverflow | When the text in the legend is too long, the, text is automatically adjusted so that it shrinks in steps until it fits. | ShrinkToFit | | /MarkerSize | The size of on‐line data point markers. | 8 | | /OutlineStyle | The drawing style of the lines in line charts and the edging of bars and pies. | Line Charts ‐SolidLine; The outline style of the edging of bars and pies can be overridden. | | /OutlineWidth | There is no “edging” line on bars, lines and slices. | 0 | | /PrintLeftAxis | Shows the vertical axis on the left edge of bar or line chart. | Yes | | /PrintLeftScale | Shows scale numbers along the left of bar and line charts when Y Axis is selected as an option for the Annotate field. | Yes when Y Axis is selected as an option for the Annotate field.; When Y Axis is NOT selected the value can be overridden. | | /RightTextLimit | The right most limit for text. No text will be rendered to the right of this position. | According to input offset from chart, determined automatically from box bounds | | /SliceCutaway | The space between slices in Pie Charts. | When Separate Slices is checked the value is 0.3; When Separate Slices is NOT checked, the value can be overridden. | | /ValueOverflow | When on‐chart value text is too long for the value or space defined, text is automatically adjusted so that it shrinks in steps until it fits. | ShrinkToFit | **Note:** Although you cannot change how existing data affects the look of your charts, you can add more data. For Pie charts you can add more slices and for multi‐dimensional graphs you can add additional layers with other data series.   Created by: Gal Kahana, last updated: August 12, 2010 #### Configuring a Password Protected PDF to work with HTTPS # Configuring a Password Protected PDF to work with HTTPS The **Password PDF Protection** option in Circle is hidden by default. If you wish to enable it, contact Support. If you wish your protected PDFs to be secured via HTTPS, you must configure an SSL certificate on the XMPL and uProduce servers, as described below. ## uProduce - Install a valid SSL Certificate on the uProduce server from a Public (Certificate Authority) provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - In the uProduce dashboard, select the **Settings** tab > **Proxy Configuration**, and set the uProduce domain in the **Internal Address** field. - Make sure that both domain addresses (internal and external) are set to be HTTPS. - Make sure uProduce HTTPS URL can be accessed from XMPL server. ## XMPL - Install a valid SSL Certificate on XMPL server from a Public CA provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - Install the latest XMPL version. - During the installation, make sure to use the same uProduce **InternalAddress** (the one that you've set in step no. 2 above for uProduce). - During the installation, make sure to use the XMPL external address with the domain name address (the one that you've set in step no. 1 of this section) - XMPL will update the Helicon file automatically using the external and internal address. ## Circle ### New websites Enable HTTPS for the Circle project. - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. ### Existing websites If you wish to transfer existing sites to HTTPS, you need to enable HTTPS for the Circle project as follows: - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. - In the **General Configuration** section > **Configuration File**, download the new **xmpcfg.js** file. - Replace the existing **xmpcfg.js** file in the website folder on the XMPL server with the new configuration file.   Created by: Mohammad Mansour, updated February 2025 #### Configuring a PDF on Demand Document to work with HTTPs # Configuring a PDF on Demand Document to work with HTTPs If you wish your PDF on Demand document to be secured via HTTPS, you must configure an SSL certificate on the XMPL and uProduce servers, as described below. This requires XMPL version 3.3 or higher. ## uProduce - Install a valid SSL Certificate on the uProduce server from a Public (Certificate Authority) provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - In the uProduce dashboard, select the Settings tab > Global Settings, and set the uProduce domain in the **InternalAddress** field. ## XMPL - Install a valid SSL Certificate on XMPL server from a Public CA provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - Install the latest XMPL version. - During the installation, make sure to use the same uProduce **InternalAddress** (the one that you've set in step no. 2 above for uProduce). - During the installation, make sure to use the XMPL external address with the domain name address (the one that you've set in step no. 1 of this section) - XMPL will update the helicon file automatically using the external and internal address. ## Circle ### New websites Enable HTTPS for the Circle project. - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. ### Existing websites If you wish to transfer existing sites to HTTPS, you need to enable HTTPS for the Circle project as follows: - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. - In the **General Configuration** section >  **Configuration File**, download the new **xmpcfg.js** file. - Replace the existing **xmpcfg.js** file in the website folder on the XMPL server with the new configuration file.   Created by: Mohammad Mansour, April 2022 #### Enabling HEIC AND HEIF Image Formats # Enabling HEIC AND HEIF Image Formats Support for HEIC and HEIF image formats is available from PersonalEffect version 13.4 and above. Here are the steps to install the extensions to support HEIC AND HEIF images. - Open the browser. - Open the HEVC extension page. - Click the **Install** button from the Microsoft Store. **Note:** If you did not succeed in installing this extension, use this link instead: HEVC Video Extensions. - Open the HEIF extension page. - Click the or **Install** button from the Microsoft Store. Once you complete the steps, you can start viewing ".heic" file extensions encoded using the HEIF container with Photos or another compatible app.   If the codecs are not working, you can reset the extensions by uninstalling and installing them again. The "Installed apps" page does not list these extensions as installed on the computer at the time of this writing. However, you can use the winget command to remove them. To fix HEVC and HEIF issues, use these steps: - Open **Start**. - Search for **Command Prompt**, right-click the top result, and select the **Run as administrator** option. - Type the following command to uninstall the HECV extension and press **Enter**:  winget uninstall Microsoft.HEVCVideoExtension_8wekyb3d8bbwe - Type the following command to uninstall the HEIF extension and press **Enter**:  winget uninstall Microsoft.HEIFImageExtension_8wekyb3d8bbwe - After you complete the steps, repeat the previous steps outlined at the beginning to reinstall the extensions, which should resolve most issues.   Created by: Mohammad Mansour on October 2024 #### Extending Dynamic Media Selection Attributes # Extending Dynamic Media Selection Attributes **Summary**: This article explains how to define advanced Dynamic Media Selection attributes, in addition to the default color, weight and paper type attributes. For information on how to define these default attributes, see Using Dynamic Media Selection for Printing. ## Overview XMPie enables two primary types of Dynamic Media Selection: - You can set a specific media type to a particular page in the InDesign template. That page will then use that paper type for each recipient. For example, page 1 will be plain paper; page 2 will be gloss paper; and this will apply to all recipients in the database. In this document, we’ll refer to this as static media selection. - You can also use business rules in an ADOR object to dynamically change the paper type for a particular page based on a value in the database. For example: page 1 for recipient 1 might be plain paper; but, for recipient 2, page 1 might be gloss paper. In this document, we’ll refer to this as dynamic media selection. You can extend the default attribute options and add more attributes such as binding type, orientation and content object name. ## How to extend the Dynamic Media Selection attributes Extending the default attributes can be done by creating an XML file named **MediaTypeAttributes.xml** and placing it in `Adobe InDesign Installed Folder\Plug-Ins\XMPie` For example `C:\Program Files\Adobe\Adobe InDesign 2025\Plug-Ins\XMPie`. To this file you can add any attribute that you like. Note that this is done on the XMPie desktop solution, and there is no need to take any action on server side. Example of the content of the **MediaTypeAttributes.xml **file:   After adding this example file, these attributes will be represented in the **Page/Spread Media Selection** dialog as follows: These attributes are added to the DPART of the PDF, per page and not per recipient. This means it is a sub DPART. The following is an example showing the "FirstName" attribute in the DPART:   Created by Mohammad Mansour, December 2024 ### uProduce # uProduce #### Best Practices for Variable Data Print (VDP) Design # Best Practices for Variable Data Print (VDP) Design **Summary**: This articles provides best practices for VDP design to ensure maximum print production performance. **Audience**: Graphic designers and prepress production staff who are responsible for the creation, preparation and/or production of documents for XMPie variable data print. **Prerequisites:** This article assumes knowledge of XMPie products, Adobe Photoshop, Illustrator and InDesign as well as general prepress skills. ## Overview Adobe InDesign is a very flexible product and it has many features to make it quick for non-technical people to create beautifully designed documents. However, many of these features can add complexity to the document that causes - Increase in the time it takes to create the print output. - Increase in the size of the output file (and, therefore, the time it takes to send to the printer). - Output files which are not efficiently processed on the printer, causing the printer to run slower than its rated speed. In static or one-off print jobs, these tend to be minor indiscretions that we can live with, but when printing variable or dynamic print jobs with thousands of records, we need to ensure these issues don’t create exponential problems with file size or production speed. This article lists many common things to look out for to prevent these issues. Much of this is just “good prepress” that should be done for any digital print, but there are also some points which are unique to variable data print. ## Designing for VDP XMPie provides a number of different ADORs or content object types, and in many cases there are different ways to achieve the same output. For example, to create a brochure with different company logo and text, you could: - Create different layers in InDesign for each design and use Visibility ADORs to turn on or off the layers. - Create different pages in InDesign for each design and use Visibility ADORs to turn off or off the pages. - Have only one page and layer in InDesign, and use a Graphic ADOR and a Text ADOR to change the content on the page. - Have only one page and layer in InDesign and use a Graphic ADOR and a Text-File ADOR to change the content on the page. - Export out the whole brochure page for each company as a graphic, and create another template in InDesign which uses one Graphic ADOR to load the right graphic for each company. All the above options are valid and would result in the same output. However, what would happen if your brochure had say 50 different company logo/text combinations to manage instead of just 2 or 3? In this case, options 1 and 2, would result in many pages or layers in the InDesign document and maintaining or editing the document would become difficult. Even option 5 (which would result in the smallest and fastest processing document) would take much longer to setup and also be very difficult to maintain changes. So, in this example, options 3 or 4 are most sensible since they result in a document which is easier to manage and update over time and still produce efficient output. The difference between the two options is whether to use a Text ADOR (where the variable text is coming from the database or plan file) or Text File ADOR (where the text is coming from a text file asset). The decision here would depend on the amount of text and how you wanted to make updates/changes in future. In general, Text File ADORs are a better solution when there is a lot of text since they are cached more efficiently. But, for small amounts of text, Text ADORs can be easier to update by changing the database, or the plan file. The point to be made here is that there are many ways to create variable documents, and success will come from having at the start, a clear understanding of what will be changing in the document, how the document will be updated in the future and which ADOR types are most efficient. ## Watch a video Design for VDP introduction Planning for efficient design ## Transparency Transparency is the number one cause for slow production, large output files, and slow print processing times. InDesign provides many different effects that involve transparency and can be applied to either text or graphic boxes. Here are just two: | Feather | Drop Shadow | | --- | --- | The problem with transparency is that many printers or output devices cannot correctly reproduce transparency between different objects, so to ensure that you get printed what you see on screen, Adobe InDesign “flattens” or combines these objects into one object when you print it. Naturally, this process takes some time, and even when you’re printing a normal static InDesign document you’ll notice that it takes a bit longer if there are transparent effects in the document. XMPie works perfectly well with transparency, and if it is needed for your design it is certainly possible. But, as a designer, you need to be aware of the impact of transparency on production time so that you can allow additional production time, or minimize the impact by identifying and changing the way the transparent effect is used. The biggest issue for transparency in variable data printing comes into effect if one or more of the boxes that need to be flattened contain variable data – either image or text. ### Example 1: Flattening boxes with variable data The image above shows a text box (with a drop shadow) containing the “first name” ADOR which overlays a graphic box that contains a static image. To reproduce this transparency effect, XMPie has to flatten the text box and graphic box together. Since the first name can be different for every record in the database, this multiplies the time needed to flatten the image for all the different names, and multiplies the size of the output file. Let’s assume that the image size is 1MB, that you are printing 1500 records, and that 200 people in the database have the same first name as someone else already processed: InDesign & XMPie have to flatten the two boxes 1500 – 200 = 1300 times. If it takes 1 second to flatten the image with the transparent effect, then this will add 1300 seconds or 21.6 minutes to the total job processing time. And, the output print stream has to include the 1300 flattened 1MB images (approx. 1.26GB) of data just for this graphic - not including any other pictures, text, etc.!!! ### Detecting transparency issues The first step to optimizing is to identify which elements contain transparency effects. XMPie provides a preflight tool which will do this. Select **Preflight** from the uCreate Print panel: Another method for detecting transparent effects in your design is to use the InDesign **Flattener Preview** panel: ### Optimizing transparency issues Once you have identified the offending object you can take steps to remove or reduce the performance problem: - If the overlapping transparent objects are static, consider flattening them in Photoshop and placing it into InDesign as a graphic which is already flattened. - When a placed graphic contains transparency – for example the PNG graphic shown in the image above – there are two better ways to achieve the same effect without transparency and without impacting performance: - Open the graphic in Photoshop, create a path around the object (an orange in this example). Set the path as a clipping path, and save the image as an EPS with the clipping path. - Resave the graphic as a JPG image. This will remove the transparency. Then in InDesign, select the graphic box and choose **Clipping Path** from the **Object** menu. Use the **Detect Edges** option to automatically create a clipping path around the object, and you can then use the pen tool to adjust the clipping path if necessary. - If possible, move the box with transparency so that it does not overlap other boxes – especially boxes containing dynamic content. - Consider not using the transparent effect. - If there is a bitmap graphic in one of the affected boxes, reduce the graphics file size to the minimum by ensuring that it is correctly cropped, scaled and is at the lowest possible resolution to provide the necessary print quality. (This will help reduce the flattening time and output file size.) - If the box with the transparent effect overlays more than one box, try to reduce this to the minimum. ### Example 2: Transparent effect overlaying more than one box In the Example 2, all three boxes would be treated as one object. Now, if the yellow box was actually a large graphic which was static for all records and the blue and/or pink boxes contained variable content, we would again encounter the problem discussed in Example 1. However, depending on the design of your document, it might be possible to make a change so that only two objects have to be combined (blue and pink in the below example): ### Example 3: Splitting the yellow box into two boxes ### Example 4: Placing the blue box back Evaluate and minimize the problem effect where it affects dynamic content. For example, in Example 5: On the left is one text box placed over an image and set with 80% transparency. Because the text box contains the First Name ADOR, the transparency effect on the text box will be applied to the text it contains. And, because of the variability every unique first name will have to be flattened with the background image increasing production time, and increasing the output file size. On the right, are two boxes – one just for the white background which has the 80% transparency applied. The second box placed over the top has the text containing the First Name ADOR. In this case, the white box and background image will be flattened once. ### Example 5: Minimizing transparency effect on variable content While the effect is not exactly the same (the text is 100% opaque and there is no building showing through the text) it is very similar and perhaps the customer would accept this slight design change – if so, the savings in production time and output file size would be significant. ### Production options for managing transparency XMPie provides a powerful production option called X-DOT (XMPie Dynamic Object Transparency) which enables you to quickly and easily control transparency at production time without having to modify the InDesign document. X-DOT provides three options: - Use X-DOT – the output will honor all transparency setup in the InDesign file. - Ignore X-DOT – the production engine will remove all transparency effects in the file. - Ignore X-DOT where needed – this option applies intelligence to determine if the transparent effect will impact performance by interacting with a variable object. With this option, individual transparent effects will only be removed if they will impact performance. Those which don’t impact production speed will remain. ### Output format considerations for transparency XMPie provides several different output formats for use when you are creating the final print file. Different output formats have different options available. When selecting PDF/VT-1 as the output format, the **INDD Document Advanced Parameters****> Transparency Implementation** section shows an option to tell XMPie not to flatten the transparency, and to leave this to the RIP/printer. Naturally, this will make the XMPie production much faster, but may increase the processing time on your printer – assuming that your printer will handle PDF/VT-1 files with transparency. ## Watch a video Impact of transparency on dynamic print productions ## uImage performance Creating personalized images is another time consuming task. Also, since there will be individual images for each recipient in the database, output file size can be large and print production time long because of amount of data to process. - Ensure Photoshop is set up and configured as efficiently as possible, as per Adobe’s recommendations (https://helpx.adobe.com/photoshop/kb/optimize-photoshop-cc-performance.html). - Reduce the physical size/scale of the Photoshop template so will be placed into InDesign at 100%. - Remove any extraneous image in Photoshop, rather than cropping in InDesign. - Reduce the resolution of the Photoshop template to the minimum necessary for the required output print quality. (For digital print this should be about 150-200 dpi. Any more resolution will not increase the visible print quality, but will impact output file size and printer performance.) - Minimize the number of layers in the Photoshop template by flattening or merging layers where possible. - If using actions, remove any unnecessary steps, and test different options that provide similar effect (especially filters) to see if one is faster than another. - Only use uImage where necessary – if you can achieve a similar effect by overlaying text on the image in InDesign, you will save time. - Make sure you use the “OPT:” Optimize option in uPlan. This first checks to see if there is already a personalized image for the recipient, so it will not waste time creating images that already exist. - If the area of personalization on the image is only a small part of the whole image, consider using the uImage Optimize option. This creates a smaller overlay image for each recipient, so the amount of extraneous image being duplicated in the output stream is dramatically reduced: ## Watch a video Optimizing uImage files to get the fastest production and smallest output file ## Choosing the right output format To get shortest time between click and clunk – the time between your click of the **Generate VDP Output** option and clunk of the print landing in the printer’s output tray – you will also need to choose the best output format for your printer. XMPie provides several different output formats. Here is a table showing the available output types and their advantages and disadvantages: | Output Type | Advantages | Disadvantages | | --- | --- | --- | | PDF/VT-1 | PDF/VT-1 is a form of PDF which is designed for variable or transactional printing; Recommended image asset type: PDF ; Can accommodate different page sizes | Some older RIPs may not support PDF/VT-1; Some older RIPs may not correctly support transparency, booklet, or other PDF/VT-1 features.; Some older RIPS may not give page previews or impose PDF/VT-1 in the same way that they do with standard PDF files. | | PostScript | PostScript is supported on nearly all production RIPs; Recommended image asset type: EPS | Not all printers can take advantage of caching reusable elements in Optimized PostScript; PostScript does not have a definition of “booklet” so duplexing a job with an odd number of pages will cause problems. | | Adobe PDF | PDF is supported on nearly all production RIPs; Recommended image asset type: PDF; Can accommodate different page sizes | Cannot do Dynamic media selection; Like PostScript, there is no definition of “booklet” | Things to be considered when selecting the output format include: - The time it takes XMPie to produce the output format. - The size of the output file (and therefore the time to get it across the network to your printer). - Whether your RIP can process the particular output format. - The speed at which your RIP or printer can process the output format. ### Splitting into batches On the uProduce server, if you have extension servers, or a multiple instance (MI) license of InDesign Server, you are able to process multiple jobs at the same time. By splitting a large job into multiple batches, means that as the first batch completes on the uProduce server, it can be sent to the printer and start processing/printing while remaining batches are being prepared on the uProduce server. In other words, the printer is able to start printing, while at the same time, the job is still being produced. This feature does have one drawback. XMPie is able to optimize the caching of image assets in the output file, so that if many records use the same image asset, it is only placed into the output file once. However, when you split into batches, the same image asset will need to be placed into each batch where the image is required. If your RIP supports global caching, this is less of a problem. ### InDesign image rendering The uProduce setting **INDD Document Advanced Parameters > ****Image Rendering **enables faster performance. XMPie can insert all images (both image assets, and non-variable image resources) directly into the output file. This means there is no production delay while we programmatically load the images into InDesign and export them out again. However, when you select the performance option, XMPie puts the linked images into the output file as-is, without making any changes to the images. This means there are some important things to note: - You should crop your images in an image editing application rather than using InDesign to crop images. Failing to crop images and using the non-InDesign Rendering option will result in larger print output files. - When using PDF files as an image, the non-InDesign Rendering option will put the entire PDF file into the print output file. So you should ensure that the PDF image file has only one page, and is optimized. If necessary, place the PDF into InDesign and export out a new PDF. Then, use this PDF as the image asset. - If you are using JPG images, and you need to apply ICC profiles to the image in InDesign for color management reasons, then you need to select the Require InDesign Rendering option or the ICC profile will not be applied. ### Step and repeat imposition If you select to do imposition in XMPie, this process happens at the end of all the normal production. Therefore, adding step and repeat, will increase the total processing time. For large jobs, you may find it is more efficient to use the RIP’s imposition features, or using 3rd party imposition tools. ## Text wrapping If there is an ADOR object involved in text wrap (either static text wrapped around a variable image or variable text around a static or variable image) the text flow may have to be evaluated for every record being processed. While not involving a huge amount of processing time, it can also affect the reusability of objects in the print stream, so may increase the amount of data being sent to the printer, in addition to the processing time. ## Image assets - XMPie provides greater optimization with PDF assets when creating PDF-based output formats (Adobe PDF and PDF/VT-1). If using PDF/VT-1 output type, try to ensure that the assets are PDF for better performance. - XMPie provides greater optimization with EPS assets when creating PostScript-based output formats (PPML, VPS, VIPP, Optimized PostScript). If using one of these output formats, try to ensure that assets are EPS for better performance. - Avoid using native Photoshop or Illustrator files as assets. Especially if they include transparency effects. “Export” or “Save As” in Illustrator/Photoshop and save to JPG, EPS or PDF. Remember to choose an image file format which can be referenced outside of the print stream if you wish to take advantage of this feature. Refer to choosing the right output format. - If you need to mask an image, use the EPS clipping path method. This will use efficient PostScript to achieve the masking rather than an inefficient transparency effect that will cause production performance problems. - Reduce layers by flattening, or merging layers in bitmap graphics to reduce file size before exporting. - When exporting/saving image assets, use Binary (rather than ASCII) encoding methods when possible – this will reduce file size. (Binary/ASCII options are usually offered when exporting to EPS, but may also be offered with other formats depending on your image editing software.) - Ensure that placed bitmap images are cropped to the right size for placement in InDesign. Excess image in the print file contributes to large, slow print files. - Don’t place EPS files within other EPS files. - It is preferred to convert fonts to outlines in your vector EPS files. - In vector graphics, use a specific line width rather than “hairline”. EG use “0.25pt”. - Reduce the number of points in your vector artwork. The complex vector path on the left can be reduced to just three points: The Illustrator's **Simplify** option makes easy work of optimizing vector paths: ## ADOR caching One of the most powerful features of XMPie's patented dynamic print technology is the ability to cache objects in the output stream so that reusable objects are placed into the output file only once and are referenced for all additional records/recipients that use the same object. This means that the print file is created faster, is smaller in size, can be sent to the printer faster and processes faster on the printer or RIP. XMPie makes the decision which objects are cached automatically, based on the ADOR type. Usually, Graphic and Text file ADORs are reusable objects, and are thus cached. Text ADORs, on the other hand, are usually unique and will not be cached. However, occasionally, it may be desirable to change this automatic behavior for certain ADORs. **Important!** It is recommended that you change this automatic behavior only if you fully understand the caching mechanism, and the impact of the change. InDesign objects XMPie treats objects in the InDesign document in one of three ways: - **Fixed:** When the object contains no ADORs. - **Reusable:** When the object contains a file-based ADOR, such as a Graphic ADOR or a Text File ADOR. - **Unique:** When the object contains any other type of ADOR, such as a Text ADOR. An "object" in InDesign is a text frame or a graphic frame. ### How are reusable objects used? Records/recipients to be processed are checked to see if the same Graphic or Text File ADORs contain a file that is used for more than one record/recipient in the database being processed. Reusable object information is stored in memory as the production job is processed. This process is designed to work where Graphic or Text File ADORs contain a file that is used for more than one record/recipient. In some unusual circumstances, it is possible for a Graphic or Text File ADOR to call an asset which is unique for every record or recipient in the database, for example a personal photo of each recipient. In this case, storing the InDesign object in memory serves no purpose and for particularly large databases, and large asset sizes, can lead to excessive memory use. If your Graphic or Text File ADOR will be unique for every record/recipient in the database, then you can disable the caching mechanism by renaming the ADOR to include **.unique** at the end of the ADOR name. For example, a Graphic ADOR named "photo" can be renamed "photo.unique" to disable the caching mechanism. ### Risks of disabling the caching on an ADOR If you add **.unique** to the name of a Graphic or Text File ADOR which contains an asset that is used by multiple records/recipients in the database, then the InDesign object will not be cached and the object will be added to the output file for each record/recipient. This means that the print production will be slower and create a significantly larger print file than needed. ### How are Unique objects used? Unique objects are inserted directly into the output file for each record/recipient processed and are not cached. For example, an InDesign text frame that contains the body of a letter with static text as well as some Text ADOR, is considered unique since the chance of another record/recipient with the exact same values in each Text ADOR used in the text frame, is very low. In some occasions, it is possible for a Text ADOR to contain a value which is reusable by some records/recipients in the database. For example, a Text ADOR "club level" could contain the values "Gold", "Silver" or "Bronze", where many recipients will use one of these values. If this Text ADOR is used in a text frame in InDesign either by itself, or with only static text (meaning that the text frame does not contain other unique ADORs) then it is possible to enable the caching mechanism by adding** .reusable** at the end of the ADOR name. For example, "club level" can be renamed "club level.reusable" to enable the caching mechanism. ### Risks of enabling the caching on an ADOR If you add **.reusable** to the name of an ADOR, then InDesign objects that use that ADOR will be cached and stored in memory to check for other records using that InDesign object with the same ADOR value. This means that more objects will be stored in memory, and for large databases, if used incorrectly, this increases the risk that the available memory may not be sufficient to complete the entire production job. ## Asset management Manage your assets wisely. When uCreate or uProduce processes a print file that has image or text file assets, it will search through the assets folder to confirm the required asset exists, and to set the file path and extension in the output file. If you set the assets folder to c:\ or have thousands of unnecessary files and folders in the assets folder, then it will take longer for XMPie to find and reference each asset. In uCreate, correctly set the assets folder, and ensure it does not contain irrelevant files and folders. In uProduce, it is possible to set many different assets folders. Before processing in uProduce, you can change the search order, or enable/disable different asset folders (e.g. for lowres and highres assets). If only a part of the campaign’s assets are required for a specific production job / document - create a designated assets source for it. Change the assets sources order or disable unnecessary asset sources, if you can, for the duration of the production. ### Windows Search Indexing Currently, the **File System asset source** type, which is not managed by XMPie but rather by the customer, can contain many folders and subfolders in a deep hierarchy. During production, searching for the required files may take a long time, and could thus affect asset-resolving performance. It is possible to use **Windows Indexing**, when using the File System asset source type, to improve search performance. If you observe poor performance when searching for asset files, it is advisable to use Windows Indexing. For more information, see Improving Search Performance using Windows Indexing. ## Table ADORs Table ADORs are not cached as reusable objects in the print stream – they are evaluated for every recipient. Where performance is critical, avoid Table ADORs. Production will be especially slow if the Table ADOR includes an image. The entire table is treated as unique for each recipient, so any images placed in the table will be embedded in the output for each recipient. IE if multiple recipients have the same image in their table, the image will be included in the output file multiple times. Customers often think that using a table ADOR is the only way to add a variable number of dynamic images to the design. It is much better to use a few graphic ADORs and where the customer requires less images than the number of graphic ADORs, use simple logic to place a 1px x 1px transparent or white image instead. ## Visibility ADORs It is very common for people who are not familiar with designing for variable data publishing, to create an InDesign document with several pages or layers – each of which represents a different market segment - For example, one page/layer for male recipients; and a second for female recipients. When the XMPie operator gets this document, it can be very easy (and lazy) to simply create a visibility rule to turn on/off the relevant page/layer in the design. It is much more efficient to take a “template” approach and create “containers” on the page which hold text or graphics that change based on the database logic. Use layer and page visibility only where there are significant design changes to the document layout which cannot be achieved with text/graphic/style ADORs. ## XLIM If you have XMPie PersonalEffect (and therefore have uProduce server), then you also have a feature called XLIM (pronounced “slim”). XLIM is XMPie’s own document composition engine, similar to InDesign, but with a reduced number of design features. Despite having a few less design options, XLIM provides a tremendous boost to performance with most documents process at least 30 times faster in XLIM. XLIM still uses Adobe InDesign’s desktop version to create the design, but when exporting the document to a Campaign Package (CPKG) or Document Package (DPKG) to upload it to uProduce, you also have the option to save your design as a XLIM document or package. Also, the uCreate Print's Dynamic Content panel has some options to either: - Check the InDesign document to see if it is compatible with XLIM. - Work in XLIM design mode – which warns you if you create an object which cannot be supported in XLIM. The speed improvements offered by XLIM are so large, that many of the other performance tips suggested in this document are almost insignificant. If performance is critical for your job, then you should be working with XLIM . However, this feature is only available with the server versions of XMPie. ## General prepress tips - Try to place ADOR objects in individual text or graphic boxes. If possible, don’t place text boxes or image boxes that contain ADORs “inline” in another text box. If there is an ADOR object in any of the boxes, it will causes the entire group to be treated as unique for each recipient, rather than just the smaller box containing the ADOR object. This will result in poor performance. - When placing images/graphics into the InDesign file, place them in using the Ctrl-D keyboard shortcut or File->Place menu option. Don’t copy and paste from other applications. - Use the Links palette to ensure that all images are “linked”. Don’t “Embed” images into the document. The icon in the image below shows that this image is embedded in the InDesign file. - InDesign provides some drawing tools for boxes, lines etc. Use these only for simple tasks. If you are creating more complex drawings, use Illustrator or Photoshop to create the image, and place that one item into InDesign. - Use the **Direct Selection Tool** (white arrow) in InDesign to click on graphic boxes. The red line in the image below shows the full dimension of an image which has been cropped significantly in InDesign. It should be opened in Photoshop, cropped, resaved and placed again into InDesign. This will prevent excess data being sent to the printer, decrease output file size and increases performance. - Ensure that placed bitmap images are scaled to the right size for placement in InDesign. Excess image in the print file is a main contributor to large print files. By using the “Effective Resolution” details in the **Info** panel you can see that the image selected in image below was originally 240dpi, but has been scaled down in InDesign and is now 888dpi which means that more than three times the amount of data necessary will be sent to the printer. - Don’t rotate images in InDesign other than 90 degree increments. If you need to rotate a graphic other than 0/90/180/270 degrees – reopen the graphic in Photoshop/Illustrator, rotate, save and replace in InDesign. InDesign sends the rotation instruction to the RIP. 90 degree rotations are easy mathematically for the RIP. Other increments will cause degradation in RIP performance. ## Watch a video Basic prepress tips ## Font tips - If your design includes many fonts, you may find it is faster to have your fonts already installed on the RIP, and to exclude the fonts from the print stream. - When designing on a Macintosh, remember that if you are going to process the document on a uProduce server, or if you wish to exclude the fonts from the print stream and load them separately to the RIP – remember that not all Macintosh fonts can be used on a Windows server. Preferably keep to OpenType (OTF) or TrueType (TTF) fonts which are cross platform compatible. - InDesign is not able to omit double-byte fonts from the print file. If you choose not to embed fonts, single-byte fonts will be omitted, but double-byte fonts will still be embedded, but will be subsetted. (Note: In v4.5 and earlier, when creating PDF output there is no option to omit (or subset fonts). Contact XMPie support for information on how to setup subsetting of fonts with PDF output.) ## Glossary ADOR Automatic Dynamic Object Replacement – Also known as "Content Object". This is the XMPie object which is placed into the InDesign layout and is replaced with information from a database at the time of production. RIP Raster Image Processor – Most production printers will have a dedicated PC or server known as a RIP which receives the print file and process it in preparation for printing. Subsetted / subsetting fonts The print output file normally includes or excludes the fonts required for the job. Another option is to include only those font outlines for the characters that are actually used in the print job. This is called font subsetting. This is particularly useful for double-byte fonts which can be very large files because of the huge number of characters in the font set. VDP Variable Data Print – The art of combining a print design with a database. Also known as VI (Variable Information), 121 (one to one) and several other acronyms. X-DOT XMPie Dynamic Object Transparency – a powerful XMPie feature which enables management of transparency related issues automatically at production time. XLIM XMPie Less Is More – XLIM is XMPie’s own document composition engine. Similar to Adobe InDesign Server, XLIM is able to take a document and a database and create variable data print output. Because XLIM has a smaller overhead than InDesign Server, it is able to compose output much faster, but with less design features. ## Watch a webinar Designing for Performance: Optimizing VDP Designs High volume creative VDP campaigns   Created by: Stephen Couch, last updated by Mohammad Mansour: January 2023 #### Advanced RIP-specific features with XMPie # Advanced RIP-specific features with XMPie **Summary**: This article explains advanced XMPie features, such as Dynamic Media Selection and external or references images for popular RIPs and printers. **Audience**: Pre-press production staff who are responsible for creating the variable data output from XMPie and setting up the files for production on the RIP. **Prerequisites:** This article assumes knowledge of XMPie products, basic Windows/Solaris Operating System skills, as required by your RIP, and experience with your RIP's user interface. ## Overview XMPie provides some output options which take advantage of different RIPs features including: - **Dynamic Media Selection** – to change paper trays for different pages in the job for each recipient. - **Image Referencing** – the ability to omit images from the output file so the data being sent to the printer is smaller and quicker to move across the network. Also some RIPs may process images faster when they are referenced outside of the print file. This article aims to show how to use these features with a selection of different RIP/Printer combinations, highlighting common mistakes and how to avoid them. It should be noted that while XMPie provides access to these features, it does not control the way the features are implemented on different RIPs. This article is a guide only, and some testing will be necessary to determine the best performance for your individual job, and the setup required on your RIP. ## Dynamic Media Selection XMPie enables two primary types of Dynamic Media Selection: - You can set a specific media type to a particular page in the InDesign template. That page will then use that paper type for each recipient. For example, page 1 will be plain paper; page 2 will be gloss paper; and this will apply to all recipients in the database. In this document, we’ll refer to this as static media selection. - You can also use business rules in an ADOR object to dynamically change the paper type for a particular page based on a value in the database. For example: page 1 for recipient 1 might be plain paper; but, for recipient 2, page 1 might be gloss paper. In this document, we’ll refer to this as dynamic media selection. To achieve media selection with XMPie: - Set up the required media selections in the InDesign document. - Create the print file in a format which supports media selection. - Load the required paper stocks to the printer. - Configure your RIP and print queue to support the media selection calls. - Submit the print file. The following sections describe these steps with a variety of different production RIP and printer combinations. ### Setting the media selection in InDesign #### Static Media Selection - Open the **Pages** palette in InDesign, and select (by double-clicking) the spread or page that you want to assign to a specific media. In the example below we are setting the media for spread/page 2. - In the fly-out menu on the **Pages** palette, select **Dynamic Media Selection**. This option will only appear if the InDesign document has already been connected to a database or plan file in the uCreate Print palette. - In the **Dynamic Media Selection** dialog, select the **Media Type**, **Color** or **Weight** option and enter the required value for your chosen output method as described in Entering the right media value for your output type. . #### Dynamic Media Selection - First create an ADOR object with the required logic. The value the ADOR returns should be a string value in the required format described in Entering the right media value for your output type. Examples of an expression to select different media based on the gender database column are presented below: uCreate Print: uPlan: - Open the **Pages** palette in InDesign, and select (by double-clicking) the spread or page that you want to assign the media to. In the following example we are setting the media for spread/page 2. - In the fly-out menu on the **Pages** palette, select **Dynamic Media Selection**. This option will only appear if the document has already been connected to a database or plan file in the uCreate Print palette. - Use the **Media Type**, **Color** or **Weight** option to select the ADOR object you created in step 1. This is shown in Figure 5. ### Entering the right media value for your output type The trick now, is to know what media type value to enter in the **Dynamic Media Selection** textbox, or the ADOR object, as this will vary depending on your RIP or output device and the output format that you will choose to print. #### Choosing the output format Dynamic Media Selection is available with VIPP, VPS, PostScript, PDF/VT-1 and PPML/VDX output formats. - If you have a Xerox FreeFlow Print Server (FFPS), VIPP should be the most efficient output format for you. First, check that you have a VIPP license enabled on your RIP. From the **Setup** menu, choose **Feature Licenses**. - If you see **Enabled** next to** Variable Intelligent PostScript Printware**, then you can use VIPP output from XMPie. - If VIPP is **Disabled**, then you should use PostScript or PDF/VT-1 output from XMPie. - If you have a Creo Spire print server, then VPS should be the most efficient output method for you. VPS is available on all Creo Spire RIPs. - If you have a Kodak or Xeikon print server, check if it supports PPML/VDX. If so, then this should be the most efficient output method for you. - If you have a different print server to those listed above, check the documentation to see if it supports VIPP, VPS or PDF/VT-1 output formats. These should be most efficient if they are available. Alternatively, select PostScript. #### Media type value required for VIPP output for Xerox FFPM For VIPP output, you need to select the Media Type option, and set a value in the following format: MediaType:MediaColor:MediaWeight Examples: Plain:White:90 Drilled:Yellow:120 It is also possible to specify only certain media parameters, in which case you should ensure to enter the parameter in the correct place: Examples: Change type only: Plain:: Change color only: :Red: Change weight only: ::90 Refer to these images for examples of using these values for VIPP output: #### Media type value required for VIPP output for Xerox iGen FFPM With the Xerox iGen, the required Media Type value is almost identical to the previous example. However, the iGen requires two additional parameters in the media value: MediaType:MediaColor:MediaWeight:MediaFrontCoating:MediaBackCoating Examples: Plain:White:90:Uncoated:Uncoated Plain:White:120:Gloss:Uncoated By default the valid settings for iGen coatings are: Uncoated, Glossy, HighGloss, SemiGloss, Satin, and Matte. It is also possible to use other coating settings, but these must first be setup on the iGen Press Interface (not the FFPM). #### Media type value required for VPS output to Creo Spire print servers For VPS output format, the Media Type value can be any text value. You can use spaces and other characters, but you must be careful that you replicate the name exactly in both Dynamic Media Selection dialog in InDesign and in the media library on the Creo RIP. Example of use for VPS output #### Media type value required for PPML/VDX output The VDX output by XMPie complies with the PDM2 specification. This specification provides three media types, which can be referenced in the output: - Body - Insert - Cover If you wish to output VDX for your RIP, you can enter any of these three media types in the Dynamic Media Selection dialog in InDesign, and set the appropriate media settings for the corresponding media type on your RIP. Note that the Body/Insert/Cover keywords are case sensitive. If your RIP processes a later specification of VDX (eg ANSI rather than PDM2), then you are not restricted to these three media types. However, to get XMPie to use media calls that are not PDM2 compliant, you must contact XMPie Support to have a registry setting changed so uCreate Print or uProduce will put non PDM2 compliant media calls into your VDX output. #### Media type value required for PostScript output to Fiery EX-P2100 The EX-P2100 has pre-configured media types already defined. You must use one of: Plain, Transparency, Preprinted, Tabstock, Labels, Recycled, Heavy, Extraheavy, Lightpaper, HeavyTabstock, Usertype1, Usertype2, Usertype3, Usertype4, and Usertype5. You can use any of these pre-defined media type values. You will later remap these values to stocks that you define. For example you can use Heavy, and later map it to a stock which is normal weight. Example of use for PostScript output #### Media type value required for PostScript output to Xerox FFPS FFPS has some pre-configured media types already defined. For example: Plain, Transparency, Preprinted, Postcard, Labels, Recycled, Adhesive, etc. You can choose to use one of these predefined values, or to define a custom media type. If you choose to use a custom value, you can use any string value, but you must name it exactly the same in both the Dynamic Media Selection dialog in InDesign and on the RIP stock settings. Also, remember that the values will be case sensitive on FFPS. Example of use for PostScript output Note that while most Xerox FFPS rips support Media Type, some (for example Xerox Color 1000 Press) do not support Media Type, and Media Color and/or Media Weight must be used instead. #### Media type value required for PDF/VT-1 output to Xerox FFPS Only FFPS versions after v7 will support dynamic media selection with PDF/VT-1 output format. The Media Type, Media Color and Media Weight values can be either a pre-configured name or custom – same as for PostScript output type described above in section 3.2.7. Note that while most Xerox FFPS rips support Media Type, some (for example Xerox Color 1000 Press) do not support Media Type, and Media Color and/or Media Weight must be used instead. #### Media value required for PostScript output to other devices/printers It is possible that other printers which are PostScript-compatible may be able to use Dynamic Media Selection from XMPie PostScript output. You will have to refer to your printer’s documentation or contact the manufacturer. XMPie puts the media call into the PostScript in the following format: <> setpagedevice Where xxx will be the value you enter into the Dynamic Media Selection dialog. You will have to determine whether your RIP/printer will support the MediaType parameter of the setpagedevice PostScript call, and what value is required to achieve the selection of the media you want on your printer. If your printer does not support media selection based on the MediaType setpagedevice PostScript call, it is also possible to enter more complex PostScript commands which will replace or redefine the setpagedevice operator. This requires a strong knowledge of PostScript programming, and a registry change which instructs XMPie to accept PostScript commands in the **Dynamic Media Selection** dialog, or ADOR object. To set this registry setting, create a new string value called: UserWritesCompleteMediaCommand At this location: \\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\XMPie\Common\1.00.000 Set the data value to: 1 For uProduce servers with extension servers, the registry setting needs to be made on all servers Directors and Extensions. **Note:** It is recommended to make a backup of the registry before making changes. Errors in the registry can make the system inoperable. To use custom PostScript setpagedevice commands with uCreate Print on Macintosh, edit: Library->Application Support->XMPie->XMPRegistry.plist Create two new lines as below: UserWritesCompleteMediaCommand 1 **Note:** Customizations to the registry and the XMPRegistry.plist files will be removed if you “repair” or “modify” the uProduce Server or uCreate Print installer, or if you upgrade to a newer version. Now that you have set the registry to accept custom PostScript commands, you need to identify from your RIP vendor the setpagedevice command that is needed in the PostScript. For example, for the EFI Fiery RIP on a Xerox 700 DCP, the values that should be entered into the **Dynamic Media Selection** dialog to select different trays with XMPie PostScript output are: << /XJXsettrayselV2 [ 1 ] >> XJXEFIsetpageproperties %%Tray 1 << /XJXsettrayselV2 [ 4 ] >> XJXEFIsetpageproperties %%Tray 2 << /XJXsettrayselV2 [ 5 ] >> XJXEFIsetpageproperties %%Tray 3 << /XJXsettrayselV2 [ 20 ] >> XJXEFIsetpageproperties %%Tray 4 << /XJXsettrayselV2 [ 2 ] >> XJXEFIsetpageproperties %%Tray 5 As you can see, these settings are very specific to the RIP/printer involved. Therefore, you need to get this information from your RIP/Printer vendor and it is not possible for XMPie Support to provide advice on this. ### Creating the print file with XMPie #### uCreate Print - On the uCreate Print fly-out menu, choose **Dynamic Print** and select required output Format. The image below shows the selection of VIPP output from uCreate Print. #### uProduce Server - Select the document in uProduce and click **Process**. Select the required Print Format. The image below shows the selection of VIPP output. ### VIPP Project Container option If you are printing to VIPP output on uProduce, there is another option which you may choose to select. XMPie provides an option to create a VI Container or VPC (VIPP Project Container) as shown below: A VPC is a zip file containing the print file, plus assets and resources separate to the print file, but included in the zip. If you choose to use this feature, the print queue that you submit the job to must be setup to receive a VPC so the assets and resources will be unzipped and placed into the correct places on the RIP. For more information the RIP settings to use for VPC, refer to Section 3.4.2. ### RIP setup for Dynamic Media Selection #### Setup on FFPS for VIPP job submission - Firstly, under **Setup** select **System Preferences**, on the **Job Processing** tab is a setting which requires some thought. The setting highlighted in the image below enables you to determine how much disk space will be allocated to Variable Data Objects. The more disk space you allocate to Variable Data Objects, the more images can be cached. But, the more disk space you allocate to Variable Data Objects means less disk space for holding print jobs in the completed queue. - Create a new Queue to submit your VIPP jobs to. From the FFPS **Queue** menu select **New Queue**. - On the **PDL Settings** tab, **PostScript / PDF** section. There some more settings which need some thought and consideration. Refer to the image below. - **Image Processing** sets the resolution that will be used when the VIPP/PostScript will be processed. The default setting is **Enhanced**, which processes at 600x600 dpi. **Normal** will process at 300x300 dpi. **Enhanced** provides slightly better image quality, but takes significantly longer to process. It is recommended to test **Normal** to see if it suits your needs. (Note that most other comparative RIPs eg Creo/Fiery use 300x300 dpi processing.) - **Resolution** is the resolution that the job will be sent to the printer. All Xerox production printers print native 600x600 dpi. Reducing this resolution will not save you much time, but will cost you in print quality. - Under **Variable Data**, you need to ensure **Caching** is **Enabled**. (This is the default when creating a new queue.) - Load the required media into the printer. Note: all media for the job must be the same sheet size. - From the **Printer** menu on the RIP, select **Paper** **trays**. - Double click the first tray you loaded media into. - Ensure the name is set to **Unspecified**. Set the Media Type, Media Color, Media Weight. Note: the values you set here must be the same as the values you entered into the **Dynamic Media Selection** dialog in InDesign or set in the ADOR object. - Set any other paper attributes relevant to your media – e.g. coating, and sheet size etc. - Click **OK** and repeat for any additional paper trays required for your job. - You are now able to submit the job to the new queue. #### Additional setup on FFPS for VPC job submission When processing to VIPP on the uProduce Server, XMPie provides an option to create a VPC (VIPP Project Container). In order to use the VPC file on your FFPS, you need to follow the same steps as outline above, plus, there is one additional setting you need to make to the Queue. In the **Queue Properties** dialog, on the **Settings** tab, click the **Job Filter** section. Click **Apply Filter** and select the **FreeFlow VI Project Container Filter** as shown below: #### Setup on the Creo Spire for VPS job submission To use XMPie Dynamic Media Selection with Creo VPS, you can follow these steps: - On the Creo, open the Resource Center by clicking on the relevant icon, or select **Resource Center…** from the **Tools** menu. - Change the **Resource** drop-down from **Virtual Printers** to **Paper Sets**. Depending on the version of your Creo, this may be called **Paper Stocks**. - Click the + icon in the lower left corner to create a new paper set with the required attributes. In the example pictured, we are using two paper sets: “Colotech 120 Gloss” and “Colortech 90 uncoated”: | | | | --- | --- | - Click **OK** to create your new paper set, and repeat for any additional stocks required for your job. - In the **Resource Center** dialog, change the **Resource** drop-down to **Virtual Printers**. Click the + icon in the lower left to create a new virtual printer. - Enter a name for your virtual printer and check the box to **Support dynamic page exceptions** as shown below. - In the **Based on** drop-down list, select an existing queue for this one to be based on (e.g., SpoolStore/ProcessPrint/ProcessStore). | | | | --- | --- | - Click the **Edit** button to set defaults for this new virtual printer. - On the **Exceptions** tab, select the paper set required for your job, and assign it to the tray that you will load this paper to in the printer as shown below: - On the **Paper Stock** tab select the paper set that will be used for the first sheet of your job as shown below. If you do not do this step, you will have to make this setting on the job after you submit it to the queue - Click **Save**, to exit the settings, click **OK** to save your new virtual printer, and then close the Resource Center. - You are now able to submit the job to the new virtual printer. #### Setup on the Xerox FFPS v8 and later for PostScript job submission - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. - Open the **Stock Library Manager**. Click the **Stock Library…** button. - Click the **Create new…** button. - From the **Type** drop-down, select the same name that you entered into the **Dynamic Media Selection** dialog in InDesign, or in the ADOR object. - If the media type you used is not available in the drop-down list, select Custom from the drop-down. In the next dialog, enter the **New Stock Type Name**, and click the **Add Type >>>** button until all the required stock names are in the custom stock list. After closing the dialog, they will appear in the drop-down list. Select one for this new stock definition. - Click **Advanced Setup**. Ensure the **Stock by Name Only** checkbox is NOT checked. Click **OK**. - Enter a descriptive **Name** for your new stock type, and define the other stock settings eg sheet size, orientation, weight, coating, etc. Then **Save** the new stock type. - In the **Stock Library Manager**, click the tray where you loaded your stock, and select your newly defined stock name from the library list. In the image below, Matt is in tray 1 and Gloss is in Tray 3. - Create a new Queue for your job submission. On the **Settings** tab, **Input format** section, set the **Format** to **PostScript**. - On the **PDL Settings** tab, **Postscript** section, disable** Parallel RIPs** and enable **Variable Data Caching**. You may also want to test reducing the **Resolution** to 300dpi instead of 600dpi. Reducing the resolution will make processing faster if you feel the image quality is sufficient at 300dpi. - On the **Stock** tab, click the **Set Use Ready** button. Then click **OK** to the confirmation dialog. You queue is now ready. Enter a descriptive **Name** for the queue, and save it. - Submit your job to this queue as per normal. #### Setup on the Xerox FFPS v8 and later for PDF/VT-1 job submissions - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. - Open the **Stock Library Manager**. Click the **Stock Library…** button: - Click the **Add new…** button: - From the **Type** drop-down, select the same name that you entered into the **Dynamic Media Selection** dialog in InDesign, or in the ADOR object: - If the media type you used is not available in the drop-down list, select **Custom** from the drop-down. In the next dialog, enter the new stock type **Name**, and click the** Add Type >>>** button until all the required stock names are in the custom stock list. After closing the dialog, they will appear in the drop-down list. Select one for this new stock definition: - Click **Advanced Setup**. Ensure the **Stock by Name Only** checkbox is NOT checked. Click **OK:** - Enter a descriptive **Name** for your new stock type, and define the other stock settings, such as sheet size, orientation, weight, coating, etc. Then save the new stock type. - In the **Stock Library Manager**, click the tray where you loaded your stock, and select your newly defined stock name from the library list. In the image below, Matt is in tray 1 and Gloss is in Tray 3. - Create a new Queue for your job submission. On the **Settings** tab, **Input format** section, set the format to **PDF** and lock it. - On the **PDL Settings** tab, **PDF Processing** section, set to use the **Adobe PDF Print Engine**. - On the **PDL Settings** tab, **Native PDF** section, select **Disable** for **Parallel RIPs**, and select **Enable Caching** for **Variable Data**. - On the **Stock** tab, click the **Set Use Ready** button. Then click **OK** to the confirmation dialog. Enter a descriptive **Name** for the queue, and save it: -  Submit your job as per normal. #### Setup on the Xerox FFPS v7 and earlier for PostScript job submission - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. Note 1: All sheet sizes should be the same. Note 2: When using PostScript output type and named media type with your FFPS, you must use the same stock color/weight/coating for all stocks required in the tray. (Of course you can load different colored stock in one tray, but you need to set the printer and RIP saying it is the same color as the other media. Loading paper that has a different weight or coating than what you specify is NOT recommended.) - Depending on your output device, you may need to configure Custom Paper Types on the Printer. (EG, this step is not necessary for Nuvera, but is required for DocuColor 700.) On the DC700 you must login to the printer console as administrator and enter Tools mode to set up the custom paper settings. Refer to your printer’s documentation for more information. - Follow steps 1-3 as described in Setup on FFPS for VIPP job submission. - On the RIP, select **Paper Trays** from the **Printer** menu. - Double-click on the tray which you loaded the first stock. Leave the stock name as default or Unspecified. Set the size/color. Click **Type/Weight**, select **Custom** from the **Type** menu. Enter the name of the stock exactly as you did in the **Dynamic Media Selection** dialog InDesign, or in the ADOR you are using for media selection. - Click **OK**, and repeat step 5 for additional media required for your job. For PostScript output, only the custom name can be different. Size/Color/Weight/Coating options must be the same. (Of course you can load different colored stock in one tray, but you need to set the printer and RIP saying it is the same color as the other media. Loading paper that has a different weight or coating than what you specify is NOT recommended.) - Create a new queue to (see Setup_on_FFPS_for_VIPP_job_submission). On the **Stock** tab, ensure that the media is set for the first page of your job. - You are now able to submit the job to the new virtual printer. #### Setup on the Fiery EX-P2100 for PostScript job submission - Load the stocks required for your job into the printer. If you are prompted to set the stock attributes when you close the tray, then do so. - Open the **Stock Library Manager**. Click the **Stock Library** button. - Click the **Create new …** button. - From the **Type** drop-down, select the same name that you entered into the **Dynamic Media Selection** dialog in InDesign. The Fiery does not permit custom media type names. You must use one of the media types predefined by EFI. - If the EFI Media Type name is not available in the Versant stock library Type drop-down list, select **Custom**. In the next dialog, enter the new media type **Name**, and click the **Add Type >>>** button. Repeat until the required stock names are in the custom stock list. After closing the dialog, they will appear in the drop-down list. - Click **Advanced Setup**. Ensure the **Stock by Name Only checkbox** is NOT checked. Click **OK**. - Enter a descriptive **Name** for your new stock type, and define the other stock settings eg sheet size, orientation, weight, coating, etc. Then save the new stock type. - In the **Stock Library Manager**, click the tray where you loaded your stock, and select your new stock. In the example pictured below, we have Preprinted in tray 1, and Recycled in tray 3. - Login to Command Workstation and select Configure from the **Server** menu. - Click **PDL** and then click **SPD**. Check the box to **Enable Set Page Device Mapping**, and **Apply** your change. If you needed to enable this setting, click **Reboot**. - Import your PostScript file into the Command Workstation Hold Queue, and double click to open the **Job Properties** dialog. - On the **Media** tab, check the **Use set page device media mapping** box. Then click the **Settings…** button. - For each of the media types defined in your job, click **Add**. From the **Media type** drop-down, select the media type name that you entered into the **Dynamic Media Selection** dialog in InDesign. From the **Paper Catalog Entry** drop-down, select the name of the stock that you just created in the Versant stock library. - Click **OK** and submit your job. ### Dynamic Media Selection limitations - At the time of writing, Dynamic Media Selection is only supported with VIPP, VPS, PS, PDF/VT-1 and PPML/VDX output types. IE other output formats (PPML/PS, PDF, Adobe PDF, and Legacy PDF) do NOT support Dynamic Media Selection. - Do not use XMPie’s Step and Repeat feature, or your RIP’s imposition feature when using Dynamic Media Selection. - All required media trays in the RIP/Printer must be the same size. It is a limitation of PostScript that all pages in the document must be the same size. - Some RIPs will not automatically rotate the output image to suit mixed portrait/landscape loading of media in one job. If you experience problems, ensure that all media trays are loaded in the same orientation. (IE all long-edge feed, or all short-edge feed.) ## Image Referencing Normally, when creating your print output from XMPie, you will choose to Embed the Assets and Resources as shown in Figures 48 and 49. This means that the images will be included in the output file which you have to send to the printer. **Note:** Even if you choose to embed images in the output stream, if your document contains the same image in several places, XMPie includes the image in the output stream only once, and references the object for subsequent appearances. But, in some cases, for example when you have a document that you print regularly against different databases, if it includes several large images, it could be more efficient to store the images on the RIP, and exclude them from the output file. This means the output file will be much smaller and take less time to send to the printer. To exclude the images from the output file, and insert “references” to the image name, simply uncheck the **Assets** and/or **Resources** checkbox. - **Assets** refers to images which are variable in your document (where a graphic ADOR is selecting the image to display for each recipient), while - **Resources** refers to images which are static – they are not Graphic ADORs and will be the same for all recipients. If your print job is only ever run once, then it is not particularly efficient since you still need to copy the images to the RIP – although you may choose to do this via external media rather than copying them over the network. ### Referenced images with Xerox FFPS and VIPP To process your VIPP output file when images are omitted from the print stream, follow these steps: - Create a new print queue on the RIP as described in section Setup on FFPS for VIPP job submission. You do not need to enable the OPI (Open Prepress Interface) setting which is used by some print systems to replace low resolution images with high resolution versions at the time of production. - Copy the required images to the FFPS. You can move the files to the server via CD/USB/FTP/SMB – whatever medium is convenient. (Refer to the FFPS User Guide for more information on how to connect to the RIP’s file system.) The place to put the image files on the RIP is: /usr/xgfc/gshared. When processing the VIPP output from uProduce, it is possible to send the output file and images to the RIP automatically during production. To do this, first create two output destinations in uProduce: One being an FTP site, network path or network printer – to send the output print file to. - One being a network path – to send the assets and resources to the required images folder on the RIP. This feature requires you to setup an SMB share on the FFPS using Samba. Refer to the FFPS User Guide for more information on how to do this. Once you first print the job to both destinations, if there are no additional assets or resources, you can choose to send only the print file. - If creating output via uCreate Print, or uProduce (without copying to a secondary destination) you can submit your print file normally, once you have copied all the required images to the gshared folder. It is also possible for you to manage the images you have on the RIP, by selecting **VI Projects Manager** from the **System** menu. #### Using VI Project Container (VPC) with FFPS When producing VIPP output with uProduce, you also have the option of creating a VPC file. A VPC is a zip file containing the print file, plus assets and resources separate to the print file, but included in the zip. If you choose to use this feature, the print queue that you submit the job to must be setup to receive a VPC so the assets and resources will be unzipped and placed into the correct places on the RIP. For more information the RIP settings to use for VPC, refer to Section Additional setup on FFPS for VPC job submission. ### Referenced images with Creo Spire and VPS output To process your VIPP output file when images are omitted from the print stream, follow these steps: - Create a new print queue on the RIP as described in section Setup on the Creo Spire for VPS job submission. - Copy the required images to the Creo. You can move the files to the server via CD/USB/FTP/SMB – whatever medium is convenient. (Refer to the User Guide for more information.) The place to put the image files on the RIP is: D:\Shared\High Res or \\\Shared\High Res. When processing the VPS output from uProduce, it is also possible to send the output file and images to the RIP automatically at the same time. To do this, first create two output destinations in uProduce: - One being an ftp site, network path or network printer – to send the output print file to. - One being a network path – to send the assets and resources to the required images folder on the RIP. Once you first print the job to both destinations, if there are no additional assets or resources, you can choose to send only the print file. - If creating output via uCreate Print, or uProduce (without copying to a secondary destination) you can submit your print file normally, once you have copied all the required images to the High Res folder. ### Tips and tricks with image referencing #### I made a change in my image, but I still get the old image when I print One of the most common problems reported by customers when they start to use externally referenced images, is that they will update an image on the local computer and print the document from InDesign, but the image remains the same on the print out. You must also remember to update the copy of the image which is on the RIP! #### Images are reported missing on FFPS, but they’re there Remember that the FFPS uses a Solaris operating system, which has case-sensitive file names. It is common for customers to copy the files to the correct spot on the file system, and get confused when the RIP reports some images as missing. Closely double check the case of any images reported missing... #### I selected to not embed images, but the output file size is the same Only certain image types can be excluded from the print file: - VPS and VIPP support EPS/JPG/TIFF outside of the print file. - PPML supports only EPS outside of the print file. Check your image assets and resources types to ensure that they can be supported outside of the print file. ## Glossary ADOR Automatic Dynamic Object Replacement – Also known as “Content Object”. This is the XMPie object which is placed into the InDesign layout and is replaced with information from a database at the time of production. Cache / Caching When a RIP processes an element which is tagged as reusable, it will hold this element in its processed state, so that when the next time this element is required in the job, it is already processed and ready to go. #### **FFPS** FreeFlow Print Server – A Xerox RIP or print server, originally called DocuSP, later versions are known as FreeFlow Print Server. #### **DPI** Dots Per Inch / Pixels Per Inch – this is a measure of the resolution or quality of an image. The higher the resolution, the higher the DPI, and the larger the file size. #### **Global** **Cache ** Caching is normally done on a job-by-job basis, however some RIPs support global caching which enables the RIP to hold a processed copy of the element to use in following print jobs. This is useful when processing multiple batches of the same job, but can cause problems/confusion if the image is later changed and the job reprinted... #### **PDF/VT-1 ** A format of PDF designed for variable data or transactional print. It can include additional information such as recipient meta data. #### **PDM2 ** PDM2 is a specification of the VDX output format. Refer to VDX for more information. #### **Pixel** The smallest, most basic unit of an image. Rows of pixels of different color and density make up images for digital print, television and computer display. #### **PPML** Personalised Print Markup Language – PPML is an XML-based output format developed by the Digital Print Initiative (PODi). #### **Raster** To convert page text and graphic data to lines of pixels which a printer can transfer to paper. #### **RIP** Raster Image Processor – Most production printers will have a dedicated PC or server known as a RIP which receives the print file and process it (rasters it) in preparation for printing. #### **Reference / Referencing** VIPP, VPS and PPML output formats have a feature called “referencing” which enables for certain image types to be omitted from the main print file and found in a separate file which is “referenced” from the main print file. #### VDX Variable Data eXchange – (Also called PPML/VDX), is based on a subset of the PPML specification and is developed by the Committee for Graphic Arts Technologies Standards (CGATS). XMPie outputs VDX which is PDM2-compliant. PDM2 provides legacy support for PPML v1.5. Later versions of VDX are ANSI-compliant, which supports PPML v2.0. #### **VIPP** Variable-data Intelligent PostScript Printware – Developed by Xerox, VIPP is an output format based on PostScript, but with some additional features to address PostScript’s limitations for variable data print. #### **VPC** VIPP Project Container – a zip file which contains a print file and the resources (images etc) required to print. The Xerox FFPS (with a properly configured print queue) will extract the resources into the necessary folders on the RIP. #### **VPS** Variable Print Specification – VPS is a PostScript-based output format developed by Scitex (now Print On Demand Solutions, a Kodak company). Like VIPP it includes some additional features to better support variable data print. ## Additional information For more information, refer to the relevant user guide: - uProduce Reference Manual - uCreate Print User Guide - Your RIP User Guide   Created by: Steve Couch, last updated: February 29, 2016 #### Excluding folders from antivirus scanning on PersonalEffect servers # Excluding folders from antivirus scanning on PersonalEffect servers **Summary**: This article lists the folders to be excluded from antivirus background scans on machines running PersonalEffect Server products. **Audience**: XMPie customers who wish to run antivirus software on PersonalEffect server products. ## Overview Traditional antivirus solutions function by blocking known malware by examining or scanning files as they are written to disk on a computer device. If the file is known to the AV’s database of malicious files, the software prevents the malware file from executing. This increased file I/O can impact the performance on PersonalEffect Server products. It is our recommendation to consider an Endpoint Detection and Response (EDR) solution. EDR is an integrated endpoint security solution that combines real-time continuous monitoring and collection of endpoint data with rule-based automated response and analysis capabilities to detect and respond to cyber threats like ransomware and malware. It works differently than antivirus and should be lightweight in resource consumption. Installing and running antivirus software on the uProduce Server environment can cause significant performance degradation and - in some cases - software failures. To improve performance and avoid unexpected failures, it is recommended to exclude the folders specified in this article from the antivirus scan. ## Folders to exclude from antivirus scan - $:\XMPie\ - XMPieOutput - XMPieTempOutput - XMPieTempStorage - XMPieData* - XMPieAssets* - TempUpload* - $:\XMPLogs\ - $:\Users\\AppData\Local\XMPie\ - $:\Users\\AppData\Local\Temp\ - %systemroot%\System32\MSMQ\ - $:\Program Files\Microsoft SQL Server\ (If you've changed the default location of SQL data and log files, change this path accordingly.) - C:\Windows\System32\msmq\storage\LQS ***** It is not mandatory to exclude these folders. **Notes:** - The "$" sign represents the corresponding drive letter (for example, C, D, etc.). - The tag represents the concurrent user where XMPie applications are installed/running. - The %systemroot% variable does not work as exclusion for some antivirus software. Make sure to spell out the full path name in the antivirus exclusion list. - In order to verify the installation paths of XMPie and Adobe products, you can run the **ServerInfo** utility provided by XMPie support. This utility will provide you the exact installation locations of these product components. Please contact an XMPie support representative for more information. - Some antivirus applications will flag some of the XMPie services as unknown or possibly unwanted processes. If there are problems with the XMPie system after installing the antivirus application, please check that none of the XMPie services are quarantined.   Created by: Arik Michaelovich, last updated by Mohammad Mansour: March, 2024 #### XMPie Server Maintenance # XMPie Server Maintenance **Summary**: This article describes the maintenance tasks that are needed to maximise the performance of your XMPie server and to make sure you are able to recover from any critical failures. **Audience**: The tasks outlined in this document should only be performed by the system engineer who is responsible for the maintenance of the XMPie PersonalEffect servers. **Prerequisites**: This article assumes a high level of Microsoft Windows Server knowledge as it is possible to cause irreversible damage to the XMPie PersonalEffect installation if not followed correctly. Before running any of these tasks, it is recommended to back up the SQL server. **Important: **It is the customer’s responsibility to provide sufficient resources to the system, such as free disk space, database storage and memory. Falling too low on resources might result in system slowdown, failures and unexpected behavior. ## Overview To maximise performance of XMPie PersonalEffect, it is important to maintain your servers correctly. The following topic will guide you through some recommended maintenance tasks that should be performed to ensure that your system continues to run smoothly and to help you fix any issues that may arise. The GDPR (General Data Protection Regulation) mechanism, which was developed by XMPie in order to assist customers in complying with the GDPR regulations, can be utilized as a cleanup tool for automatic deletion of local data sources, recipient lists, jobs and outputs. Activating this mechanism will save you the need to perform manual cleanup operations, and thus will prevent system downtime. Detailed information about it can be found in the uProduce online help. ## Monitoring the XMPie System Before performing any maintenance task, it is recommended that you take a look at the status of your system. This can be done using the uProduce monitoring tool. Open the tool by clicking the **Monitor** button on the navigation bar. This button is only visible to the users who are granted permissions to view the monitoring information. The following monitoring capabilities are given: - **Disk Space monitoring:** Notifies you about the amount of available disk space and issues alerts when the minimum disk space threshold is reached. - **Database size monitoring:** Monitors the used database space to determine whether you need to increase its size or remove unneeded objects. - **Services monitoring:** Displays the status of XMPie services for each XMPie server. If a service stopped running, it is automatically marked with an error status. In case an error or a warning, an email notification is sent to the administrator. Detailed information about these monitoring capabilities is found in the uProduce online help. ## Maintenance Tasks To maintain performance, it is important to run the tasks that are outlined in this document at regular intervals. You can refer to the chart below to see the recommended interval for each task. Important! These tasks should only be performed during off-peak periods, when your server is not in use. | Task Description | Recommended | | --- | --- | | Windows System Components | | Cleanup using RESTful API | Monthly | | Install Windows Updates | Weekly & before upgrade | | Check Windows Time | Weekly* | | Defragment the file system | Monthly | | Check disk usage | Weekly & before upgrade | | SQL Database Components | | Cleanup using RESTful API | Monthly | | Check SQL database file size | Weekly (or before any large campaign)** | | Rebuild SQL database indexes | Monthly | | XMPie Server Components | | Cleanup using RESTful API | Monthly | | Back Up the XMPie Server | Daily & before upgrade | | Delete uProduce temporary files | Monthly | | Remove jobs from the Job Center | Monthly | | Remove events from the XMPie Tracking database | Weekly (or before any large campaign)** | | Delete old hosted data sources | Monthly | * If your Windows time is correct each time you check, it means the NTP server is functioning correctly and you can cut back on the frequency of this maintenance task. ** This task is critical if running Microsoft SQL Express Edition. ## Maintaining XMPie Server Components via the uProduce Dashboard It is possible to run maintenance and cleanup processes via the uProduce dashboard. For details, see the uProduce Maintenance page. This ability is available starting from version 12.2. It is recommended that you back up your data bases prior to performing any of these maintenance processes. ## Maintaining XMPie Server Components via the uProduce RESTful API It is possible to run maintenance and cleanup processes via the uProduce RESTful API. To use this API you must have an API license. It is recommended that you back up your data bases prior to performing any of these maintenance processes. You can access the API at http:///xmpierestapi Expand the **System** section and look for the **/v1/system/maintenance/cleanup **request. Click **MaintenanceCleanupRequest** to view all available cleanup parameters: Click the **Try it out** button to set all parameters, and then click **Execute**. If you do not have an API license, you can run the commands in power shell. Set the correct server, user name and password as follows: Invoke-RestMethod -Uri 'http://****/XMPieRestAPI/v1/system/maintenance/cleanup' -Method 'POST' -Headers @{Authorization=("Basic {0}" -f ([Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f '****','****')))))} -ContentType 'application/json' -Body (@{ShrinkDB=1;RebuildDBIndexes=1}|ConvertTo-Json) ## Windows System Components ### Installing Windows updates To ensure a secure, up‐to‐date system, it is recommended to check Windows Updates at least once a week. Make sure it is not set to automatic updates. If updates are found, make sure you have a current backup before applying them, in case there are any conflicts with the XMPie PersonalEffect system. Updates should be applied when there is no activity on the server. If running multiple servers, make sure the same Windows Update settings are defined for all servers and that all server are running the same updates. ### Checking Windows time If the Windows time is set incorrectly on your servers, emails sent through XMPie email service might not actually be sent and instead return an error. The time settings of most servers will be automatically synchronized with an “NTP server”, to set time automatically, which normally works as expected. However, in some cases (for example when running in a virtualized environment), it is possible for the time to drift out by a few minutes, which will cause email send failure. ### Defragmenting the file system Through time, the computer's hard disk may become damaged or fragmented (unavailable in a large contiguous block). If there is not enough contiguous space for the system to save a file, it saves segments of that file on different locations of the disk. This increases the time needed for an application to read a fragmented file. Please note that during defragmentation disk usage will be very high and therefore system responsiveness will be impacted. We highly recommend only running/scheduling a Defrag only when your XMPie server solution is not in use. ### Checking disk usage XMPie PersonalEffect will store temporary files on both your OS drive and the XMPie data partition. It is important to make sure there is enough available space for your software to operate correctly. If all disk space is used the server will cease to produce any output. Check the available disk space on each drive and confirm the available disk space on each drive. If the drives are getting full, it would be wise to make sure the Recycle Bin is empty, and remove uProduce Temporary Files and Old Jobs as described in Deleting uProduce Temporary Files  and Removing Old Jobs from the Job Center. Purchasing a larger drive should be considered in order to make sure the system runs without interruption when processing very large jobs. ## SQL Database Components ### Checking SQL database file size XMPie PersonalEffect uses Microsoft SQL server for all of its database storage. Depending on the version of Microsoft SQL you have installed, there is a limitation on the maximum file size of each SQL Database. You can check the size of XMPie databases by running the following SQL command on your SQL Server. SELECT DB_NAME(database_id) AS Database_Name, Name AS File_Name, Physical_Name AS Physical_Path, (size*8)/1024 AS Size_MB FROM sys.master_files WHERE DB_NAME(database_id) in ('XMPDB2','uStore','XMPDBASSETS','XMPDBTRACKING','XMPDBHDS') ORDER BY Size_MB desc GO This will give you a list of the XMPie databases and their file size: If any of these databases are approaching the maximum database size for your version of Microsoft SQL, it would be wise to consider an upgrade to Microsoft SQL Server Standard Edition, or shrinking the database and files. If the XMPDBTracking database is too large, consider removing tracking data for campaigns that are no longer required, as described in Removing events from the Tracking database. If any of your databases are approaching the file size limit for your version of SQL Server, it’s strongly suggested to monitor these databases before and during a campaign, as if they do hit their size limit during a campaign your campaign may go offline. ### Rebuilding SQL database indexes It is recommended to perform database reorganization on your SQL database monthly. This will rebuild the indexes so that the data is no longer fragmented. Fragmented data can cause SQL Server to perform unnecessary data reads, slowing down SQL Server’s performance. **Important!**  Before running any SQL commands, make sure a backup of your database has been taken. The following SQL command can be run on your SQL Server to reindex the required XMPie databases. -- This will reindex all tables in the 'uStore', 'XMPDB2' and 'XMPDBASSETS'databases if there is sufficient space. USE uStore GO EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")' USE XMPDB2 GO EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")' USE XMPDBASSETS GO EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")' USE XMPDBHDS GO EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")' USE XMPDBTRACKING GO EXEC sp_MSforeachtable 'DBCC DBREINDEX ("?")' **Important!**  Reindexing will temporarily take your database offline. Only reindex when the server is not in use. ### Removing events from the Tracking database When a campaign has tracking turned on, these tracking events are recorded in the XMPDBTracking database. Over time this database can grow very large in size and depending on the version of SQL that is installed on your server, it is possible to hit a maximum database size which will stop events from being tracked. If this occurs mid‐campaign you may lose tracking information related to that campaign. Therefore, it is very important not only to monitor the size of this database as described in Checking SQL database file size, but to also remove tracking from campaigns that are no longer required. For instructions on how to remove unused tracking events, please refer to Support. ## XMPie Server Components ### Backing up the XMPie server As a precautionary step, it is crucial to back up the XMPie server in order to be prepared for any scenario in which the system crashes or completely fails. The backup should include databases, files system and registry. **Important!** Backup should be performed daily and before any software upgrades. There are two options when performing a backup: - A full system backup which will back up the complete operating system and the XMPie server solution. This will take more space and may take longer, but it will allow you to recover from a failure quicker and will cover you for failures not only within the XMPie system but also within the Windows OS. - The other option is to only back up the XMPie file system and registry settings. If you are performing a full system backup there are many tools available which are outside of the scope of this article. If you choose to back up only the file system, please refer to the chart below that contains all the locations critical to XMPie that need to be backed up. To back up the file system: | Application | Folders that should be backed up | Server | | --- | --- | --- | | uProduce | [drive letter]:\xmpie | Back end server* | | uStore | [drive letter]:\xmpie\uStore | Back end server* | | XMPL | [drive letter]:\XMPie\XMPieWebServer\XMPieWebSiteManagement\XMPieWebSites | Front end web server** | | ISAPI_Rewrite(Helicon) | [drive letter]:\ProgramFiles\Helicon\ISAPI_Rewrite3\ The path may vary in case of localized OS | Front end web server** |   To back up the registry: | Application | Registry entry that should be backed up | Server | | --- | --- | --- | | All | HKLM\SOFTWARE\Wow6432Node\XMPie | Back and front end servers* |   To back up the database: | Application | Databases that should be backed up | Server | | --- | --- | --- | | uProduce | XMPDB2, XMPDBASSETS, XMPDBHDS | Back end server* | | Analytics | XMPDBTRACKING | Back end server* | | uStore | uStore | Back end server* | * Back end server refers to Solo ** Web server refers to Proxy server (located in the DMZ) ### Deleting uProduce temporary files It is important to remove unused temporary files, as they are by default located on the primary OS drive which often has limited space. To remove these files, you can run one of the following commands from either the Command Prompt or Powershell. Command Prompt: forfiles /P "C:\Users\%USERNAME%\AppData\Local\Temp" /M "*" /S -C "CMD /C **DEL** /F /Q @file" /d -7 Powershell: forfiles /P "C:\Users\$env:UserName\AppData\Local\Temp" /M "*" /S -C "CMD /C DEL /F /Q @file" /d -7 | forfiles /P "C:\Users\$env:UserName\AppData\Local\Temp" /M "*" /S -C "CMD /C DEL /F /Q @file" /d -7 | | --- | **Note:** It is important that you log in with the Windows user credentials that were used with XMPie's services. The variable %USERNAME% will automatically be replaced with the logged in user. ### Removing jobs from the Job Center To maximise performance of the XMPie PersonalEffect server and to minimize disk usage, it is recommended to remove jobs from the Job Center once the job is completed and the output is no longer required on the server. Unused jobs can be deleted from the Job Center. **Important!** Remove the jobs with caution as any deleted jobs cannot be retrieved. ### Deleting old hosted data sources To maximise performance of the XMPie PersonalEffect server and to minimise database disk usage, it is recommended to remove old hosted data sources from the uProduce dashboard or from the Circle library. **Important!** Remove the data sources with caution as a mistakenly deleted data source may break the campaign.   Created by: Mohammad Mansour, last updated: September 2024 #### Deploying XMPie Server Products on Amazon Web Services # Deploying XMPie Server Products on Amazon Web Services **Summary**: This article lists the main resource requirements and cost considerations for running XMPie PersonalEffect Server products on Amazon Web Services infrastructure. **Audience**: Customers who wish to host their servers on Amazon EC2. ## Overview This article lists the main resource requirements and cost considerations for running XMPie PersonalEffect Server products on Amazon Web Services infrastructure. Amazon Web Services (AWS) is a cloud computing platform that provides a suite of infrastructure services. The usage of AWS cloud provides a highly reliable and secured infrastructure for deploying XMPie Server products. ## Infrastructure Amazon Web Services provide a reliable, secure, and highly-performing infrastructure for the most demanding applications, an infrastructure that matches XMPie server products solution. AWS can also deliver a scalable cloud computing platform with high availability and dependability. The diagram below represents a dedicated Virtual Private Cloud (VPC) within Amazon Web Services (AWS) Cloud with Public and Private subnets. Usually, only the Public subnet is exposed to the web while the Private subnet remains secured. We recommend this scenario if you want to run a public-facing web application, while maintaining back-end servers that aren't publicly accessible. A common example is XMPie StoreFlow, with a web server in the Public subnet and the Application/DB server in the Private subnet. The following is a sample configuration of the XMPie StoreFlow deployed on AWS within a VPC with a Public and Private Subnets: The best security practice scenario is to run a public-facing web application server, while maintaining back-end servers that aren't publicly accessible. ### Security XMPie PersonalEffect deployed on AWS is designed to meet security best practices, such as: - **Environment Isolation:** This is achieved by using Amazon Virtual Private Cloud (Amazon VPC). Amazon VPC provisions a logically isolated section of the Amazon Web Services (AWS) cloud. - **Firewall:** Amazon Elastic Compute Cloud (EC2) provides a complete firewall solution; every Amazon EC2 instance (virtual machine) is protected by security groups. Security groups provide firewall protection for the running instances. The traffic can be restricted by protocol, by service port, as well as by source IP address. - **Secure Socket Layer (SSL):** A protocol for data encryption over the Internet is supported. - The physical security is handled by the service provider (AWS). ## Minimal System Requirements XMPie PersonalEffect can be deployed in any of the following configurations: - **XMPie Turn-Key Systems**: A basic XMPie Turn-Key system (excluding Print) includes at least two servers: a single Production Server and a front-end web server. - **XMPie Enterprise Platforms:** The XMPie Enterprise Platforms (excluding Print) includes at least three servers: Director, Extension and a front-end web server. Note that any PersonalEffect System can be deployed on AWS Infrastructure without a front-end Web Server. This configuration is NOT recommended by XMPie since it directly exposes the Application/DB Server to the web. As a minimum requirement, XMPie PersonalEffect runs on top of M5 family instance types from AWS Elastic Compute Cloud (EC2). This family provides a balance of compute, memory and network resources. The main Features for M5 instances are: - Up to 3.1 GHz Intel Xeon Scalable processor (Skylake 8175M or Cascade Lake 8259CL) with new Intel Advanced Vector Extension (AVX-512) instruction set - Support for Enhanced Networking - Balance of compute, memory, and network resources The table below represents the AWS instance’s specifications for each of the PersonalEffect packages (both for Turn-key and Platforms systems). These are the minimum requirements with the corresponding Amazon EC2 instance types. | XMPie Turn‐key Systems | AWS Instance Type | vCPU | RAM (GiB) | | --- | --- | --- | --- | | PersonalEffect Print | M5.large | 2 | 8 | | PersonalEffect Print Pro | M5.xlarge | 4 | 16 | | PersonalEffect StoreFlow | M5.large | 2 | 8 | | PersonalEffect StoreFlow Pro | M5.xlarge | 4 | 16 | | PersonalEffect TransMedia | M5.large | 2 | 8 | | PersonalEffect TransMedia Pro | M5.xlarge | 4 | 16 | | | | | | | XMPie Platforms | AWS Instance Type | vCPU | RAM (GiB) | | Enterprise Print - Director | M5.large | 2 | 8 | | Enterprise Print - Extension | M5.large | 2 | 8 | | Enterprise Cross Media - Director | M5.large | 2 | 8 | | Enterprise Cross Media - Extension | M5.xlarge | 4 | 16 | | | | | | | XMPie add-on | AWS Instance Type | vCPU | RAM (GiB) | | Front-end Web Server | T3.medium | 2 | 4 | | uProduce 8-Way MI | M5.2xlarge | 8 | 32 | * The information above can vary and it is true as of November 2022. ## Amazon Web Services Cost Details XMPie PersonalEffect deployed on AWS infrastructure includes a few elements (AWS services) to be considered when calculating the total monthly/yearly cost. Amazon Elastic Compute Cloud (EC2) allows you to pay only for capacity that you actually use. In order to fully understand the total cost of any XMPie PersonalEffect package deployed on AWS infrastructure, you should be familiar with all AWS elements and services presented in the following sections. ### Amazon EC2 Reserved Instances Amazon EC2 Reserved Instances (“RIs”) allow you to make a low, one-time payment to reserve instance capacity and further reduce the on-going Amazon EC2 costs. Reserved Instances provide the ability to maximize your level of savings by purchasing the Reserved Instance that meets your business’s needs. There are various Reserved Instance types. Instance types comprise of various combinations of CPU, memory, storage and networking capacity. For example, m5.large. RIs enable you to balance the amount you pay upfront with your effective hourly price. You can choose between three payment options: All Upfront, Partial Upfront and No Upfront. In this document we only refer to the All Upfront payment option. All Upfront RIs offer the utmost saving of any Reserved Instance type. AWS On-Demand Instances let you pay for compute capacity by the hour with no long-term commitments or upfront payments. Amazon offers significant price breaks for using reserved instances (RI’s) over on-demand instances. ### Amazon EC2 Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. Amazon EC2’s simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. For details, see http://aws.amazon.com/ec2/pricing/ ### EBS Amazon Elastic Block Store (Amazon EBS) provides persistent block-level storage volumes for use with Amazon EC2 instances in the AWS Cloud.  Each Amazon EBS volume is automatically replicated within its Availability Zone to protect you from component failure, offering high availability and durability. Amazon EBS volumes offer the consistent and low-latency performance needed to run your workloads. With Amazon EBS, you can scale your usage up or down within minutes – all while paying a low price for only what you provision. For details, see http://aws.amazon.com/ebs/pricing/ To summarize, with Amazon EBS, you only pay for what you use. ### Elastic IP Address You can have one Elastic IP (EIP) address associated with a running instance at no charge. If you associate additional EIPs with that instance, you will be charged for each additional EIP associated with that instance per hour on a pro rata basis. Additional EIPs are only available in Amazon VPC. To ensure efficient use of Elastic IP addresses, Amazon imposes a small hourly charge when these IP addresses are not associated with a running instance or when they are associated with a stopped instance or unattached network interface. For details, see http://aws.amazon.com/ec2/pricing/ ### Data Transfer Data Transfer pricing is based on data transferred "in" to and "out" of Amazon EC2. Pricing information can be found at https://aws.amazon.com/ec2/pricing/on-demand/ ### Amazon Simple Storage Service (S3) Amazon S3 can be used alone or together with other AWS services such as Amazon Elastic Compute Cloud (Amazon EC2). Amazon S3 provides cost-effective object storage for a wide variety of use cases including cloud applications, backup and archiving and disaster recovery. For details, see http://aws.amazon.com/s3/ Amazon S3 can be used for backup AWS EC2 running instances by creating snapshots into S3. ### AWS Simple Monthly Calculator You can estimate your costs by using AWS Simple Monthly Calculator. The calculator is a JavaScript-based tool that allows you to calculate your monthly cost for using Amazon EC2, Amazon S3 and more. For details, see http://calculator.s3.amazonaws.com/index.html ## Durability and Availability XMPie PersonalEffect systems deployed on AWS infrastructure are mainly based on top of AWS Elastic Compute Cloud (EC2) service. The service runs within Amazon’s proven network infrastructure and data centers. Amazon Web Services offer a highly reliable environment by using the Elastic Compute Cloud (EC2). Amazon EC2 is a web service that provides resizable compute capacity in the cloud. The Amazon EC2 Service Level Agreement commitment is 99.95% availability for each Amazon EC2 Region.   Created by: Arik Michaelovich, updated by Mohammad Mansour on July, 2022 #### XMPie uProduce Production Units Report for uProduce with “Volume Pack” license # XMPie uProduce Production Units Report for uProduce with “Volume Pack” license **Summary**: This article explains how to run a query to receive information about how many production units were consumed per account/campaign/job. **Audience**: XMPie customers who want to know the amount of production units consumed and are using uProduce with a “Volume Pack” license. **Prerequisites:** This article assumes the user understands how to run SQL queries using the Microsoft SQL Server Management Studio. ## Overview From PersonalEffect version 7.1.1, production units history usage is stored in the XMPie database. This data allows the XMPie customer to report how many production units were consumed per account / campaign / job. Getting this data from the XMPie database is currently done by running an SQL Query on the XMPie database. This document explains how to run such query. ## SQL Query Open the Microsoft SQL Server Management Studio for the SQL server instance in which the XMPie databases reside. - Use the following SQL query: WITHJobsAS ( SELECTj.*,c.AccountIDasaccountIDFROM[XMPDB2].[XMPie].[TBL_JOB]jLEFTJOIN[XMPDB2].[XMPie].[TBL_CAMPAIGN]cONj.campaignID=c.campaignIDWHEREISNULL(parentJobID,0)= 0 UNION SELECTj.*,c.AccountIDasaccountIDFROM[XMPDB2].[XMPie].[TBL_JOB_DELETED]jLEFTJOIN[XMPDB2].[XMPie].[TBL_CAMPAIGN]cONj.campaignID=c.campaignIDWHEREISNULL(parentJobID,0)= 0 ) --SELECT SUM(jobClickCharge) as clickCharge FROM Jobs where accountID = 1 --SELECT SUM(jobClickCharge) as clickCharge FROM Jobs where campaignID = 1 --SELECT SUM(jobClickCharge) as clickCharge FROM Jobs where documentID = 1 --SELECT SUM(jobClickCharge) as clickCharge FROM Jobs where jobID = 1 --SELECT SUM(jobClickCharge) as clickCharge FROM Jobs where accountID = 1 AND jobSubmitTime BETWEEN '2015-01-26 08:00:00' AND '2015-01-29 08:00:00' - Remove the comments from the line you want to use. For example, to query the production units consumed by job ID 88663, run the query as follows: WITHJobsAS ( SELECTj.*,c.AccountIDasaccountIDFROM[XMPDB2].[XMPie].[TBL_JOB]jLEFTJOIN[XMPDB2].[XMPie].[TBL_CAMPAIGN]cONj.campaignID=c.campaignIDWHEREISNULL(parentJobID,0)= 0 UNION SELECTj.*,c.AccountIDasaccountIDFROM[XMPDB2].[XMPie].[TBL_JOB_DELETED]jLEFTJOIN[XMPDB2].[XMPie].[TBL_CAMPAIGN]cONj.campaignID=c.campaignIDWHEREISNULL(parentJobID,0)= 0 ) --SELECT SUM(jobClickCharge) as clickCharge FROM Jobs where accountID = 1 --SELECT SUM(jobClickCharge) as clickCharge FROM Jobs where campaignID = 1 --SELECT SUM(jobClickCharge) as clickCharge FROM Jobs where documentID = 1 SELECTSUM(jobClickCharge)asclickChargeFROMJobswherejobID= 88663 --SELECT SUM(jobClickCharge) as clickCharge FROM Jobs where accountID = 1 AND jobSubmitTime BETWEEN '2015-01-26 08:00:00' AND '2015-01-29 08:00:00' #### Running XMPie Server Products Connected to SQL Server with Transparent Data Encryption (TDE) # Running XMPie Server Products Connected to SQL Server with Transparent Data Encryption (TDE) **Summary**: This article describes how to encrypt sensitive data in the database and protect the keys that are used to encrypt the data with a certificate using Transparent Data Encryption (TDE). TDE performs real-time I/O encryption and decryption of the data and log files. **Audience**: XMPie customers and database administrators who wish to run XMPie Server products connected to an encrypted SQL Database. ## Overview Transparent Data Encryption (TDE) encrypts SQL Server Database data files, known as encrypting data at rest. You can take several precautions to help secure the database, such as designing a secure system encrypting confidential assets and building a firewall around the database servers. However, in a scenario where the physical media (such as drives or backup tapes) are stolen, a malicious party can simply restore or attach the database and browse the data. One solution is to encrypt the sensitive data in the database and protect the keys that are used to encrypt the data with a certificate. This prevents anyone without the keys from using the data. TDE performs real-time I/O encryption and decryption of the data and log files. The encryption uses a database encryption key (DEK), which is stored in the database boot record for availability during recovery. The DEK is a symmetric key secured by using a certificate stored in the master database of the server, or an asymmetric key protected by an EKM module. TDE protects data "at rest", meaning the data and log files. It provides the ability to comply with many laws, regulations, and guidelines established in various industries. This enables software developers to encrypt data by using AES and 3DES encryption algorithms without changing existing applications. ## About TDE TDE enables you to encrypt an entire database. TDE is completely transparent to the application and requires no implementation of code changes. TDE requires SQL Server Enterprise edition. It is not available for SQL Server Standard edition. TDE is also available for SQL Server Datacenter edition. Encryption of the database file is performed at the page level. The pages in an ecnrypted database are ecnrypted before they are written to the disk and decrypted when read into the memory. TDE does not increase the size of the encrypted database. ### Information Applicable to the SQL Database When using TDE with SQL Database, the server-level certificate stored in the master database is automatically created for you by the  SQL Database. ### Information Applicable to the SQL Server When enabling TDE, you should immediately back up the certificate and the private key associated with the certificate. If the certificate ever becomes unavailable or if you must restore or attach the database on another server, you must have backups of both the certificate and the private key, otherwise you will not be able to open the database. The encrypting certificate should be retained even if TDE is no longer enabled on the database. Even though the database is not encrypted, parts of the transaction log may still remain protected, and the certificate may be needed for some operations until the full backup of the database is performed. A certificate that has exceeded its expiration date can still be used to encrypt and decrypt data with TDE. ### Encryption Hierarchy The following illustration shows the architecture of TDE encryption. Only the database-level items (the database encryption key and ALTER DATABASE portions) are user-configurable when using TDE on the SQL Database.   **Important:** TDE does not provide encryption across communication channels. For information on how to encrypt data across communication channels, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager). In addition, TDE protects the data at rest, but an authorized user such as a security administrator or a database administrator can access the data in a TDE-encrypted database. To prevent an SA or DBA from accessing selected parts of the data, you need to use application-level encryption. This is beyond of the scope of this document. ## Using TDE To use TDE, follow these steps using Transact-SQL. **Note:** From this point forward, the instructions assume that you have completed the XMPie Server products installation process. To access SQL Server Management Studio: - On the taskbar, click **Start**, point to **All Programs**, point to **Microsoft SQL Serve**r, and then click **SQL Server Management Studio**. The **Connect to Server** window is displayed. - Enter/select the SQL Server credentials and click **Connect** to login to the SQL Server Management Studio. - In the **Object Explorer** on the left pane, connect to an instance of the Database Engine. - On the Standard bar, click **New Query**. - Copy and paste the following example into the query window and then click **Execute**. The following example illustrates encrypting the XMPDB2 database using a certificate installed on the server named MyServerCert. -- Create a database master key and a certificate in the master database. USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '*rt@87(RT&Yask6'; GO CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'Certificate to protect TDE key' GO -- Create a backup of the server certificate in the master database. -- The following code stores the backup of the certificate and the private key file -- (C:\Program Files\Microsoft SQL Server\Backup\). BACKUP CERTIFICATE MyServerCert TO FILE = 'MyServerCert' WITH PRIVATE KEY ( FILE = 'SQLPrivateKeyFile', ENCRYPTION BY PASSWORD = '*rt@87(RT&Yask6' ); GO   -- Switch to the new database you would like to encrypt. -- Create a database encryption key, that is protected by the server certificate in the master database. -- Alter the new database to encrypt the database using TDE. USE XMPDB2; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; GO ALTER DATABASE XMPDB2 SET ENCRYPTION ON; GO **Note:** Make sure to repeat the above Transact-SQL script in order to encrypt the remaining XMPie databases. The following example illustrates encrypting the DBname-to-Encrypt database using a certificate installed on the server named MyServerCert. USE DBname-to-Encrypt; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; GO ALTER DATABASE DBname-to-Encrypt SET ENCRYPTION ON; GO **Caution**: Backup files of databases that have TDE enabled are also encrypted by using the database encryption key. As a result, when you restore these backups, the certificate protecting the database encryption key must be available. This means that in addition to backing up the database, you have to make sure that you maintain backups of the server certificates to prevent data loss. Data loss will result if the certificate is no longer available. Most of the information in this article has been taken from Microsoft's MSDN library. For further reading regarding Transparent Data Encryption (TDE), refer to: https://msdn.microsoft.com/en-us/library/bb934049.aspx.   Created by: Arik Michaelovich, last updated: November 2, 2015 #### XMPie Server Products - Disaster Recovery # XMPie Server Products - Disaster Recovery **Summary**: Disaster Recovery (DR) is the act of recovering a software system after the occurrence of an unforeseen event that could severely impact the software’s ability to operate effectively, thus affecting the business. Whilst there are three stages of disaster recovery, this article discusses only corrective measures. Preventative and detective measures are outside the scope of this document. **Audience**: XMPie employees, channel staff and customers involved in the disaster recovery planning of XMPie installations. The article aims at answering questions about the setup of DR and presents any special actions that should be made. Click here to read this article.   Created by: Arik Michaelovich, last updated: March 7, 2016 #### Circle & uProduce Load Test # Circle & uProduce Load Test **Summary**: This article describes tests that were carried out to verify that Circle and uProduce can handle an expected load of 600 orders per day (20 days in a month) = 12,000 instances per month from about 120 templates. **Audience**: XMPie internal Click here to read this article.   Created by: Batyah Rubin, last updated: November 19, 2018 #### uProduce Usage Model # uProduce Usage Model **Summary**: The document provides the pricing list for the uProduce Usage Model. **Audience**: This document is intended for XMPie support and sales personnel. Click here to read this article.   Created by: Amit Cohen: February 2021 #### Improving Search Performance in the File System Asset Source using Windows Indexing # Improving Search Performance in the File System Asset Source using Windows Indexing **Prerequisite:** PersonalEffect version 11.1 and higher. Currently, the **File System asset source** type, which is not managed by XMPie but rather by the customer, can contain many folders and subfolders in a deep hierarchy. During production, searching for the required files may take a long time, and could thus affect asset-resolving performance. This article raises the possibility of using **Windows Indexing**, when using the File System asset source type, to improve search performance. If you observe poor performance when searching for asset files, it is advisable to use Windows Indexing. Indexing is the process of looking at files on your server and cataloging their information by file name. When you search for files in the server after folders have been indexed, the asset-resolving mechanism looks at an index of terms to find results faster. This mechanism can operate only if the folders are located on a server, and not on a network storage device. **Important!** This feature is relevant only for large file system asset sources, where the search is slow. As a rule of thumb, if the search is under 2 seconds per asset, do not use this option as it may result in performance degradation. ## How to configure Windows Search Indexing - Start **Server Manager**. - Click **Manage**, and then click **Add Roles and Features**. - On the **Before you Begin page**, click Next. - Select **Role-based** or **Feature-based Installation**, and then click Next. - On the **Features** page, select **Windows Search Service**, and then click Next. - On the **Confirmation** page, verify that **Windows Search Service** is listed, then click **Install**. Once the service is enabled, configure each asset folder for which you wish to enable indexing as follows: - Open the **Control Panel** > **Indexing Options**, click **Modify** and add the selected folders. - Make sure to specify the file types that are part of your production which you wish to index, such as JPG, PDF, PNG, EPS, XNIP. This is done in **Advanced Options** window. When you first run indexing, it can take up to a couple hours to complete. After that, indexing will run in the background on your server as you use it, only re-indexing updated data. Once Windows Indexing is configured and enabled for the required file system asset folders, you should now activate this functionality on the uProduce asset source. To do so, in uProduce go to the **Asset Source** window of the campaign, and select the "Use Windows Search Indexing" checkbox. ## More about Windows indexing Search indexing in Windows 10 Troubleshoot Windows Search performance   Created by: Mohammad Mansour, January 2022 #### Configuring a Password Protected PDF to work with HTTPS # Configuring a Password Protected PDF to work with HTTPS The **Password PDF Protection** option in Circle is hidden by default. If you wish to enable it, contact Support. If you wish your protected PDFs to be secured via HTTPS, you must configure an SSL certificate on the XMPL and uProduce servers, as described below. ## uProduce - Install a valid SSL Certificate on the uProduce server from a Public (Certificate Authority) provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - In the uProduce dashboard, select the **Settings** tab > **Proxy Configuration**, and set the uProduce domain in the **Internal Address** field. - Make sure that both domain addresses (internal and external) are set to be HTTPS. - Make sure uProduce HTTPS URL can be accessed from XMPL server. ## XMPL - Install a valid SSL Certificate on XMPL server from a Public CA provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - Install the latest XMPL version. - During the installation, make sure to use the same uProduce **InternalAddress** (the one that you've set in step no. 2 above for uProduce). - During the installation, make sure to use the XMPL external address with the domain name address (the one that you've set in step no. 1 of this section) - XMPL will update the Helicon file automatically using the external and internal address. ## Circle ### New websites Enable HTTPS for the Circle project. - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. ### Existing websites If you wish to transfer existing sites to HTTPS, you need to enable HTTPS for the Circle project as follows: - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. - In the **General Configuration** section > **Configuration File**, download the new **xmpcfg.js** file. - Replace the existing **xmpcfg.js** file in the website folder on the XMPL server with the new configuration file.   Created by: Mohammad Mansour, updated February 2025 #### Configuring a PDF on Demand Document to work with HTTPs # Configuring a PDF on Demand Document to work with HTTPs If you wish your PDF on Demand document to be secured via HTTPS, you must configure an SSL certificate on the XMPL and uProduce servers, as described below. This requires XMPL version 3.3 or higher. ## uProduce - Install a valid SSL Certificate on the uProduce server from a Public (Certificate Authority) provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - In the uProduce dashboard, select the Settings tab > Global Settings, and set the uProduce domain in the **InternalAddress** field. ## XMPL - Install a valid SSL Certificate on XMPL server from a Public CA provider. - Note that a self-signed certificate can't be used. - Make sure to use a public/private domain or subdomain. - Make sure to bind the new certificate to the IIS default website. - Install the latest XMPL version. - During the installation, make sure to use the same uProduce **InternalAddress** (the one that you've set in step no. 2 above for uProduce). - During the installation, make sure to use the XMPL external address with the domain name address (the one that you've set in step no. 1 of this section) - XMPL will update the helicon file automatically using the external and internal address. ## Circle ### New websites Enable HTTPS for the Circle project. - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. ### Existing websites If you wish to transfer existing sites to HTTPS, you need to enable HTTPS for the Circle project as follows: - Go to **Library** > **Website** dialog > **Security** section, and select the **Use HTTPS** checkbox. - In the **General Configuration** section >  **Configuration File**, download the new **xmpcfg.js** file. - Replace the existing **xmpcfg.js** file in the website folder on the XMPL server with the new configuration file.   Created by: Mohammad Mansour, April 2022 #### Enabling HEIC AND HEIF Image Formats # Enabling HEIC AND HEIF Image Formats Support for HEIC and HEIF image formats is available from PersonalEffect version 13.4 and above. Here are the steps to install the extensions to support HEIC AND HEIF images. - Open the browser. - Open the HEVC extension page. - Click the **Install** button from the Microsoft Store. **Note:** If you did not succeed in installing this extension, use this link instead: HEVC Video Extensions. - Open the HEIF extension page. - Click the or **Install** button from the Microsoft Store. Once you complete the steps, you can start viewing ".heic" file extensions encoded using the HEIF container with Photos or another compatible app.   If the codecs are not working, you can reset the extensions by uninstalling and installing them again. The "Installed apps" page does not list these extensions as installed on the computer at the time of this writing. However, you can use the winget command to remove them. To fix HEVC and HEIF issues, use these steps: - Open **Start**. - Search for **Command Prompt**, right-click the top result, and select the **Run as administrator** option. - Type the following command to uninstall the HECV extension and press **Enter**:  winget uninstall Microsoft.HEVCVideoExtension_8wekyb3d8bbwe - Type the following command to uninstall the HEIF extension and press **Enter**:  winget uninstall Microsoft.HEIFImageExtension_8wekyb3d8bbwe - After you complete the steps, repeat the previous steps outlined at the beginning to reinstall the extensions, which should resolve most issues.   Created by: Mohammad Mansour on October 2024 #### Configuring Adobe Acrobat Distiller for Legacy PDF Output Format # Configuring Adobe Acrobat Distiller for Legacy PDF Output Format **Summary**: XMPie is deprecating the Legacy PDF output format starting with version 25.1. This article explains how to configure Adobe Acrobat Distiller in order to continue using this output format. **Audience**: uProduce users who wish to continue using Legacy PDF which has been deprecated.   To continue using the Legacy PDF output format, you must install **Adobe Acrobat Distiller** on your uProduce machine. Acrobat Distiller is included by default with the Adobe Acrobat installation and does not require a separate installation. In a Platform environment, ensure that Acrobat Distiller is installed on each extension. After installing Adobe Acrobat (and the included Acrobat Distiller), proceed with the following steps: - Select **File > Preferences**. - In the **Security** section, select the **Trust all files opened via Acrobat Distiller** checkbox. - Click **OK**. - Close **Acrobat Distiller**.   Created by Mohammad Mansour, January 2025 #### Enabling Advanced Logging in uProduce # Enabling Advanced Logging in uProduce uProduce provides basic logging. This article is intended for support personnel who wish to enable **advanced logging** for investigation and troubleshooting purposes, such as errors and performance issues. **Important:** - Setting advanced logging requires registry changes. Please do not touch the registry if you don't have the required knowledge. Turn to Support or your IT department for assistance. - Since XMPie logs are written to your "C" system drive and may take up a lot of space, once you've finished troubleshooting, make sure to disable the advanced logging option. ## How to enable advanced logging The registry entry for enabling advanced logging is **SeverityMask**. - Back up your registry. - Add the **SeverityMask** string value to the following location in the registry key: HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\XMPie\XMPie uProduce Server Object\1.00.000\ - Define the value of the **SeverityMask** string value from the following value logging options. Do not include the **0x** prefix. For example, **0x1F** should be written as **1F** for the **All** (full logging) option. - 0x01 – Error - 0x02 – Warning - 0x04 – Message - 0x08 – Performance - 0x10 – Extended Message Combinations: - 0x03 – Error + Warning - 0x09 – Error + Performance - 0x0F – All without Extended Message - 0x1F – All - Restart the uProduce server. - You can locate the log files for each component (services, RESTAPI, etc.) at **C:\xmpielogs**. For example: - InDesignServrer logs are located at C:\XMPLogs\InDesignServer\InDesignInstance_[ID]” where [ID] is the InDesign Server instance that did the production. - REST API and Web Service API logs are located at C:\XMPLogs\W3WP. - XLIM production logs are located at C:\XMPLogs\XMPService\XMPServiceXLIM. - In case of a distributed environment (Directors and extensions), repeat this process for each server. - Once you've finished your investigation, remove the **SeverityMask** registry entry and restart the servers.   Created by: Mohammad Mansour, updated on September, 2025 ### uStore # uStore #### Excluding folders from antivirus scanning on PersonalEffect servers # Excluding folders from antivirus scanning on PersonalEffect servers **Summary**: This article lists the folders to be excluded from antivirus background scans on machines running PersonalEffect Server products. **Audience**: XMPie customers who wish to run antivirus software on PersonalEffect server products. ## Overview Traditional antivirus solutions function by blocking known malware by examining or scanning files as they are written to disk on a computer device. If the file is known to the AV’s database of malicious files, the software prevents the malware file from executing. This increased file I/O can impact the performance on PersonalEffect Server products. It is our recommendation to consider an Endpoint Detection and Response (EDR) solution. EDR is an integrated endpoint security solution that combines real-time continuous monitoring and collection of endpoint data with rule-based automated response and analysis capabilities to detect and respond to cyber threats like ransomware and malware. It works differently than antivirus and should be lightweight in resource consumption. Installing and running antivirus software on the uProduce Server environment can cause significant performance degradation and - in some cases - software failures. To improve performance and avoid unexpected failures, it is recommended to exclude the folders specified in this article from the antivirus scan. ## Folders to exclude from antivirus scan - $:\XMPie\ - XMPieOutput - XMPieTempOutput - XMPieTempStorage - XMPieData* - XMPieAssets* - TempUpload* - $:\XMPLogs\ - $:\Users\\AppData\Local\XMPie\ - $:\Users\\AppData\Local\Temp\ - %systemroot%\System32\MSMQ\ - $:\Program Files\Microsoft SQL Server\ (If you've changed the default location of SQL data and log files, change this path accordingly.) - C:\Windows\System32\msmq\storage\LQS ***** It is not mandatory to exclude these folders. **Notes:** - The "$" sign represents the corresponding drive letter (for example, C, D, etc.). - The tag represents the concurrent user where XMPie applications are installed/running. - The %systemroot% variable does not work as exclusion for some antivirus software. Make sure to spell out the full path name in the antivirus exclusion list. - In order to verify the installation paths of XMPie and Adobe products, you can run the **ServerInfo** utility provided by XMPie support. This utility will provide you the exact installation locations of these product components. Please contact an XMPie support representative for more information. - Some antivirus applications will flag some of the XMPie services as unknown or possibly unwanted processes. If there are problems with the XMPie system after installing the antivirus application, please check that none of the XMPie services are quarantined.   Created by: Arik Michaelovich, last updated by Mohammad Mansour: March, 2024 #### Considerations when creating a new store in uStore # Considerations when creating a new store in uStore **Summary**: This article looks at the topics to consider when creating each new online store. With this information, you will be sure to gather all the relevant information from to configure the store to meet the customer's needs. **Audience**: customers who have purchased XMPie uStore, and specifically those users who are responsible for creating new online stores. Channel partners and support staff who are involved with installation, will also find this article a useful reference. ## Overview For every new online store that you create, there are a number of different options that you need to consider. This article serves as a checklist of the items to discuss with your end customer so that you have all the necessary information to quickly and efficiently create their online Storefront. ## New online store checklist The following is a checklist of the types of things to ask your customer and to have on hand when you create a new online store with uStore. ### General Store name? ___________________________________________________________ What type of store? Business to Business (password protected). Business to Consumer (customers able to browse without login). Custom uStore Connect (integrating with another shopping application). What will be the URL to the store? _________________________________________ Is this a new domain name that needs to be registered? __________________ Who will manage the registration and DNS? ____________________________ Will SSL be required? ______________________________________________ What branding / skin changes are needed? ___________________________________ Will the standard email confirmation messages be suitable? _____________________ What languages will be used in the storefront? ________________________________ Are there any custom texts required? (Header/footer/welcome text/order confirmation text/etc. Refer to uStore Help,  "Determining Store Appearance" section.) ______ Will custom help files be needed? __________________________________________ Will previews be JPG or PDF? ______________________________________________ Will the end user have to approve the proof? _________________________________ Will the end customer use USAData for recipient lists? __________________________ Will there be a contact person for help/assistance? ____________________________ Will you use LivePerson Chat?______________________________________________ Will you use Google Analytics? ### Registration Will customers be able to self-register? Will customers need to agree to terms and conditions when they register? __________ Will any custom information need to be captured at registration? _________________ Will there be different user groups (e.g. sales/marketing) with access to different product groups? ____________________ Will there be an order approval process? (For example: A manager from the customer's company has to approve orders before they are submitted.) _____________________ Will there be a Store Operator? (For example: An administrator from the customer's company to manage users or order approvals.) ________________________________ What password security measures need to be setup? ___________________________ ### Pricing What currencies will be accepted? __________________________________________ What clearing (payment) methods will be used? Invoice Cost centre / budget centre Credit card If credit card, which payment gateway and who's merchant account? Will pricing be shown or hidden? ___________________________________________ Will shipping be shown or hidden? __________________________________________ Will custom invoices/receipts be needed (eg different branding or company/business number)? ______________________________________________________________ ### Shipping What type of shipping methods will be used? Shipping Mailing FedEx UPS Custom _________________________________________________________ Will you enable split shipping? (Shipping to multiple addresses?) __________________ What are the shipping prices? Will there be mark up? ___________________________ What countries will shipping be available to?__________________________________ ### Back-end decisions Which uProduce user credentials will uStore use to access the production server? ___ Will a separate uProduce Account and/or user be required for the store? (eg to allow the customer to upload variable document templates to the production server in isolation to other accounts) _______________________________________________ Will there need to be any API development? Single sign-on from customer intranet Export of order details to customer MIS system Update of inventory stock levels to/from customer MIS system Custom credit card clearing Other __________________________________________________________ Will there need to be any custom HTML user controls? __________________________ For additional information, see Configuring initial settings after uStore installation.   Created by: Steve Couch, last updated: July 22, 2013 #### Configuring initial settings after uStore installation # Configuring initial settings after uStore installation **Summary**: This article describes the first settings required after installing uStore. **Audience**: customers who have purchased XMPie uStore, and specifically those users who are responsible for creating new online stores. Channel partners and support staff who are involved with installation, will also find this document a useful reference. ## Overview After installing uStore, there are a number of settings that you need to adjust to get the server ready for use in your infrastructure, and to localize things for your region. This document serves as a checklist of the items that you need to change to get your site ready for use quickly. The settings discussed in this article, would generally need to be set only once after uStore installation to prepare the server for use in your region, and for your network environment. Unless otherwise specified, you access all the settings discussed by logging in to your uStore server's administration website, also refer to as the Back Office: http:///uStoreAdmin. ## Email settings uStore is able to send order confirmation emails at different stages of the order and production process. To set up the email, you need to configure the following: ### SMTP server settings - Go to **Presets > System Setup > Mall**. - Click the **Edit** icon. - On the **Mall** page, enter your SMTP Server name or IP address. - If your SMTP server uses a non standard port, enter the required SMTP Port. - If your SMTP server requires authentication, enter the SMTP User and SMTP Password. - Click **Save**. ### Email message sender In many cases, SMTP servers will only send messages from known email users. Also, for email messages sent to customers, you want to have the email sent from a real email user or preferably an email group so that if the customer replies to the email, someone in your organization will receive the email and manage the customer's request. - Go to **Presets > Trigger Setup**. - Click the name of an email trigger (triggers which send emails are identified by an email icon). - Enter a real email address as the **Sender Address**. - If desired, you can change the **Sender Display Name**. - Click the **Save** button. - Repeat steps 2‐5 for each of the remaining message templates. ## Localization settings By default, uStore includes US English, French, German, Japanese, Spanish, Dutch and Portuguese language localizations. If you need to add an additional language for your uStore customers, you do the following: - Go to **Presets > Localization**. - Click **New**. - Select the Culture (language and country) that your new localization is intended for. - Click **Save**. A list of links is displayed. These links enable you to edit different pieces of text in the application. However, there are a lot, and it is generally easier to edit the required texts on an exported list and then import it back to uStore. - To export the list of texts for localization, click **Back**. - Click the **Export** button. - In the **Source Culture** list, select the culture that you will use to translate from. - In the **Target Culture** list, select the culture of the localization that you have just created. - Click the **Download Entire Translation** button. - Save the XML file to your desktop. - In the spreadsheet, replace all the [no localization] fields with the required translation. - When the translation is complete, return to the **Presets >Localization** page and import the file back to uStore. ## Available countries Billing and shipping addresses in uStore include a country selector. By default, uStore is installed with only Unites States enabled. To enable billing or shipping addresses to other countries you need to enable them. - Go to **Presets > System Setup > Country**. - Locate the country that you want to enable. You may need to click the numbers at the bottom of the screen to advance to other pages in the list. - Click the **Edit** icon next to the country that you want to enable. - In the **Status** list, select **Active**. - Click **Save**. - Repeat steps 2‐4 to enable additional countries if required. - You can also change the status of United States to Inactive if it is not relevant to your region. ## Available States/provinces Billing and shipping addresses in uStore include a selector for the state/province. By default, uStore is installed with states and provinces for some countries only. If you enabled an additional country in the previous step (Available countries), and it is not one of the countries with predefined states and provinces, you will need to add the states/provinces. - Go to **Presets > System Setup > Province**. - Click **Add New**. - Select the **Country**, and enter the details of the new province. - **Display Order** is optional. You must set the **Status** to **Active**. - Click **Save**. - After saving, locate your new province in the list. It will be added to the end of the provinces list. - Click the **Edit** icon next to the new province. - Click the **Edit Localized Text** button. - Click **Add New**. - In the **Culture** list, select the required culture. - In the **Name** box, enter the name of the new province as it is written in the language of that culture. - Click **Save**. - Repeat steps 7‐11 for all the cultures used in your stores' billing and shipping addresses. - Repeat steps 2‐12 for all the states or provinces in the country. ## Currency setup By default, uStore includes US Dollar, Euro and British Pound currencies. If you create stores that offer products in other currencies, you need to set up the currency so it can be selected when creating the online store. - Go to **Presets > Currency Setup > Add New**. - Enter the **Name**, **Symbol** and **Abbreviation** for the new currency. - Click **Save**. ## Exchange rates If your online stores will sell products in more than one currency, you need to define the exchange rates to convert between the currencies. - Go to **Presets > Currency Setup**. - Select the **Reference Currency** to be used as the base for the conversion. - In the **Exchange Rate** column, enter the exchange rate for all currencies that you have set up. (Note that the exchange rates are static, and therefore you may have to adjust these manually over time.) - Click **Save Exchange Rates**. ## Tax Setup If you need to add tax to the price of products in your online stores, you can add new tax settings for different countries as required. - Go to **Presets > Tax Setup**. - Click **New Tax**. - Enter a **Name** for the tax and set the **Percentage**. - Select the **Country** and **State/Provinc**e that the tax applies to. (State/Province will only appear if the selected country has states or provinces setup.) - Select which prices the tax **Applies for**. - Click **Save**. ## Clearing model setup If you use an online credit card clearing service, you need to set it up before you can select it in your store. - Go to **Presets > Clearing Model Setup**. - Click **New**. - Enter a **Name** for the new clearing method. - In the **Clearing Method** list, select a clearing method and enter the required account information. - Click **Save**. ## Delivery Services uStore includes automated delivery price calculations for FedEx and UPS. This is very useful for the American market, but these services are often not available or too expensive in other countries. So, uStore enables the setup of manual shipping and manual mailing delivery services. Note that you can also create a delivery service where there is no actual delivery – for example, "Store pickup". - Go to **Presets > System Setup > Delivery Services**. - Click **Add New**. - Select the delivery provider. - **Manual** means that the pricing will be entered manually. - **Shipping** is used where all the products in the order will be packaged and shipped together to a single address. - **Mailing** is used where the product will be mailed individually to each recipient in the order – for example, each postcard or greeting card could be mailed to the recipient instead of all being packed together and shipped to one address. - **Void** – means that no delivery service will be applied. - Set the **Status** to **Active**. - Enter a **Name** for the delivery service. - Click **Save**. ## Global Product Properties uStore comes preconfigured with a number of product properties for different finishing options. If you will offer specific paper types, you can edit the Default Paper Types. Also, you can set up new product properties for different finishing options that you want to make available for products in the online stores. - Go to **Presets > Global Product Properties Setup**. - Do one of the following: - To edit an existing property, click its link. - To add a new property, click the **Add** button. - Click **Save**. ## Global Addresses To enable users to select a delivery or pickup addresses from a list, you can set these addresses in the **Global Addresses** page. - Go to **Presets > System Setup > General Pickup Address**. - Click **Add New**. - Add the required address. - Click **Save**. ## Manufacturers Setup If you will have some products created at a different location, you can setup different manufacturers to specify the pickup location of those products. This can also be used to affect shipping price. - Go to **Presets > Manufacturer Setup**. - Click **New Manufacturer**. - Enter a name to be displayed for the manufacturer. - Enter the required address fields. - Click **Save**. ## Data Sources Setup uStore has a feature that enables you to set ADORs or Variables in dynamic documents to a value looked up from a database. One of the most useful reasons for this is to pre‐populate customization fields based on the login of the user – for example to put the person's first name in the field without the user having to enter it. To use this feature, you first need to create a database link to the uStore users' database. - Go to **Presets >Data Sources Setup**. - Click **Add** new **Data Source**. - Enter a name for the data source. - Enter the SQL Server name or IP address and instance name. (You may need to get this information from your System Administrator.) - The uStore Database is called ustore. - Enter a SQL Server **User Name** and **Password** to access the database. - To enable the data source to be used in all stores, select the option **Allow using this data source in all stores**. - To ensure that your settings are correct, click the **Test Connection** button. - Click **Save**. ## Prepress workflow provider When processing products, uStore is able to pass JDF information about the job to prepress workflow applications. By default, new installations of uStore will also include Xerox FreeFlow which is one such prepress workflow application. If you also have FreeFlow Process manager or HP SmartStream in your print production room, you can also tell uStore how to pass jobs to prepress workflows that you create in these applications. - Go to **Presets > System Setup > Prepress Workflow Provider**. - Click **Add new**. - In the **Name** field, enter a name for the provider. - In the **Provider Type** list, select the relevant option for your workflow server. - In the **Gateway URL**, enter the required port as follows: - To connect to a Xerox Process Manager, type: http://[ServerName] or [IP_Address]:7779 - To connect to Xerox FreeFlow Connect, type: http://[ServerName] or [IP_Address]:7751 - To connect to an HP SmartStream system, type: http://[IP_Address]:8080/dpp/jmf/dfe - (Optional) In the Logo File Name box, you can enter the path to the logo of the workflow provider. The logo image file should be placed here: \\[ServerName]\XMPie\uStore\App\AdminApp\Images\Prepress\[LogoFileName]. If you do not provide the path to a file, uStore displays the name of the provider instead. - If the prepress provider has a web application for creating and editing workflows, you can add a link to the application directly from the **Presets** menu. In the **Admin URL** box, enter its path. - If the prepress workflow provider is installed on the same server as uStore, enter its relative path. For example, type: /[workflow_provider_url]. - If the prepress workflow provider is installed on a remote server, enter its full path. For example, type: http://[ServerName] or [IP_Address]/[workflow_provider_url]. - Click **Save**.   Created by: Steve Couch, last updated by Mohammad Mansour: 01.03.2022 #### How to upgrade uStore using a staging server # How to upgrade uStore using a staging server **Summary**: This article explains how to upgrade uStore using a staging environment. ## Overview XMPie tries to minimize downtime and avoid any inconvenience to customers who want to upgrade the uStore software on a live production server with online stores. uStore versions are tested before they are officially released, nevertheless, uStore enables customers to customize and localize the software, which often includes site-specific development. Therefore, upgrading to a new uStore version may sometimes result in a store (or more) not to work as required. To avoid such issues, it is recommended that customers first validate the functionally of the new uStore version with its specific stores on a staging server, which must be similar to the production server environment. This article describes how to safely upgrade your uStore system when you work with a staging environment. ## Purpose of the uStore staging server uStore upgrade procedure may affect a store or a number of stores depending on your system's customizations. Following is a list of uStore elements that can be customized and need to be checked before you go live with a new version of uStore: - Skin - Email message templates - Receipt setup - Custom solutions made by professional services or anyone else using uStore SDK or APIs. Using a staging server enables you to safely test and make the necessary adjustments to your system prior to going live. **Important:** uStore staging server should not be used for creating test products or stores. You cannot export the products to the uStore production server. For creating test products and stores, create a test store on the uStore production server. After you've tested the products, copy them to the relevant stores. ## Setting up a uStore staging server The staging server must be identical to the production server. The staging server must run on the same operating system version as the production server. Any software installed on the staging server must run the same version as the production server. Both servers must have the same configuration and include the same customizations, APIs and software patches. The following procedure provides an overview of the main steps required for setting up the uStore staging server. Prerequisite: Before you set up the uStore staging server: - Prepare a dedicated server according to the uStore installation prerequisites. - Verify that the Microsoft Windows operating system running on the server is activated and genuine. For more details, see the uStore Installation Guide. **Note:** The staging server must include an independent SQL server database. To set up the uStore staging server: - Back up the uStore production server's database and restore it on the uStore staging server. Make sure that the XMPieUStore user is the owner of uStore database. - On the uStore production server, locate the uStoreShared folder -- usually located at\\to the matching location on the uStore staging server. - On the staging server, install the same version of Microsoft Office that is installed on the production server. You can download a trial version from Microsoft’s website. Note: After 28 days the Microsoft Office trial version will become obsolete. - On the uStore staging server, install the same version of uStore that is installed on the uStore production server and connect the staging server with the uProduce production server. - On the staging server, locate the uStore application folder --usually at X:\XMPie\uStore\App and back it up. - On the production server, locate the uStore application folder -- usually at X:\XMPie\uStore\App and copy it to the staging server (overwrite the existing folder). - Copy all the **web.config** files from the staging server backup, and overwrite them. These files are located under: - X:\XMPie\uStore\App\AdminApp - X:\XMPie\uStore\App\CustomerApp - X:\XMPie\uStore\App\API\uStoreWSAPI - X:\XMPie\uStore\App\Common\uStore.CommonControls - If your stores use SSL, you need to enable SSL on the uStore staging server using a self-signed certificate. As an alternative, you can turn SSL off for your stores. - Set the uStore staging server state to Staging as follows: - Open the uStore Back Office application. - Go to **Presets > System Setup > Global Configurations**. - Edit the **StagingEnvironment** parameter and change its value to **true**. - Go to **Presets > System Setup > Mall**. - Edit the record. - Change the value of uStore Server IP to the - To refresh any cached content, restart Internet Information Services (IIS): - Open the **Run** dialog box. Keyboard shortcut: Press the Windows key+r. - In the **Run** dialog box, type iisreset. Your staging server has now the same uStore system as the uStore production server. Before you continue, perform some tests to verify that everything is working as expected. **Note:** Unless you have a staging uProduce license and a staging uProduce server, you should connect uStore on the staging server to work with the uProduce production server. This means that all proof and production operations initiated by uStore on the uStore staging server will take place on the uProduce production server. ## Upgrading uStore software on the uStore staging server When a new version of uStore is available, install the new updates of uStore on the staging server. You can find the updates in **Presets > XMPie Services**. After the installation procedure is successfully completed, you can start to test the new version of uStore to verify that it works appropriately. ## Testing the new uStore version on the staging server The following is a checklist that will help you verify that uStore functionality was not affected after upgrading to a new version of uStore. While performing the tests, make sure that you keep record of any changes that you make. You will need to apply all the changes to the uStore production server afterwards. | Functionality | Task | Make sure that ... | | --- | --- | --- | | Customized solutions | Check that any plug-ins or other functionality developed using XMPie APIs or SDKs function as expected. | You keep a record of all changes required. | | Checkout process | Complete one order in every store.; After you complete the order, go to My Account>Order History and check the order receipt | The store looks as expected.; Notification emails are sent as expected.; Order receipts look as expected. | | Store's appearance | Apply required changes to CSS files | You keep a record of all changes required. | | Message templates | Edit email templates, if required. | You keep a record of all changes required. | | Receipt Setup | Edit receipt templates, if required. | You keep a record of all changes required. | | Store setup | Create a new store. | The store works as expected. | | Product setup | Create a new product. | The product works as expected. | | Reports | Run a predefined report.; Run a custom report. | The reports work as expected, especially if you have custom reports. | | Queues and actions | Follow one of the existing orders through all the queues. | Order queues and actions work as expected, especially if you have custom queues or actions. | | Triggers | Activate a couple of existing triggers. | The triggers work as expected. | | Delivery setup | Order a product using one of the delivery methods. | Your delivery methods and setup work as expected. | | Clearing services | Order a product using one do the clearing methods. | Existing clearing services work as expected, especially if you use any plug-ins or customized solutions. | | Prepress workflow setup | Run a product through one of the existing prepress workflows. | The prepress workflow providers and workflows setup work as expected, especially if you use providers that are not available out-of-the-box. | ## Going live After you have upgraded and tested the uStore system on the staging server, you are ready to upgrade the production server. On uStore production server: - Back up the uStore database. - Back up the uStoreShared folder -- usually located at \\ - Back up the skin folders: \\\uStore\App\CustomerApp\Images \\\uStore\App\CustomerApp\App_Themes - Upgrade the uStore software to the same version and build number as the ones installed on the staging server. To install the new updates, go to **Presets > XMPie Services**. - Review the records taken when testing the uStore system on the staging server and apply the required settings and workarounds to the production server. - If any changes were made to the CSS files, copy the skin folders from the staging server to the production server. - To make sure that the production server was upgraded as required, complete at least one order in one of the existing stores. Now you and your customers can benefit from the new features and improvements provided by the latest version of uStore.   Created by: Ben Pelkinson, updated by Mohammad Mansour on January 20, 2019 #### uStore Security Features # uStore Security Features **Summary**: This article describes uStore security features. ## Overview uStore is an e-commerce platform offering web-2-print and VDP capabilities. Storefronts based on uStore are exposed to the world wide web and are publicly available. uStore Storefront customers enter their credentials, billing information and other sensitive details in the store, as well as upload their documents, images, mailing lists and other files which might contain sensitive information. The separation between stores is not physical on the database level. There is application separation between store entities, according to their linked IDs. Therefore, uStore must offer a secure and safe environment. This article describes uStore security features. ## Setting security options (SSL) SSL (Secure Sockets Layer) is used to ensure that information added to uStore is secure. You need to install and configure SSL to be able to use the secure options. In the **Security Options (SSL)** section, specify how to use the SSL protocol to secure the information users enter into your online stores (for example, login or payment details). Securing uStore using SSL requires one of the following certificates, depending on the number of domains you want to secure: - A regular SSL certificate – secures a single domain. This certificate is useful for securing a single store, or several stores that share the same domain name, but differ by their sub-folder name. - A Multi Domain SSL certificate – secures multiple domains. This certificate is useful for securing several stores that have different domain names (friendly URLs). Once you have installed and configured SSL on your website’s Internet Information Server (IIS), you can configure it in uStore by choosing one of the options below. **Note:**  When a Proxy server is used in front of an application server and all connections coming from the web to the uStore server are routed through the Proxy server, the SSL certificate must be installed on both uStore and Proxy servers. To set security options: In the **Security Options (SSL)** section (Store Setting > Set Up Store > Advanced tab), select one of the following options: - **Not Secured** - if you do not want the store to be secured by SSL. This option is useful while you are working offline and are in the process of setting up the store. Once you make the store available online, make sure you change this setting to **Secure All**. - **Secure All** - to secure all pages in this store. This configuration may slow down the page loading. **Important!** The system does not support having both secured and non-secured stores on the same domain/sub-domain. If you have both secured and non-secured stores on the same domain/sub-domain, please change the non-secured ones to be secured (or vice versa, although not recommended), or shoppers may have a problem accessing them. ## Users uStore has an enhanced authentication and permissions mechanism, which makes sure that customers can only log in to stores they are allowed to. Moreover, it is possible to restrict customers to certain products or product groups, and to deny customers from checking out orders. ### Registration uStore registration mechanism has a CAPTCHA feature which can be enabled on the store level to make sure only human customers register to the store. uStore also has an activation feature, which can be enabled for a store in order to make sure customers register using a real email address, and one that they really have access to. It is also possible to integrate a custom registration page, in which uStore customers can implement their own UI and logic for customer registration. Registration settings are configured in **Store Setting > Set Up Store > General** tab: ## Passwords uStore has a password policy feature, which can be enabled on the store level and can enforce the following: - A certain password format, defined mainly by minimum and maximum number of characters of different types. - Passwords can expire after a certain number of days. - An account can be locked out after a certain number of login attempts, and can be unlocked after a certain amount of time. Password policy settings are configured in **Back****Office** > **Store Setup > Permissions** tab: ## Sender address in triggered emails When creating an email trigger, you are required to enter a **Sender Address**. This is the email address that appears in the **From** field of the received email. Make sure you use a genuine email address, but one that is **not** used for logging into the system. ## SQL injection Websites that store or process data will usually use some sort of Structured Query Language (SQL) database as a back end repository. This database can be used to store anything from product and customer information to usernames and passwords. Copying user input into the SQL database query string and executing that query can lead to SQL injection vulnerabilities. SQL injection vulnerabilities can allow cyber-criminals to collect sensitive information stored in the database and to completely take over the vulnerable system. uStore uses a common technique, known as “parameterized queries” (or “prepared statements”), in order to cope with the risk of SQL injection. The implementation of parameterized queries is documented on the OWASP website (). This technique is used in queries made internally by uStore, as well as in queries that can be configured by uStore administrators for some advanced features offered by uStore. ## Cross-site scripting Cross-site scripting is a security vulnerability which enables a cyber-criminal to execute client side script, which might be harmful. Cross-site scripting is prevented by default by the ASP.NET platform on which uStore is based. However, in some cases, cross-site scripting is enabled in uStore Back Office by design. In those cases, uStore administrators may enter HTML and JavaScript code for particular fields. By doing so, a uStore administrator can customize the Product Details page with anything HTML and JavaScript has to offer. Please keep in mind that the Back Office should not be publicly available, and that cross-site scripting is not possible from the Storefront, so security is maintained. Example: Back Office: Product Details Step Configuration Storefront: Product Details Step ## Cross-site framing Cross-site framing means that a web page can be embedded in a frame by another page. It is considered a security vulnerability as a cyber-criminal can exploit it in order to replicate the look and feel of a page, and in fact create a phishing site in which sensitive information can be retrieved from victims. Cross-site framing is enabled in uStore by design. It enables uStore customers to embed uStore in their website, for example, as a Facebook application. Cross-site framing is not high risk vulnerability and can be prevented by uStore customers in a number of ways, if necessary. ## Cookies Cookies are used by web applications in order to keep information on the client side, and in order to keep the state of the connection to the server (known as session). A cyber-criminal obtaining a cookie may take over a user’s session and exploit it to retrieve sensitive information. uStore cookies are HTTP-Only cookies. HTTP-Only cookies can only be accessed from the server side, so a cyber-criminal obtaining such a cookie will not be able to exploit it. ## Files upload uStore enables customers to upload their images, recipient lists and documents. Such file uploads are restricted to certain file types, so a customer cannot upload malicious files. However, files uploaded to the server may contain viruses which may be harmful, so an anti-virus software should be installed on the uStore server. ## Harden the server against ClickJacking attacks Clickjacking is a malicious technique of tricking web users into revealing confidential information or taking control of a user’s computer while clicking on seemingly innocuous web pages. A click-jacked page tricks a user into performing undesired actions by clicking on a concealed link. On a click-jacked page, the attackers show a set of dummy buttons, and then load another page over it in a transparent layer. The users think that they are clicking the visible buttons, while they are actually performing actions on the hidden page. The hidden page may be an authentic page, and therefore the attackers can trick users into performing actions which the users never intended to do and there is no way of tracing such actions later, as the user was genuinely authenticated on the other page. ## Microsoft IIS tilde directory enumeration It is possible to detect short names of files and directories which have an 8.3 file naming scheme equivalent in Windows by using some vectors in several versions of Microsoft IIS. For instance, it is possible to detect all short-names of ".aspx" files as they have 4 letters in their extensions. Exploiting this vulnerability may cause the leakage of files containing sensitive information such as credentials, configuration files, maintenance scripts and other data. To handle this vulnerability: - Add a registry key named **NtfsDisable8dot3NameCreation** to HKLM\SYSTEM\CurrentControlSet\Control\FileSystem. Set the value of the key to **1** to mitigate all 8.3 name conventions on the server. - Open IIS Manager and click the default website. - Click the **Request Filtering** option. - Click the **URL** tab. - In the **Actions** panel on the right, select **Deny Sequence**. - Add **~**. ## SSL weak ciphers A weak cipher is defined as an encryption/decryption algorithm that uses a key of insufficient length. Using an insufficient length for a key in an encryption/decryption algorithm opens up the possibility (or probability) that the encryption scheme could be broken. It is advisable to disable weak ciphers. Ciphers that can be disabled. TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA ### Additional information Learn: - Manage SSL/TLS protocols and cipher suites for AD FS - Setup Microsoft Windows or IIS for SSL Perfect Forward Secrecy and TLS 1.2 Execute: - This tool may help you with Disabling weak cyphers (use at own discretion!) Test: - Test your site's ciphers using the SSL server test - SSL server test (use to test your site's ciphers) ## Server banner disclosure The application was found to disclose server information about the server software in use. Information disclosure is a common and prevalent vulnerability in applications. The disclosure of sensitive information either directly or implicitly through application behavior, may aid an attacker with information gathering or profiling, and determining or establishing other vectors of attack against the application or host. ### Using a proxy server When using a proxy server you might still have “Server“ and “X-Powered-By“ headers. In such a case, you can configure IIS on the proxy machine to remove them. - On IIS, click the root node of the proxy server. - Click the configuration editor icon. - Search under the Sections field for: system.webServer > httpProtocol- - Click the 3 dots on the value of key: customHeaders - Window opens. Search for the value X-powere-by, click it and click Delete. - Click Apply. - Search under the Sections field for: system.webServer > security > requestFiltering - Search for key “removeServerHeader” and set it to True. - Click Apply. ## Misconfigured CORS The HTML5 cross-origin resource sharing policy controls whether and how content running on other domains can perform two-way interaction with the domain which publishes the policy. The policy is fine-grained and can apply access controls per-request based on the URL and other features of the request. If another domain is allowed by the policy, then that domain can potentially attack users of the application. If a user is logged in to the application, and visits a domain allowed by the policy, then any malicious content running on that domain can potentially retrieve content from the application, and sometimes carry out actions within the security context of the logged in user. Even if an allowed domain is not overtly malicious in itself, security vulnerabilities within that domain could potentially be leveraged by a third-party attacker to exploit the trust relationship and attack the application which allows access. ## Missing Security Headers (HTTP) HTTP headers are used by the client and web server to share information as part of the HTTP protocol. When a URL entered in the address bar of the browser or clicked on any link, the web browser sends a HTTP request containing client headers while the HTTP response contains server headers. Some HTTP headers which are used against common vulnerabilities like Cross-site Scripting, Session Hijacking, Frameable Response (Clickjacking) are called security headers. Missing security headers may increase the risk of exploitation of those vulnerabilities, if they exist in your application. Apply these steps on the uStore application server and/or proxy server: - Open IIS. - Choose HTTP Response Headers. - Add the name and value for requested headers – see table below. | Name | Value | Comments | | --- | --- | --- | | Strict-Transport-Security | max-age=31536000 ; includeSubDomains; preload | | | X-Content-Type-Options | nosniff | Apply only to the proxy server (installed by default on the uStore application server). | | Feature-Policy | camera 'none'; speaker 'none' | | | X-XSS-Protection | 1;mode=block | Apply only to the proxy server (installed by default on the uStore application server). | ## Antivirus Protection It is highly recommended that on-premise customers install and enable antivirus scanning on their machine to enhance security.     Created by: Ben Pelkinson, last updated by Mohammad Mansour: December, 2024 #### Adding Charts to uStore Reports # Adding Charts to uStore Reports **Summary**: This article describes how to add charts to uStore reports. **Audience**: XMPie customers wishing to add charts to uStore reports. **Prerequisites**: Knowledge of XMPie products and Microsoft Excel is required to create charts for uStore reports, but no additional knowledge is required for this walkthrough. ## Overview Sometimes it is easier to get an overview of a report by visualizing the data with a chart. In this walkthrough, we will add a chart to the Order Item Listing uStore report. ## Advanced Charting uStore does not use Excel to display reports within the uStore Back Office, therefore the charts will not appear in the **Reports** tab in uStore. If you wish to add charts to the **Reports** tab in the uStore Back Office, you can contact XMPie Professional Services. XMPie Professional Services is a contract service offered to our customers that require custom integrations or solutions. ## Creating a Chart In this walkthrough, you will create a chart to visually display some of the details in the Order Item Listing Report. The details we will display are the Product Names and the Total Order Price. By using this chart, we will be able to see at a glance which uStore products are raising the most revenue in a particular store. To create a chart: - To start the chart creation process, log into the uStore Back Office and go to the **Reports** tab: - Select the **Order Item Listing** report; choose a store and a date range: - Download the report and open it in Microsoft Excel: - Within Excel, insert a PivotTable, choose the data you want to appear in the chart and add it to a New Worksheet. We want to see which products are generating the most revenue in our store, so we choose a data range that includes the Product Name and the Total Order Price: - Drag the Total Order Price into the Sum Values pane in the PivotTable window: - Select Sum of Total Order Price and in the Show values as field select % of total: - Drag the Product Name field into the Row Labels pane in the PivotTable window: - Select the data and insert a chart. In this walkthrough, I chose a 3D pie chart: - Rename the chart title, remove unused sheets and save the chart: - Go to the **Report** table in the uStore Back Office by clicking on **Presets > System Setup > Report** and take note of the **ReportID** for the report you are creating the chart for. In this walkthrough, the **ReportID** is 16: - Save the newly created Excel file with the ID of the report. For example, save it as 16.xlsx: - Browse your network to your XMPie server and copy the Excel file into the uStoreShared\ReportTemplates\ folder. ## Accessing the Modified Report You can now test the modified report by accessing it via the uStore Admin “Reports” page. The modified report will be available via the “Report” drop down list under “Order Item Listing”. You will not see the chart in the report that is presented to you on the uStore Reports page, as uStore does not use Excel to present the tabulated data. Download the report and open it in Excel. The new chart is shown, and it is using the latest data:   Created by: Steve Lomax, last updated: July 2, 2014 #### Creating Custom uStore Reports # Creating Custom uStore Reports **Summary**: This article describes how to create a custom uStore report. **Audience**: XMPie customers wishing to create custom reports in uStore. **Prerequisites**: Knowledge of XMPie products and MS SQL queries is required to create custom reports for uStore, but no additional knowledge is required for this walkthrough. The sample SQL query in this document links to multiple tables within the uStore data structure. In order to modify or create reports tailored to your business, SQL knowledge is essential. Note that the data structure of the XMPie system may change with future upgrades, so some modification of custom reports may be necessary to ensure operability after upgrades. ## Overview In this walkthrough, we will create a custom report for uStore that will be available via the uStore Back Office Reports page. The sample report in this document incorporates the additional data needed to do a monthly Cost Center report. This report can be filtered by Store and Date Range, and then exported to Excel for further formatting and manipulation. ## Advanced Reports If you have an understanding of the uStore custom reports structure but still require additional help, either for more complex reports or some custom integration, you can contact XMPie Professional Services. XMPie Professional Services is a contract service offered to our customers that require custom integrations or solutions. ## SQL Query The first thing required for your custom report is the SQL query to retrieve the necessary data. In this example, we will be creating a report to return Billing Information relating to Cost Centres used within a specified Store and Date Range. When the uStore Admin user runs the report, they need to be able to choose the store and the date range that is of interest to them. To do this, we add three parameters to the query, @Store which will be used to select the store, @StartDate which will be used to enter the earliest date to include in the report, and @EndDate which will be used to enter the last date to include in the report. The query has been tested against the uStore Database and is ready to have the three parameters mentioned above added to the WHERE statement in order to retrieve the necessary records. SELECT CONVERT(char(11),o.[DateOrderCreated],113) AS "Order Date", CONVERT(char(5),o.[DateOrderCreated],108) AS "Time", CAST(u.[FirstName] + ' ' + u.[LastName] AS varchar(100)) AS "Name", CAST(o.[ClearingResult] AS XML).value('(/UserData//CostCenter/node())[1]', 'varchar(max)') AS "Cost Centre", o.[EncryptedOrderID] AS "Order ID", op.[TotalQuantity] AS "Total Pages", CONVERT(decimal(10,2),o.[BillAmount]) AS "Total Price" FROM [uStore].[dbo].[Orders] o LEFT OUTER JOIN [uStore].[dbo].[Province_Culture] bst ON (o.[Bill_State] = bst.[ProvinceID] AND bst.[CultureID] = [uStore].[dbo].fn_StoreSetupCulture(o.[StoreID])) INNER JOIN [uStore].[dbo].[Store] s ON (s.[StoreID]=o.[StoreID]) INNER JOIN [uStore].[dbo].[Store_Culture] sc on (s.[StoreID]=sc.[StoreID] and sc.[CultureID]=[uStore].[dbo].fn_StoreSetupCulture(o.[StoreID])) LEFT OUTER JOIN [uStore].[dbo].[Customer] c ON (o.[CustomerID] = c.[CustomerID]) INNER JOIN [uStore].[dbo].[Users] u ON (c.[UserID] = u.[UserID]) LEFT OUTER JOIN [uStore].[dbo].[Coupon] cpn ON (o.CouponID = cpn.CouponID) LEFT OUTER JOIN [uStore].[dbo].[CouponBatch] cpnb ON (cpn.CouponBatchID = cpnb.CouponBatchID) LEFT OUTER JOIN [uStore].[dbo].[ClearingConfig] cc ON (o.PaymentMethodId = cc.ClearingConfigId) LEFT OUTER JOIN [uStore].[dbo].[OrderProduct] op ON (o.OrderID = op.OrderID) WHERE o.[IsCart]=0 AND op.[IsDraft]=0 AND o.[IsSaveForLater]=0 AND o.[StoreID]=1 AND o.[DateOrderCreated]>=’01/01/2012’ AND o.[DateOrderCreated]=@StartDate AND o.[DateOrderCreated] System Setup > Report**. - Fill in the following information: - **Name**: Cost Center Report - **Report Type**: SQL Query - **ParentReportID**: No Selection (Null) - **DisplayOrder**: 101 - **Status**: Active - Click the **Save**button: - When you are returned to the **Report** list, take note of the **ReportID** for the report you have just created, we will need that number later. In this walkthrough the ReportID is 5001: - Add the SQL query to the language localizations for the new report. In this example, the uStore Admin only has “US English” localization enabled. If you have additional languages enabled in your uStore Admin, you must add the reports for each localization. If the SQL query is not added to the language localization you use in uStore Admin, the report will not appear in that language. The following steps should be repeated for each language localization used in uStore Admin. - Click the **Add New** button on the **System Setup – Report Localization** page: - Fill in the following information: **ReportID:** 5001 - **Culture:** en-US - **Display Name:** Cost Centre Report - **Description:** Cost Centre Billing Report - **ReportCommand:** PASTE THE SQL QUERY HERE - Click the **Save** button: ## Adding the Report Parameters We now need to define the Report Parameters we added to the WHERE statement of the SQL query (@StoreID, @StartDate, @EndDate). These report parameters will allow the logged in Admin user to select the Store and the Date range to run the report for so we retrieve only the information we require. We are going to create a Drop Down List that will be populated with only the Stores that the logged in Admin user has access to, as well as two text fields to enter a Start Date and End Date for the report. The Start Date and End Date need to be entered using the US date format i.e. the 1st of May 2014 will be entered thus: 05/01/2014. To add report parameters: - Go to **Presets -> System Setup -> Report Parameter**. - Click the **Add New** button: - Enter the following information for the new StoreID Report Parameter. The ReportID number is the number we took note of in the first step. - ReportID: 5001 - Name: StoreID - IsUserEditable: True - DisplayOrder: 1 - Status: Active - IsViewable: True - ControlName: ParamListBox - ValueLookUpQuery: SELECT 'Value' = S.StoreID, 'Name'=SC.Name, 'Selected' = 0 from Store S join Store_Culture SC ON (S.StoreID=SC.StoreID and SC.CultureID=dbo.fn_StoreSetupCulture(S.StoreID)) JOIN fn_UserStores(@ActiveUserId, 12) US ON (S.StoreID = US.StoreId) WHERE S.StatusID <> 2 ORDER BY SC.Name ASC - Click the **Save** button: - Go back to the **Report Parameter** list, and click the **Edit** icon (the pencil) for your newly created “StoreID” parameter. - On the **Report Parameter Edit** screen, note the **ReportParameterID** number, as you will need it shortly. In this walkthrough the ReportParameterID is 10005: - You will now see a new button labelled **Edit Localized Text**. Click the **Edit Localization Text** button. - On the **Report Parameter Localization list** page, click the **Add New** button to add a new **Report Parameter Localization** entry: - Enter the **ReportParameterID** number that you noted earlier. In this walkthrough the ReportParameterID number is 10005. - Select the **Culture** from the drop-down list. In case the en-US culture has been renamed, it will be the first culture in the list. - Enter your **Display Name**. This is the human readable label that will be shown to the Admin user in the uStore Admin Report selection page. - Click the **Save** button: - To add other localization parameter labels, click the **Add New** button on the **Report Parameter Localization** page (Figure 8) and repeat the above steps. You would then enter the **DisplayName** written in the appropriate **Culture** language. - Go back to the **Report Parameter** list (Figure 5) and we will now add the remaining “StartDate” and “EndDate” parameters. Because the steps are the same as the “StoreID” parameter, simply use the parameters below: ReportID: 5001 - Name: StartDate - IsUserEditable: True - DisplayOrder: 2 - Status: Active - IsViewable: True - ControlName: ParamTextBox - ValueLookUpQuery: LEAVE BLANK - Do not add anything in the form field. - ReportID: 5001 - Name: EndDate - IsUserEditable: True - DisplayOrder: 3 - Status: Active - IsViewable: True - ControlName: ParamTextBox - ValueLookUpQuery: LEAVE BLANK - Do not add anything in the form field. Once completed, your Report Parameter list page should show the following parameters in the last page. Notice that the ReportID’s are all referencing ReportID 5001: ## Accessing the New Cost Center Report You can now test the custom report by accessing it via the uStore Back Office **Reports** page. The new report will be available via the **Report** drop-down list under **Order Details**. When you choose the **Cost Centre** report, the 3 parameters (StoreID, StartDate and EndDate) will show with the label localization that you entered earlier. The Start Date and End Date need to be entered using the US date format i.e. the 1st of May 2014 will be entered thus: 05/01/2014.   Created by: Steve Lomax, last updated: July 2, 2014 #### StoreFlow Hosted by XMPie # StoreFlow Hosted by XMPie **Summary**: This article provides information on the StoreFlow product hosted on Amazon Web Service environment. ## Overview XMPie StoreFlow is a turn-key solution for print service providers managing Web-to-print sites and marketing portals. StoreFlow merges XMPie’s powerful Web-to-print capabilities with flexible pre-press automation to provide a complete, out-of-the-box solution with an end-to-end workflow for receiving, processing and producing orders received online.   StoreFlow (hosted) is stored on the web and is practically based on Amazon Web Services (AWS) architecture and technology. Amazon Web Services (AWS) is a cloud computing platform that provides a suite of infrastructure services. Some of its services are currently used by XMPie StoreFlow (hosted) solution. The usage of AWS cloud provides a highly reliable and secured infrastructure for deploying StoreFlow as a web-based application. ## Infrastructure Amazon Web Services (AWS) provide a reliable, secure, and highly performing infrastructure for the most demanding web applications, an infrastructure that matches XMPie StoreFlow solution. It also delivers a scalable cloud computing platform with high availability and dependability. AWS’s data centers are state of the art, utilizing innovative architectural and engineering approaches. ## StoreFlow Cloud Availability XMPie shall use all reasonable commercial efforts to achieve the target infrastructure availability goal of 99.95% uptime twenty-four hours per day, seven (7) days per week (“Service Commitment”) during the subscription term, except during times of system maintenance, as set forth in the table below. ### System Maintenance System Maintenance refers to any systems software or XMPie applications change or update that has the potential to result in an impact or reduction to the resiliency or functionality of the XMPie service. System Maintenance types: - **Planned Maintenance:** Planned maintenance involves any activity where it is anticipated to have interruption to the operational functioning of the XMPie services during US business hours. XMPie will provide subscribers with at least one (1) week posted notification and e-mail notice prior to conducting any planned maintenance with information on the changes and expected downtime, unless the maintenance is performed outside of US business hours (for example, on Sunday). - **Emergency Maintenance:** Emergency maintenance involves any activity where it may or may not be possible to anticipate an interruption to the operational functioning of the XMPie services during US business hours. XMPie will use all reasonable efforts to provide e-mail notification at least twenty-four (24)hours in advance of any Emergency Maintenance, unless the maintenance is performed outside of US business hours (for example, on Sunday). Provided the client purchased the Fault Tolerance offering from XMPie, for services or systems provided to the client, the supplier will ensure the resumption of operations affected by a disruption within 48 hours (Recovery Time Objective). The supplier will back up the service or systems related data on a daily basis (RPO). ## Security Measures XMPie maintains a risk-based assessment security program. The framework for XMPie's security program includes administrative, technical, and physical safeguards reasonably designed to protect the confidentiality, integrity, and availability of Customer Data.   XMPie's security framework covers: Policies and Procedures, Asset Management, Access Management, Cryptography, Physical Security, Operations Security, Communications Security, Business Continuity Security, People Security, Product Security, Cloud and Network Infrastructure Security, Security Compliance, Third-Party Security, Vulnerability Management, as well as Security Monitoring and Incident Response. Security is represented at the highest levels of the company, with XMPie's Vice President/General Manager meeting with executive management regularly to discuss issues and coordinate security initiatives. Information security policies and standards are reviewed and approved by Xerox management at least annually and are made available to all XMPie employees for their reference. - Tenant Isolation – Each StoreFlow customer is logically isolated from other customers. Depending on the service purchased, XMPie may achieve logical isolation by using Amazon Virtual Private Cloud (Amazon VPC). AWS has highly scalable, secure, and reliable infrastructure hosting. **Information about AWS compliance is available here. - The physical security for StoreFlow is handled by the service provider (AWS). AWS has very rigorous security controls protecting its data centers. More details about the AWS data center's physical security are here. - StoreFlow solution supports SSL as a standard security for establishing encrypted connection between a web server and a client browser. - Security Group – Firewall - Amazon EC2 provides a complete firewall solution; every Amazon EC2 instance (virtual machine) is protected by security groups. Security groups provide firewall protection for the running instances. The traffic can be restricted by protocol, by service port, as well as by source IP address. - XMPie utilizes Crowdstrike Horizon – a Cloud Posture Management (CSPM) system. Crowdstrike Horizon has the following capabilities: - Provides discovery and visibility into cloud infrastructure and resources. - Proactively detects threats across the application development lifecycle. - Misconfiguration management and remediation - Eliminates security risks and accelerates the delivery process. - DevSecOps integration - Employs cloud-native, agentless posture management to reduce overhead and eliminate friction and complexity. - Continuous compliance monitoring: Assesses the security of cloud accounts and eliminates compliance violations. - For more information see Falcon Horizon Cloud Security Posture Management. - In addition, CrowdStrike Falcon (EDR) – a lightweight-agent AI-driven endpoint protection platform - offers real-time protection and visibility across the enterprise, preventing attacks on endpoints on or off the network. CrowdStrike Flacon (EDR) provides the following capabilities: - Endpoint Protection: CS Falcon offers real-time protection for endpoints, such as workstations, servers, and laptops. - Next-Generation Antivirus (NGAV). - Endpoint Detection and Response (EDR). - Managed Threat Hunting: CrowdStrike's threat hunting services offer proactive detection and response capabilities. - Cloud-Native Architecture. - For more information see Endpoint Detection And Response (EDR). - XMPie uses CIS Microsoft Windows Server Level 1 Hardened Image - a preconfigured image built by the Center for Internet Security (CIS) for use on Amazon Elastic Compute Cloud (Amazon EC2). It is built to offer an image secured to industry-recognized security guidance running on Amazon EC2. ## Security by Design The XMPie Software Development Lifecycle (SDL) process is the method by which XMPie creates secure products and defines the activities that the product teams must perform at different stages of development (requirements, design, implementation, and deployment). XMPie engineers perform numerous security activities for the Services including: - Internal security reviews before products are launched - Periodic penetration tests performed by independent security teams - Architecture reviews - Secure Software Development Life Cycle (Secure SDLC) is a software engineering culture to unify software development, deployment, security, and operations: - Static Application Security Testing (SAST) - Analyzes source code to identify vulnerabilities in applications before the applications are compiled or deployed. - Dynamic Application Security Testing (DAST) - Identifies vulnerabilities and applications in (web) applications while they are running. - Software Composition Analysis (SCA) - set of tools and practices that enables identification and management of third-party and open-source components in software applications that helps identify and mitigate security vulnerabilities in these components. SCA also uncovers licensing issues of the components. ## XMPie Architecture Depending on the service offering you choose, XMPie's flexible architecture can be tailored to meet your high availability requirements. Please contact our team to learn more about how we can customize the deployment to suit your needs. ### Standard Configuration ### Fault Tolerance Configuration ## Vulnerability Management XMPie maintains controls and policies to mitigate the risk from security vulnerabilities in a measurable time frame that balances risk and the business/operational requirements.   For the XMPie application software, critical software patches are evaluated, tested and applied proactively. For high-risk patches, XMPie will notify customers prior to the application of a patch. ## Penetration Testing XMPie performs application-level penetration tests for major releases or at least once a year. These tests use a combination of manual and automated techniques that complement each other to comprehensively evaluate the security posture of the application against latest threats as well as best practices like OWASP TOP 10 and SANS Top 25. Results of penetration tests are prioritized, triaged and remediated promptly by XMPie’s security team. ## Backup and Recovery StoreFlow environment is fully backed-up by CPM (Cloud Protection Manager by N2W Software). The CPM is an enterprise-class backup and recovery solution for Amazon EC2 environment. The backup policy routine consists of daily snapshots. The following are the data backup and retention practices: - Daily system snapshots are performed - Snapshot data is retained for 14 days (14 generations) - Retention periods can be extended upon customer request ## Operational Monitoring Licensee acknowledges that XMPie may request reasonable information from the licensee for the purpose of facilitating the use of StoreFlow cloud under the hosting service, and that certain applications may be used to retrieve information about StoreFlow cloud 's usage, to maintain compliance with the terms applicable to the use of the hosting service. XMPie uses Amazon CloudWatch - a monitoring and management service which enables application and infrastructure monitoring.  Amazon CloudWatch provides the following capabilities: - Enables to collect and store logs from resources, applications, and services in near real time. - Cross-account observability across multiple AWS accounts which helps monitor and troubleshoot applications that span multiple accounts within a region. - Alarm and automate actions. - For more information see Amazon CloudWatch features. In addition, depending on the service purchased, XMPie may use Datadog observability service, which enables real-time monitoring and log management. Datadog provides the following capabilities: - Determines performance metrics as well as event monitoring for infrastructure and cloud services. - Infrastructure monitoring - provides our team with a single view of our infrastructure (including servers, apps, metrics and other services). - Application Performance Monitoring (APM) - this includes Processes, Windows Services, XMPie Services, AWS integrations, monitors, synthetic tests, Health checks and more. - Alerts based on critical issues. - Automatically collects and analyzes logs, latency and error rate. - For more information see Datadog Solution Brief. XMPie can help with your NOC needs. Depending on the services purchased, XMPie can establish a Network Operation Center (NOC) for 24/7 monitoring and rapid action management. ## Service Exclusions and Limitations Unless Managed Services are involved, the following are limitations of the hosted solution: - No file system access - for security and service experience reasons, XMPie does not support direct access to the file system. This means no bulk uploads of assets, documents, or hot folder import for uProduce and Free Flow Core (FFC), as well as no hot folder output from uProduce or Free Flow Core.   - FTP output is possible but requires FTP server on the client side. There are many caveats in regard to file naming. It requires scripting license in Free Flow Core (FFC). The only automation out of FFC is to supported in Xerox printers using (depreciated by Xerox) FFC Cloud Print tool installed locally in client location. Only FFC automation is via uStore.   - No operating system access - for security and service experience reasons, XMPie does not support direct access to the operating system. Meaning, no Remote Desktop Connection (RDC) capabilities provided to the client.   - No direct SQL server database access - this means no automation or scripting capabilities, even when upgrading to full SQL license. There is a Professional Service plugin that can provide some access to update a database via flat file. This requires user intervention and cannot be scheduled or automated.   - Customers are solely responsible for ensuring the data they host on the site does not trigger malicious content flags. This responsibility is continuous and ongoing, extending beyond the initial configuration of a store/domain. Should their store/domain become flagged as malicious weeks or months after setup, the onus remains on the customer to actively monitor their data and take appropriate remedial action. If a customer's domain triggers a malicious content flag, XMPie may need to take temporary measures to mitigate the risk, potentially including taking the store(s) offline. This action would be taken solely to protect the platform and its users and would be communicated to the customer beforehand. ## StoreFlow Private Cloud Resource Provisions (AWS Instance) StoreFlow environment is currently offered in two configurations in US-East (N.Virginia) and EU-West (Ireland) AWS regions: - StoreFlow - StoreFlow Pro StoreFlow runs on top of M5 family instance types from AWS. This family includes the M5 instance types and provides a balance of compute, memory and network resources. The main features for M5 instances are: - Up to 3.1 GHz Intel Xeon Platinum 8000 series processor (Skylake-SP or Cascade Lake) with new Intel Advanced Vector Extension (AVX-512) instruction set. - Provisioned IOPS (SSD) volumes, EBS-optimized for fast I/O performance. - Support for Enhanced Networking. - Balance of compute, memory, and network resources. The table below represents the server’s specifications for each of the StoreFlow packages. These are the minimum requirements with the corresponding Amazon EC2 instance types. | Package | AWS Instance | vCPU | RAM (GiB) | | --- | --- | --- | --- | | StoreFlow Backend Server | M5.xlarge | 4 | 16 | | StoreFlow Pro Backend Server | M5.2xlarge | 8 | 32 | | StoreFlow Front End Server | T3.medium | 2 | 4 | | StoreFlow Pro Front End Server | T3.large | 2 | 8 | Notes: ** - XMPie  will alert the customer ahead of time when adding storage is needed. At the time of adding additional storage, XMPie will bill for the incremental additional storage. - Subject to the service purchased, XMPie will use the appropriate SQL server that fits the system/service requirements. - The information above can vary, and it is true as of the last review date of this document.   Last reviewed: June 2025 #### Deploying XMPie Server Products on Amazon Web Services # Deploying XMPie Server Products on Amazon Web Services **Summary**: This article lists the main resource requirements and cost considerations for running XMPie PersonalEffect Server products on Amazon Web Services infrastructure. **Audience**: Customers who wish to host their servers on Amazon EC2. ## Overview This article lists the main resource requirements and cost considerations for running XMPie PersonalEffect Server products on Amazon Web Services infrastructure. Amazon Web Services (AWS) is a cloud computing platform that provides a suite of infrastructure services. The usage of AWS cloud provides a highly reliable and secured infrastructure for deploying XMPie Server products. ## Infrastructure Amazon Web Services provide a reliable, secure, and highly-performing infrastructure for the most demanding applications, an infrastructure that matches XMPie server products solution. AWS can also deliver a scalable cloud computing platform with high availability and dependability. The diagram below represents a dedicated Virtual Private Cloud (VPC) within Amazon Web Services (AWS) Cloud with Public and Private subnets. Usually, only the Public subnet is exposed to the web while the Private subnet remains secured. We recommend this scenario if you want to run a public-facing web application, while maintaining back-end servers that aren't publicly accessible. A common example is XMPie StoreFlow, with a web server in the Public subnet and the Application/DB server in the Private subnet. The following is a sample configuration of the XMPie StoreFlow deployed on AWS within a VPC with a Public and Private Subnets: The best security practice scenario is to run a public-facing web application server, while maintaining back-end servers that aren't publicly accessible. ### Security XMPie PersonalEffect deployed on AWS is designed to meet security best practices, such as: - **Environment Isolation:** This is achieved by using Amazon Virtual Private Cloud (Amazon VPC). Amazon VPC provisions a logically isolated section of the Amazon Web Services (AWS) cloud. - **Firewall:** Amazon Elastic Compute Cloud (EC2) provides a complete firewall solution; every Amazon EC2 instance (virtual machine) is protected by security groups. Security groups provide firewall protection for the running instances. The traffic can be restricted by protocol, by service port, as well as by source IP address. - **Secure Socket Layer (SSL):** A protocol for data encryption over the Internet is supported. - The physical security is handled by the service provider (AWS). ## Minimal System Requirements XMPie PersonalEffect can be deployed in any of the following configurations: - **XMPie Turn-Key Systems**: A basic XMPie Turn-Key system (excluding Print) includes at least two servers: a single Production Server and a front-end web server. - **XMPie Enterprise Platforms:** The XMPie Enterprise Platforms (excluding Print) includes at least three servers: Director, Extension and a front-end web server. Note that any PersonalEffect System can be deployed on AWS Infrastructure without a front-end Web Server. This configuration is NOT recommended by XMPie since it directly exposes the Application/DB Server to the web. As a minimum requirement, XMPie PersonalEffect runs on top of M5 family instance types from AWS Elastic Compute Cloud (EC2). This family provides a balance of compute, memory and network resources. The main Features for M5 instances are: - Up to 3.1 GHz Intel Xeon Scalable processor (Skylake 8175M or Cascade Lake 8259CL) with new Intel Advanced Vector Extension (AVX-512) instruction set - Support for Enhanced Networking - Balance of compute, memory, and network resources The table below represents the AWS instance’s specifications for each of the PersonalEffect packages (both for Turn-key and Platforms systems). These are the minimum requirements with the corresponding Amazon EC2 instance types. | XMPie Turn‐key Systems | AWS Instance Type | vCPU | RAM (GiB) | | --- | --- | --- | --- | | PersonalEffect Print | M5.large | 2 | 8 | | PersonalEffect Print Pro | M5.xlarge | 4 | 16 | | PersonalEffect StoreFlow | M5.large | 2 | 8 | | PersonalEffect StoreFlow Pro | M5.xlarge | 4 | 16 | | PersonalEffect TransMedia | M5.large | 2 | 8 | | PersonalEffect TransMedia Pro | M5.xlarge | 4 | 16 | | | | | | | XMPie Platforms | AWS Instance Type | vCPU | RAM (GiB) | | Enterprise Print - Director | M5.large | 2 | 8 | | Enterprise Print - Extension | M5.large | 2 | 8 | | Enterprise Cross Media - Director | M5.large | 2 | 8 | | Enterprise Cross Media - Extension | M5.xlarge | 4 | 16 | | | | | | | XMPie add-on | AWS Instance Type | vCPU | RAM (GiB) | | Front-end Web Server | T3.medium | 2 | 4 | | uProduce 8-Way MI | M5.2xlarge | 8 | 32 | * The information above can vary and it is true as of November 2022. ## Amazon Web Services Cost Details XMPie PersonalEffect deployed on AWS infrastructure includes a few elements (AWS services) to be considered when calculating the total monthly/yearly cost. Amazon Elastic Compute Cloud (EC2) allows you to pay only for capacity that you actually use. In order to fully understand the total cost of any XMPie PersonalEffect package deployed on AWS infrastructure, you should be familiar with all AWS elements and services presented in the following sections. ### Amazon EC2 Reserved Instances Amazon EC2 Reserved Instances (“RIs”) allow you to make a low, one-time payment to reserve instance capacity and further reduce the on-going Amazon EC2 costs. Reserved Instances provide the ability to maximize your level of savings by purchasing the Reserved Instance that meets your business’s needs. There are various Reserved Instance types. Instance types comprise of various combinations of CPU, memory, storage and networking capacity. For example, m5.large. RIs enable you to balance the amount you pay upfront with your effective hourly price. You can choose between three payment options: All Upfront, Partial Upfront and No Upfront. In this document we only refer to the All Upfront payment option. All Upfront RIs offer the utmost saving of any Reserved Instance type. AWS On-Demand Instances let you pay for compute capacity by the hour with no long-term commitments or upfront payments. Amazon offers significant price breaks for using reserved instances (RI’s) over on-demand instances. ### Amazon EC2 Amazon Elastic Compute Cloud (Amazon EC2) is a web service that provides resizable compute capacity in the cloud. Amazon EC2’s simple web service interface allows you to obtain and configure capacity with minimal friction. It provides you with complete control of your computing resources and lets you run on Amazon’s proven computing environment. Amazon EC2 changes the economics of computing by allowing you to pay only for capacity that you actually use. For details, see http://aws.amazon.com/ec2/pricing/ ### EBS Amazon Elastic Block Store (Amazon EBS) provides persistent block-level storage volumes for use with Amazon EC2 instances in the AWS Cloud.  Each Amazon EBS volume is automatically replicated within its Availability Zone to protect you from component failure, offering high availability and durability. Amazon EBS volumes offer the consistent and low-latency performance needed to run your workloads. With Amazon EBS, you can scale your usage up or down within minutes – all while paying a low price for only what you provision. For details, see http://aws.amazon.com/ebs/pricing/ To summarize, with Amazon EBS, you only pay for what you use. ### Elastic IP Address You can have one Elastic IP (EIP) address associated with a running instance at no charge. If you associate additional EIPs with that instance, you will be charged for each additional EIP associated with that instance per hour on a pro rata basis. Additional EIPs are only available in Amazon VPC. To ensure efficient use of Elastic IP addresses, Amazon imposes a small hourly charge when these IP addresses are not associated with a running instance or when they are associated with a stopped instance or unattached network interface. For details, see http://aws.amazon.com/ec2/pricing/ ### Data Transfer Data Transfer pricing is based on data transferred "in" to and "out" of Amazon EC2. Pricing information can be found at https://aws.amazon.com/ec2/pricing/on-demand/ ### Amazon Simple Storage Service (S3) Amazon S3 can be used alone or together with other AWS services such as Amazon Elastic Compute Cloud (Amazon EC2). Amazon S3 provides cost-effective object storage for a wide variety of use cases including cloud applications, backup and archiving and disaster recovery. For details, see http://aws.amazon.com/s3/ Amazon S3 can be used for backup AWS EC2 running instances by creating snapshots into S3. ### AWS Simple Monthly Calculator You can estimate your costs by using AWS Simple Monthly Calculator. The calculator is a JavaScript-based tool that allows you to calculate your monthly cost for using Amazon EC2, Amazon S3 and more. For details, see http://calculator.s3.amazonaws.com/index.html ## Durability and Availability XMPie PersonalEffect systems deployed on AWS infrastructure are mainly based on top of AWS Elastic Compute Cloud (EC2) service. The service runs within Amazon’s proven network infrastructure and data centers. Amazon Web Services offer a highly reliable environment by using the Elastic Compute Cloud (EC2). Amazon EC2 is a web service that provides resizable compute capacity in the cloud. The Amazon EC2 Service Level Agreement commitment is 99.95% availability for each Amazon EC2 Region.   Created by: Arik Michaelovich, updated by Mohammad Mansour on July, 2022 #### Running XMPie Server Products Connected to SQL Server with Transparent Data Encryption (TDE) # Running XMPie Server Products Connected to SQL Server with Transparent Data Encryption (TDE) **Summary**: This article describes how to encrypt sensitive data in the database and protect the keys that are used to encrypt the data with a certificate using Transparent Data Encryption (TDE). TDE performs real-time I/O encryption and decryption of the data and log files. **Audience**: XMPie customers and database administrators who wish to run XMPie Server products connected to an encrypted SQL Database. ## Overview Transparent Data Encryption (TDE) encrypts SQL Server Database data files, known as encrypting data at rest. You can take several precautions to help secure the database, such as designing a secure system encrypting confidential assets and building a firewall around the database servers. However, in a scenario where the physical media (such as drives or backup tapes) are stolen, a malicious party can simply restore or attach the database and browse the data. One solution is to encrypt the sensitive data in the database and protect the keys that are used to encrypt the data with a certificate. This prevents anyone without the keys from using the data. TDE performs real-time I/O encryption and decryption of the data and log files. The encryption uses a database encryption key (DEK), which is stored in the database boot record for availability during recovery. The DEK is a symmetric key secured by using a certificate stored in the master database of the server, or an asymmetric key protected by an EKM module. TDE protects data "at rest", meaning the data and log files. It provides the ability to comply with many laws, regulations, and guidelines established in various industries. This enables software developers to encrypt data by using AES and 3DES encryption algorithms without changing existing applications. ## About TDE TDE enables you to encrypt an entire database. TDE is completely transparent to the application and requires no implementation of code changes. TDE requires SQL Server Enterprise edition. It is not available for SQL Server Standard edition. TDE is also available for SQL Server Datacenter edition. Encryption of the database file is performed at the page level. The pages in an ecnrypted database are ecnrypted before they are written to the disk and decrypted when read into the memory. TDE does not increase the size of the encrypted database. ### Information Applicable to the SQL Database When using TDE with SQL Database, the server-level certificate stored in the master database is automatically created for you by the  SQL Database. ### Information Applicable to the SQL Server When enabling TDE, you should immediately back up the certificate and the private key associated with the certificate. If the certificate ever becomes unavailable or if you must restore or attach the database on another server, you must have backups of both the certificate and the private key, otherwise you will not be able to open the database. The encrypting certificate should be retained even if TDE is no longer enabled on the database. Even though the database is not encrypted, parts of the transaction log may still remain protected, and the certificate may be needed for some operations until the full backup of the database is performed. A certificate that has exceeded its expiration date can still be used to encrypt and decrypt data with TDE. ### Encryption Hierarchy The following illustration shows the architecture of TDE encryption. Only the database-level items (the database encryption key and ALTER DATABASE portions) are user-configurable when using TDE on the SQL Database.   **Important:** TDE does not provide encryption across communication channels. For information on how to encrypt data across communication channels, see Enable Encrypted Connections to the Database Engine (SQL Server Configuration Manager). In addition, TDE protects the data at rest, but an authorized user such as a security administrator or a database administrator can access the data in a TDE-encrypted database. To prevent an SA or DBA from accessing selected parts of the data, you need to use application-level encryption. This is beyond of the scope of this document. ## Using TDE To use TDE, follow these steps using Transact-SQL. **Note:** From this point forward, the instructions assume that you have completed the XMPie Server products installation process. To access SQL Server Management Studio: - On the taskbar, click **Start**, point to **All Programs**, point to **Microsoft SQL Serve**r, and then click **SQL Server Management Studio**. The **Connect to Server** window is displayed. - Enter/select the SQL Server credentials and click **Connect** to login to the SQL Server Management Studio. - In the **Object Explorer** on the left pane, connect to an instance of the Database Engine. - On the Standard bar, click **New Query**. - Copy and paste the following example into the query window and then click **Execute**. The following example illustrates encrypting the XMPDB2 database using a certificate installed on the server named MyServerCert. -- Create a database master key and a certificate in the master database. USE master; GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = '*rt@87(RT&Yask6'; GO CREATE CERTIFICATE MyServerCert WITH SUBJECT = 'Certificate to protect TDE key' GO -- Create a backup of the server certificate in the master database. -- The following code stores the backup of the certificate and the private key file -- (C:\Program Files\Microsoft SQL Server\Backup\). BACKUP CERTIFICATE MyServerCert TO FILE = 'MyServerCert' WITH PRIVATE KEY ( FILE = 'SQLPrivateKeyFile', ENCRYPTION BY PASSWORD = '*rt@87(RT&Yask6' ); GO   -- Switch to the new database you would like to encrypt. -- Create a database encryption key, that is protected by the server certificate in the master database. -- Alter the new database to encrypt the database using TDE. USE XMPDB2; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; GO ALTER DATABASE XMPDB2 SET ENCRYPTION ON; GO **Note:** Make sure to repeat the above Transact-SQL script in order to encrypt the remaining XMPie databases. The following example illustrates encrypting the DBname-to-Encrypt database using a certificate installed on the server named MyServerCert. USE DBname-to-Encrypt; GO CREATE DATABASE ENCRYPTION KEY WITH ALGORITHM = AES_128 ENCRYPTION BY SERVER CERTIFICATE MyServerCert; GO ALTER DATABASE DBname-to-Encrypt SET ENCRYPTION ON; GO **Caution**: Backup files of databases that have TDE enabled are also encrypted by using the database encryption key. As a result, when you restore these backups, the certificate protecting the database encryption key must be available. This means that in addition to backing up the database, you have to make sure that you maintain backups of the server certificates to prevent data loss. Data loss will result if the certificate is no longer available. Most of the information in this article has been taken from Microsoft's MSDN library. For further reading regarding Transparent Data Encryption (TDE), refer to: https://msdn.microsoft.com/en-us/library/bb934049.aspx.   Created by: Arik Michaelovich, last updated: November 2, 2015 #### Using JDF to Pass Media and Finishing Options to Printers with uStore and FreeFlow Core # Using JDF to Pass Media and Finishing Options to Printers with uStore and FreeFlow Core **Summary**: This article describes how to configure uStore's JDF nodes to pass media and finishing attributes to Xerox printers when using FreeFlow Core. **Audience**: uStore administrator who wishes to set up custom JDF nodes and parameters. **Prerequisites**: Knowledge of uStore Back Office, your Xerox printer/RIP setup, and a basic understanding of JDF is required. ## Overview Web-to-Print is all about saving time and automating your print workflow so that smaller jobs can be handled more efficiently and, therefore, more profitably. StoreFlow provides a powerful combination of software products for eCommerce (uStore) and prepress workflow (FreeFlow Core). It is possible to automate the handling of orders so that they require minimal or even no manual handling. In doing this, one of the things which may need to be done is to set the media or stock type and finishing options needed to print the product. This article looks at creating custom JDF nodes and attributes to pass the required media type from uStore through FreeFlow Core to the printer/RIP. ## Settings on the Xerox Print Server - Open the Stock library and create a new entry for the required media type. See the example below - **New Stock Setup** on Xerox Versant 2100). - Note down the **Name** of the stock to use later in uStore. ## Settings in FreeFlow Core - Create a new workflow in FreeFlow Core, or edit an existing workflow. - Add a Print node to the workflow to send the print output to your Xerox Printer: ## Settings in uStore Back Office ### Creating a JDF Node Set - Log in to uStore Back Office, and click the **Presets** button. - Click **System Setup** and go to the **JDF Node Set** table. - Click the **Add New** button. - Enter the display name for the new stock type. - Click **Save**. - Click the **Back to List** button to return to the **System Setup** screen. ### Creating a JDF Node - Click the JDF Node link. - Click the **Add new** button. - Select the JDF Node Set you created in the previous step. - Enter the **Node XML**: @ProductID= - Enter the **Node Target Xpath**: //ns: - Click **Save**. - Click the **Back to List** button to return to the **System Setup** screen. ### Creating a Product Property You can now choose to make this media type available only on a specific product by adding the media type to the paper type property on an individual product. Or, you can make the media type available globally, so that it is there every time you add paper type property to a product. - To make the addition globally, click **Presets**. - Click **Global Product Properties Setup**. - Click **Paper Type** and scroll down to the section Take values from predefined value(s). - Click **Add new value**. - Enter a display name for the customer to select this new media type. - Enter a description. - The value is entered automatically, but can be changed if desired. (The value is not important. The value from the JDF Node will be used.) - Select the JDF Node Set that you created in step Creating JDF Node Set. ### Setting the Product or Product Profile to Use the Workflow The last step is to set the product or product profile to use the workflow. If you have set up your products and linked them to a product profile: - Go to **Product Profiles**. - Click the profile name. - Click the **Prepress Setup** button. If you are not using product profiles: - Click the **Stores** button. - Click the name of the store. - Locate the product. - Click the name of the product. - Click **Take offline**. - Click the **Prepress Setup** button. - Click the **Add workflow** button. - Select the workflow that you created earlier. Scroll to the bottom and click **OK**. - If desired, you can set the workflow to be default and to auto-run. - Click **Save**. - Click **Place online**. ## Testing and Debugging You can now test ordering the product, processing the order and check the printer to see if the media type is defined correctly. Piece of Cake store product arrives at the FreeFlow Print Server: **Job Properties>Stock** tab shows the correct stock name was applied to the job: If you need to view the JDF that was sent to FreeFlow Core as part of debugging any problems, you can connect to your uStore server via SMB (windows file sharing) \\ A copy of the JDF file is saved to this folder when the job is in the **Prepress in progress** queue. ## Further Reading #### JDF: https:// http://www.cip4.org/ #### Xerox printer support: http://www.office.xerox.com/service-and-support/ #### Xerox FreeFlow Core: http://www.xerox.com/digital-printing/workflow/ #### XMPie uStore: http://help.xmpie.com/uStore/index.htm http://help.xmpie.com/uStore/uStore_Help_Page.htm   Created by: Steve Couch, last updated: November 15, 2015 #### XMPie Server Products - Disaster Recovery # XMPie Server Products - Disaster Recovery **Summary**: Disaster Recovery (DR) is the act of recovering a software system after the occurrence of an unforeseen event that could severely impact the software’s ability to operate effectively, thus affecting the business. Whilst there are three stages of disaster recovery, this article discusses only corrective measures. Preventative and detective measures are outside the scope of this document. **Audience**: XMPie employees, channel staff and customers involved in the disaster recovery planning of XMPie installations. The article aims at answering questions about the setup of DR and presents any special actions that should be made. Click here to read this article.   Created by: Arik Michaelovich, last updated: March 7, 2016 #### PCI Compliance and XMPie uStore # PCI Compliance and XMPie uStore **Summary**: This article describes how to approach PCI compliance with XMPie uStore. **Audience**: XMPie, channels and customers ## Overview and motivation XMPie offers uStore as an eCommerce platform. In many cases, uStore customers (merchants) build online stores which include credit card clearing. When credit cards are being cleared, PCI (Payment Card Industry) compliance becomes a mandatory requirement. This article explains how to approach PCI compliance for your uStore-based stores. uStore enables a secured and safe integration with clearing providers, which helps you with PCI requirements by offering integrated payment gateways that allow merchants to securely transmit credit card data via integration with leading payment gateways. **See List of payment gateways integrated into uStore. The Redirect payment method** (hosted payment gateways), where clearing is done in the payment gateway’s website, is incorporated in uStore and is helpful with regard to PCI requirements. This method allows merchants to offer a seamless checkout process that satisfies most of the PCI requirements. Once a customer clicks the payment button at the store, they are redirected to the payment gateway’s website to fill the payment details. Once the payment is completed, the customer is redirected back to the store to finish the checkout process. Thus, the payment forms are integrated into the checkout process but no credit card data is captured or processed through the uStore application server. As a result of this integration, uStore-based merchants, that are hosted by XMPie, are able to validate for compliance via self-assessment at the SAQ A or SAQ A-EP level rather than the more difficult SAQ D level. In addition, XMPie, being the application developer, can provide a filled SAQ D form for requirements 6 and 12. For more information, please contact support@xmpie.com ### List of redirect payment gateways integrated into uStore - PayPal Web Site Payment Standard - Ogone Redirect - Authorize.Net - MultiSafepay Consult each of these providers regarding their PCI responsibility matrix. This will help you understand the delineation of responsibilities between you, the payment gateway, and XMPie. ## The twelve requirements of PCI Since uStore is already geared towards supporting PCI compliance, you can easily achieve the twelve PCI requirements. For a detailed explanation of these requirements, see PCI Security Standards. For customers whose system is hosted by XMPie or are using the StoreFlow Cloud service, XMPie takes care of network security and server security. uStore is a secured application that is developed following standard industry procedures.   Last updated by Mohammad Mansour: November, 2025 #### Security Issue with uStore’s Single Sign on API # Security Issue with uStore’s Single Sign on API uStore’s Single Sign-on (SSO) WS API enables to generate a URL for seamless login to the Storefront. A vulnerability was detected which enabled to generate a URL on one server and use it on any other server, resulting in seamless log in to stores on other servers. Patch #721 was created to solve this issue. ### Integration considerations Resulting from this patch, the content of the single sign-on URL has changed. URLs generated prior to the patch will no longer be valid and will not work. If your code generated URLs prior to the patch and stored them for later use, you will need to either regenerate the URLs or follow the best practice, as follows: **each time a seamless login to the Storefront is needed, call the single sign-on WS API to generate a new URL. Note:** Systems using uStoreConnect are most likely using single sign-on API, thus integration needs to be revisited. ### Applying the patch - For systems using uStore 8.1 or higher, log in to the Back Office and go to** Presets > XMPie Services > Check for new updates**. Install patch #721. - For systems using uStore 8.0 or lower, contact Support for an upgrade.   Created by: Guy Schreiber, last updated: December 18, 2016 #### Cookie restrictions for uStore integrations # Cookie restrictions for uStore integrations **Audience:** XMPie customers who have integrations with uStore. **Note:** Applicable for version 12.1 and higher. ## Overview Recently, cookie security in browsers has been hardened. When a website page displays another website page within an iFrame, and the outer and inner sites have different domains, the site within the iFrame is considered third party context, and thus is not allowed to access cookies. There is no issue if the outer and inner sites use the same domain. This may have an impact on two types of uStore integrations: - uStore opens an iFrame to an external site, e.g. in the context of a clearing plugin or a recipient list plugin. - A website is running uStore Connect within an iFrame. For further readying, see https://web.dev/samesite-cookie-recipes/ ## Solutions - If possible, use the same domain name for the outer and inner websites. - Another approach is not to use an iFrame, and instead redirect from the outer to the inner website and back. - If the above solutions are not applicable, set the outer website to trust the inner website. Use the following method: In the Back Office, go to **Presets > System Setup > Global Configuration**, add a new key called **SuppressCookieSameSiteRestriction** and set it to **True**. The following restrictions apply: - The outer and inner websites must be secured using HTTPS. - If two outer websites use the same domain, e.g. two uStore stores, you will not be able to browse the two stores in the same browser, unless they both use HTTPS. - If you still want to use a store without HTTPS, you can use a different domain or sub-domain.   Created by: Guy Schreiber, last updated: January, 2020 #### Adjusting the Cookie ribbon style in version 13.4 and above # Adjusting the Cookie ribbon style in version 13.4 and above **Note:** This article is relevant for upgrades from a version older than 13.4 to 13.4 or above. The cookie ribbon has been enhanced in version 13.4 to better support GDPR, list the cookies in use and show the cookie policy. With this modification, the look and feel of the ribbon has changed, relying on new CSS styles. XMPie AquaBlue theme for NG stores and XMPieGreen skin for legacy stores of version 13.4 come with these CSS styles in place. However, if you're using a custom legacy skin or a custom NG theme, you will have to add these CSS styles to make the cookie ribbon look and behave correctly. After adding the CSS you may need to refresh the cache (Ctrl+F5 in your browser) to see the change. Click here to download the CSS files. ## CSS for custom NG themes - Open C:\XMPie\uStore\App\ustoreshared\Skins\Images\YourThemeName\style.css - Copy the content of "CustomAquaBlueStyle.txt" to the end of the style.css, and save. - Open C:\XMPie\uStore\App\ustoreshared\Skins\Images\YourThemeName\StyleMobile.css - Copy the content of "CustomAquaBlueStyleMobile.txt" to the end of the StyleMobile.css file, and save. ## CSS for custom legacy skins - Open C:\XMPie\uStore\App\ustoreshared\Skins\Images\YourSkinName\style.css - Copy the content of "CustomLegacyXmpieGreenStyle.txt" to the beginning of the style.css file, and save. - Open C:\XMPie\uStore\App\ustoreshared\Skins\Images\YourSkinName\StyleMobile.css - Copy the content of "CustomLegacyXmpieGreenStyleMobile.txt" to the beginning of the StyleMobile.css file, and save.   Created by: Guy Schreiber, May 2021 #### Retirement of FedEx Web Services # Retirement of FedEx Web Services This article is intended for uStore customers using FedEx services. FedEx Web Services are being retired. The SOAP based FedEx Web Services are in development containment and have been replaced with FedEx RESTful APIs. XMPie customers will need to prepare to upgrade to uStore 16.1 or higher, and apply a patch for the FedEx updated APIs. This patch should be available in March 2024. ## How do I know if I'm using FedEx in uStore? - Log in to the uStore back office: https://{your server}/ustoreadmin - Click **Presets**. - Click **Delivery Setup**. - Click **Fedex**. - If any accounts are listed, you may be using FedEx for one or more of your uStore storefronts. - Should you need help identifying whether you're using FedEx services, please contact XMPie Support. ## What versions of uStore are impacted? uStore 17.1 requires the FedEx patch. uStore 17.0 requires the FedEx patch. uStore 16.1 requires the FedEx patch. uStore 16.0 and below require uStore upgrade + patch. ## If I'm using FedEx services, what steps should I take? **Recommendation:** Perform the transition to FedEx projects on your store’s slow hours to avoid new orders from being submitted with old services. Make sure you read through the entire procedure before performing it. - Create deliveries for all FedEx pending orders. - Install the FedEx patch for uStore in the uStore back office, or contact XMPie Support. - Set up FedEx projects in the FedEx website. Retrieve the test keys of each project to be later used in a test account which you will create in uStore. - Set up a FedEx test account in uStore. Note that test keys are provided for each FedEx project, together with dedicated test account numbers. Use these test account numbers when creating a test account in uStore. - In uStore back office, go to the store's **Setup page > Delivery Services**, select the required new delivery services provided by FedEx and disable the old services. List of new delivery services Supported delivery services: - FedEx International Priority Express - FedEx International First - FedEx International Priority - FedEx International Economy - FedEx International Ground (for both domestic and international) - FedEx Cargo International Premium - FedEx First Overnight - FedEx Intl Ground Distribution - FedEx Ground Home Delivery - FedEx Smart Post - FedEx Priority Overnight - FedEx Standard Overnight - FedEx 2 Day - FedEx 2 Day AM - FedEx Express Saver - FedEx Same Day - FedEx Same Day City To prevent confusion between the old SOAP services and the new REST API services, it is recommended to rename the SOAP services so that they can be distinguished from the new delivery services. **Important:** If you haven't created deliveries for orders pending delivery, as recommended above, and FedEx account has been migrated to use FedEx projects: - If the old delivery services have been disabled, a delivery cannot be created for any pending orders set with the old services. - If old delivery services are still active, during delivery creation you will have to locate in the receipt the old service selected by the customer and create a new delivery with a corresponding new service. - In **Presets > System Setup > Delivery services**, you can see in the **Description** column which of the services are for REST API. - Perform label certification, as required by FedEx. - Set up your FedEx account for production. When moving Track and Ship & Rate projects to production, use the same account number for both projects, when prompted to do so. This can be done in two ways: - Create a new FedEx account in uStore, and then apply it to each store. In this way you migrate stores one by one, and do not lose customer selections of delivery services. You can also choose different times of migration for each store. However, this may be a lengthy process. - Upgrade the existing FedEx account. This will affect all stores at once. All stores are migrated at once, and there is no need to locate which stores use the account. However, if some orders are before the Delivering status, customer selection of delivery service is lost. **Note:** For versions lower than 17.2, if you're upgrading your old accounts to REST API accounts, you'll need to take the stores offline and then place them back online.   ## What should I do if I'm using an older version of uStore? uStore 16.0 and below require uStore upgrade and patch.  Open a support case to request an upgrade to the latest version. ### What happens with orders that use the old delivery services? When trying to create a delivery, the system will check if the requested delivery service is still available in the store. If the delivery service is not available (removed from the store or deactivated in Presets), the delivery cannot be created, and the production flow will fail. If the delivery service is active – the system allows replacing the delivery service to one of the newly activated delivery services. In this case you will not be able to see the customer selections of previous delivery services. ## How do I contact XMPie Support? Contact XMPie support via the support portal: https://www.xmpie.com/support or support@xmpie.com to schedule your uStore upgrade.   Created by: Clint Cagle ,updated on May 2024 #### Setting up FedEx Projects # Setting up FedEx Projects FedEx has announced the following: Caution: FedEx Web Services Tracking, Address Validation, and Validate Postal Codes WSDLS will be retired on August 31, 2024. The SOAP based FedEx Web Services is in development containment and has been replaced with FedEx RESTful APIs. To learn more and upgrade your integration from Web Services to FedEx APIs, please visit the FedEx Developer Portal. ## Overview Customers who already have web service integration may continue to work with the existing implementation, but will need to add tracking information manually. uStore will provide rates and create shipments, but will not be able to check the status of the delivery because of the retired tracking web service. uStore will inform its users about this change and ask them to move to the FedEx RESTful API integration. All new integrations with FedEx will be forced to use the new RESTful API implementation to take advantage of the value provided by FedEx APIs. ## Creating New Keys for FedEx RESTful API The following procedures will explain how to create two FedEx projects: Track API and Ship, Rate & other APIs. ### Track API Project - Perform the steps detailed in the Getting Started area of the FedEx developer website. - To track the API Client, log in to the FedEx developer website. - Add a project with Tracking API to your organization. - In the **Tell us about your API needs** popup, select the second option from the dropdown list. - Fill in the form with the following information: - Select **Track API**. - Click **Next** at the bottom of the page. - Enter the project name, and select any countries you plan to ship to or from. - Accept the terms, and create a new project. - After completion, go to **My Projects** and open the newly created project. Notice that the API project type is **Track**. - In the **API Project overview** page, **Test Key** area, appear the API key and secret key of the test server. Do not forget to save this data to be used in uStore in the test account. - When you need the production keys, click on the **Production Key** tab, enter a key name and select the FedEx account number. Note that this account number should also be used for the Ship, Rate & other APIs project, as explained below. New keys will be generated. You will be able to see production client secret keys only. Do not forget to save this data to be used in uStore. You can also regenerate production client secret keys. ### Ship and Rate API Project - Browse to the FedEx developer website and log in with your credentials. - Click **Create API Project** to add a project with Ship and Rate APIs to your organization. - In the **Tell us about your API needs** popup, select the second option from the dropdown list. - Fill in the form with the following information: - Select **Ship, Rate & other APIs**. - Select **Ship API** and** Rates and****Transit Times API**, and then click **Next**. - Enter your project's name, and the countries you wish to ship to or from. - Accept the terms, and create a new project. - After completion, go to **My Projects** and open the newly created project. Notice that the API project type is **Rate, Ship, Other**. - In the **API Project overview** page, **Test Key** area, appear the API key and secret key of the test server. Do not forget to save this data to be used in uStore in the test account. - When you need the production keys, click on the **Production Key** tab, enter a key name and select the FedEx account number. Note that this account number should be the same as the one selected for the Track API project. New keys will be generated. You will be able to see production client secret keys only. Do not forget to save this data to be used in uStore. You can also regenerate production client secret keys.   Created by: Mor Ben Meir on March 2024 #### uStore 17.2 Security Update # uStore 17.2 Security Update The following clearing models have been deprecated in uStore 17.2: - Moneris - PayPal Payflow Pro - No clearing, when set with the credit card collection method. If you have been using these clearing models, you can continue using them until September 2024. XMPie strongly recommends you adopt other clearing models we support as soon as possible. ## Supported clearing models - PayPal Website Payment Standard - Ogone Redirect Clearing - Cost Center Clearing - Purchase Order Clearing - AuthorizeNET Clearing - MultiSafepay Clearing   Created by: Clint Cagle, July 2024 #### StoreFlow Cloud Security and Availability # StoreFlow Cloud Security and Availability **Summary:** This article provides information on the StoreFlow Cloud service hosted on Amazon Web Service environment. ## Overview XMPie StoreFlow Cloud is a turn-key solution for print service providers managing Web-to-print sites and marketing portals. StoreFlow merges XMPie’s powerful Web-to-print capabilities with flexible pre-press automation to provide a complete, out-of-the-box solution with an end-to-end workflow for receiving, processing and producing orders received online.   StoreFlow Cloud is hosted in Amazon Web Services (AWS). Amazon Web Services (AWS) is a cloud computing platform that provides a suite of infrastructure services.   The usage of AWS cloud provides a highly reliable and secured infrastructure for deploying StoreFlow as a web-based application. ## Infrastructure Amazon Web Services (AWS) provide a reliable, secure, and highly performing infrastructure for the most demanding web applications, an infrastructure that matches XMPie StoreFlow solution. It also delivers a scalable cloud computing platform with high availability and dependability. AWS’s data centers are state of the art, utilizing innovative architectural and engineering approaches. ## StoreFlow Cloud Availability XMPie shall use all reasonable commercial efforts to achieve the target infrastructure availability goal of 99.95% uptime twenty-four hours per day, seven (7) days per week (“Service Commitment”) during the subscription term, except during times of system maintenance, as set forth in the table below. ## System Maintenance System Maintenance refers to any systems software or XMPie applications change or update that has the potential to result in an impact or reduction to the resiliency or functionality of the XMPie service.  System Maintenance types: - **Planned Maintenance:** Planned maintenance involves any activity where it is anticipated to have interruption to the operational functioning of the XMPie services during US business hours. XMPie will provide subscribers with at least one (1) week posted notification and e-mail notice prior to conducting any planned maintenance with information on the changes and expected downtime, unless the maintenance is performed outside of US business hours (for example, on Sunday).  - **Emergency Maintenance:** Emergency maintenance involves any activity where it may or may not be possible to anticipate an interruption to the operational functioning of the XMPie services during US business hours.  XMPie will use all reasonable efforts to provide e-mail notification at least twenty-four (24) hours in advance of any Emergency Maintenance, unless the maintenance is performed outside of US business hours (for example, on Sunday).    Maintenance notifications are published on https://status.xmpie.com ## RTO and RPO XMPie shall use all reasonable commercial efforts to ensure the resumption of operations affected by a disruption within 48 hours (Recovery Time Objective). The supplier will back up the service or systems related data on a daily basis (RPO). ## Security Measures XMPie maintains a risk-based assessment security program. The framework for XMPie's security program includes administrative, technical, and physical safeguards reasonably designed to protect the confidentiality, integrity, and availability of Customer Data.   XMPie's security framework covers: Policies and Procedures, Asset Management, Access Management, Cryptography, Physical Security, Operations Security, Communications Security, Business Continuity Security, People Security, Product Security, Cloud and Network Infrastructure Security, Security Compliance, Third-Party Security, Vulnerability Management, as well as Security Monitoring and Incident Response. Security is represented at the highest levels of the company, with XMPie's Vice President/General Manager meeting with executive management regularly to discuss issues and coordinate security initiatives. Information security policies and standards are reviewed and approved by Xerox management at least annually and are made available to all XMPie employees for their reference. - Tenant Isolation – Each StoreFlow customer is logically isolated   from other customers. **Information about AWS compliance is available here. - The physical security for StoreFlow is handled by the service provider (AWS). AWS has very rigorous security controls protecting its data centers. More details about the AWS data center's physical security are here. - StoreFlow solution supports SSL as a standard security for establishing encrypted connection between a web server and a client browser. - Security Group – Firewall - Amazon EC2 provides a complete firewall solution. Security groups provide firewall protection for the running instances. - Web Application Firewall (WAF) – StoreFlow Cloud utilizes Imperva WAF (Web Application Firewall) to provide an additional layer of protection for web applications. Imperva WAF protects against common web-based attacks and OWASP Top 10 vulnerabilities, including: - SQL injection attacks - Cross-site scripting (XSS) - Distributed Denial of Service (DDoS) attacks - Bot mitigation and automated threat prevention - Zero-day attack protection - API security and protection The WAF continuously monitors HTTP/HTTPS traffic between web applications and the internet, filtering out malicious requests and allowing legitimate traffic to pass through, ensuring application availability and data protection. - XMPie uses a Cloud Security Posture Management (CSPM) system to monitor our cloud service. This provides discovery and visibility into cloud infrastructure and resources, enables proactive detection of threats across the application development lifecycle, detects misconfiguration management, and continuous compliance monitoring. - DevSecOps integration - Employs cloud-native, agentless posture management to reduce overhead and eliminate friction and complexity. - Continuous compliance monitoring: Assesses the security of cloud accounts and eliminates compliance violations. - In addition, CrowdStrike Falcon (EDR) – a lightweight-agent AI-driven endpoint protection platform - offers real-time protection and visibility across the enterprise, preventing attacks on endpoints on or off the network. CrowdStrike Falcon (EDR) provides the following capabilities: - Endpoint Protection: CS Falcon offers real-time protection for endpoints, such as workstations, servers, and laptops. - Next-Generation Antivirus (NGAV). - Endpoint Detection and Response (EDR). - Managed Threat Hunting: CrowdStrike's threat hunting services offer proactive detection and response capabilities. - Cloud-Native Architecture. - For more information see Endpoint Detection And Response (EDR). - XMPie uses CIS Microsoft Windows Server Level 1 Hardened Image - a preconfigured image built by the Center for Internet Security (CIS) for use on Amazon Elastic Compute Cloud (Amazon EC2). It is built to offer an image secured to industry-recognized security guidance running on Amazon EC2. ## SOC 2® Type 2 Examination Successfully Completes SOC 2 Assessment for Data Security Excellence. SOC, which stands for System and Organizational Controls, is a framework developed by the American Institute of Certified Public Accountants (AICPA) for the purpose of providing regular, independent attestation of the controls that a company has implemented to mitigate information-related risk. A SOC 2 report addresses risks associated with the handling and access of data, and can be used by a variety of organizations of any size (e.g. SaaS, colocation, data hosting, etc.). Different from a cybersecurity assessment that evaluates specific technical configurations, a SOC 2 report focuses more on how an organization implements and manages controls to mitigate the identified risks to the different parts of an organization. The SOC 2 audit testing framework is based on the Trust Services Criteria (TSC), which are used to identify various risks (points of focus) an organization should consider addressing. Based on the TSCs the organization selects to be in scope, the third-party compliance and audit firm evaluates whether the organization has the appropriate policies, procedures, and controls in place to manage the identified risks effectively. In order to pass a SOC 2 examination and receive a letter of attestation successfully, it means an organization is addressing controls in areas such as information security, access control, vendor management, system backup, business continuity and disaster relief, and more. The scope of a SOC 2 examination extends beyond the systems that have a financial impact, reaching all systems and tools used in support of the organization’s system or services. For XMPie customers this means enhancing security confidence via certified independent verification. Request access to XMPie SOC 2 Type 2 report here. ## Security by Design The XMPie Software Development Lifecycle (SDL) process is the method by which XMPie creates secure products and defines the activities that the product teams must perform at different stages of development (requirements, design, implementation, and deployment). XMPie engineers perform numerous security activities for the Services including: - Internal security reviews before products are launched - Periodic penetration tests performed by independent security teams - Architecture reviews - Secure Software Development Life Cycle (Secure SDLC) is a software engineering culture to unify software development, deployment, security, and operations: - Static Application Security Testing (SAST) - Analyzes source code to identify vulnerabilities in applications before the applications are compiled or deployed. - Dynamic Application Security Testing (DAST) - Identifies vulnerabilities and applications in (web) applications while they are running. - Software Composition Analysis (SCA) - set of tools and practices that enables identification and management of third-party and open-source components in software applications that helps identify and mitigate security vulnerabilities in these components. SCA also uncovers licensing issues of the components. ## XMPie Architecture Depending on the service offering you choose, XMPie's flexible architecture can be tailored to meet your high availability requirements. Please contact our team to learn more about how we can customize the deployment to suit your needs. ### StoreFlow Private Cloud Standard Configuration ### Fault Tolerance Configuration ## Vulnerability Management XMPie maintains controls and policies to mitigate the risk from security vulnerabilities in a measurable time frame that balances risk and the business/operational requirements.   For the XMPie application software, critical software patches are evaluated, tested and applied proactively. For high-risk patches, XMPie will notify customers prior to the application of a patch. ### Security Monitoring with SIEM XMPie leverages SIEM using Cortex XSIAM for deeper visibility and faster threat detection. SIEM key capabilities: - Detection of Unusual Login Activity:** Identifying logins from unfamiliar IP addresses or at atypical times. - I**dentification of Unauthorized API Calls:** Recognizing attempts to access services or resources outside of normal usage patterns. - **Monitoring of Resource Changes:** Tracking the creation, modification, and deletion of AWS resources to ensure changes are authorized and secure. - **IAM Policy Analysis:** Reviewing IAM role and policy usage to uncover misconfigurations or potential vulnerabilities. - **Cross-Service Event Correlation:** Using CloudTrail as a central source to correlate events across AWS services, providing a comprehensive view of our security posture. ## Penetration Testing XMPie performs application-level penetration tests for major releases or at least once a year. These tests use a combination of manual and automated techniques that complement each other to comprehensively evaluate the security posture of the application against latest threats as well as best practices like OWASP TOP 10 and SANS Top 25. Results of penetration tests are prioritized, triaged and remediated promptly by XMPie’s security team. ## Backup and Recovery StoreFlow environment is fully backed-up by CPM (Cloud Protection Manager by N2W Software). The CPM is an enterprise-class backup and recovery solution for Amazon EC2 environment. The backup policy routine consists of daily snapshots. ## Operational Monitoring Licensee acknowledges that XMPie may request reasonable information from the licensee for the purpose of facilitating the use of StoreFlow cloud under the hosting service, and that certain applications may be used to retrieve information about StoreFlow cloud 's usage, to maintain compliance with the terms applicable to the use of the hosting service. XMPie uses Amazon CloudWatch - a monitoring and management service which enables application and infrastructure monitoring.  Amazon CloudWatch provides the following capabilities: - Enables to collect and store logs from resources, applications, and services in near real time. - Cross-account observability across multiple AWS accounts which helps monitor and troubleshoot applications that span multiple accounts within a region. - Alarm and automate actions. - For more information see Amazon CloudWatch features. In addition, depending on the service purchased, XMPie may use Datadog observability service, which enables real-time monitoring and log management. Datadog provides the following capabilities: - Determines performance metrics as well as event monitoring for infrastructure and cloud services. - Infrastructure monitoring - provides our team with a single view of our infrastructure (including servers, apps, metrics and other services). - Application Performance Monitoring (APM) - this includes Processes, Windows Services, XMPie Services, AWS integrations, monitors, synthetic tests, Health checks and more. - Alerts based on critical issues. - Automatically collects and analyzes logs, latency and error rate. - For more information see Datadog Solution Brief. XMPie leverages Network Operation Center (NOC) for 24/7 monitoring and rapid action management. ## Service Exclusions and Limitations  Unless Managed Services are involved, the following are limitations of the hosted solution:  - No file system access - for security and service experience reasons, XMPie does not support direct access to the file system. This means no bulk uploads of assets, documents, or hot folder import for uProduce and Free Flow Core (FFC), as well as no hot folder output from uProduce or Free Flow Core.   - No operating system access - for security and service experience reasons, XMPie does not support direct access to the operating system. Meaning, no Remote Desktop Connection (RDC) capabilities provided to the client.   - No direct SQL server database access - this means no automation or scripting capabilities, even when upgrading to full SQL license. There is a Professional Service plugin that can provide some access to update a database via flat file. This requires user intervention and cannot be scheduled or automated.   - Customers are solely responsible for ensuring the data they host on the site does not trigger malicious content flags. This responsibility is continuous and ongoing, extending beyond the initial configuration of a store/domain. Should their store/domain become flagged as malicious weeks or months after setup, the onus remains on the customer to actively monitor their data and take appropriate remedial action. If a customer's domain triggers a malicious content flag, XMPie may need to take temporary measures to mitigate the risk, potentially including taking the store(s) offline. This action would be taken solely to protect the platform and its users and would be communicated to the customer beforehand. The information above can change from time to time, and it is true as of the last review date of this document.    Created by: Nahum Cohen, last updated on January 2026 #### Search Engine Optimization (SEO) in uStore NG Stores # Search Engine Optimization (SEO) in uStore NG Stores Search Engine Optimization (SEO) enables you to improve the volume and quality of traffic to your website from search engines. This article provides the required settings and guidelines for improving SEO in uStore's NG stores. **Note:** This article lists only the functionality supported by XMPie. It does not cover every SEO option that XMPie does not support, including but not limited to meta tags. ## Keyword research - **Identify target keywords:** Use tools like Google Keyword Planner to find keywords relevant to your niche. - **Use long-tail keywords:** A long-tail keyword is a highly specific search phrase with three or more words. These keywords have less competition, making them easier to rank for, and they help optimize your website for different types of searchers. Because they target users with clear intent, long-tail keywords are valuable for SEO and can lead to higher conversion rates. For example:**Short-tail keyword: laptop Long-tail keyword: best laptop for video editing under $2000 In uStore, add these keywords to the product’s Short Description** and **Full Description** fields. ## On-page SEO optimization - **Headings:** Use headings (H1, H2, H3) in your store’s HTML pages. Use proper heading hierarchy and include keywords in your headings. Note that this option is supported in custom themes only. For detailed information, see Theme Development Overview. - **Meaningful URLs:** Include the relevant keywords in the product name. This will define the URL of the product. - **Image optimization:** Use descriptive image file names, insert keywords into the alt text, and compress images for faster loading. For more control over image optimization, use custom theme development. For detailed information, see Theme Development Overview. - **Content quality:** Create valuable, original content that answers user queries and incorporates keywords naturally. In uStore, add these keywords to the product’s **Short Description** and **Full Description** fields. ## Technical SEO - **Mobile-friendliness:** uStore supports mobile friendly stores. There is no need to take any action on your side. - **Site speed**: uStore optimizes the site's speed by: - Minimizing JavaScript and CSS - Using a Content Delivery Network (CDN) - Implementing lazy loading - Caching Make sure your images are optimized in size for optimal site speed. - **Robots.txt:** uStore provides the robots.txt file as part of its solution. This allows search engines to crawl your store and save its information. - **SSL (Secure Sockets Layer) certificate:** Use HTTPS to secure your site. Google considers HTTPS as a ranking signal. This means websites with HTTPS might rank higher in search results compared to those without it, as Google prioritizes sites that are secure for users. In uStore, secure the store using SSL. For more information, see Setting Security Options (SSL). ## Content strategy - **Regular updates:** Keep your content fresh and up-to-date. - **Blogging:** Create a blog with informative, keyword-optimized posts to attract traffic. - **Multimedia content:** Use videos, infographics, and images to engage users and reduce bounce rates. - **User intent:** Write content that matches what users are looking for, whether it’s informational, navigational, or transactional. ## Off-page SEO - **Backlink building:** Get high-quality backlinks from reputable sites to improve your authority. Search engines like Google use backlinks to assess a website’s credibility and authority. More high-quality backlinks can improve your ranking in search results. - **Social media sharing:** Promote your content on social media to drive traffic and indirectly boost SEO. - **Guest blogging:** Write for other reputable sites in your niche to build backlinks and authority. ## Local SEO - **Google Business Profile:** Set up and optimize your Google Business profile. It is a free tool from Google that allows businesses to manage their online presence across Google Search and Google Maps. - **NAP consistency:** Ensure your name, address, and phone number are consistent across all online platforms. - **Local keywords:** Use location-specific keywords in your content. ## Analytics & monitoring - **Google Analytics:** Track website traffic, user behavior, and conversion rates. For more information, see Implementing Google Analytics in your Store. - **Google Search Console:** Monitor search performance, index status, and fix crawl errors. ## User experience - **Easy navigation:** Make sure the site is easy to navigate with a clear structure. - **Engaging design:** Use a clean, professional design that keeps users engaged. - **Low bounce rate:** Improve content relevance and site speed to reduce bounce rates.   Created by: Rafael Moreno on February, 2025 #### Creating an Offline AquaBlue Theme # Creating an Offline AquaBlue Theme The AquaBlue theme uses online assets. Users who do not have internet access cannot use the AquaBlue theme, since they will not have access to these online assets. This may also be relevant for custom themes. The following solution allows you to download the online assets into the local theme folder and use them locally. - Begin the process with theme customization, as you usually would. For information on theme development, see Theme development overview. - In the theme project folder, go to `src\public\index.html` You will see three "crossorigin" references that will look like this: - Download the files in the links and place them in the following folder: `src\src\ustore-internal\static` - Return to the index.html page, and replace the path to the assets with the following string: `%REACT_APP_ASSET_PREFIX%/static-internal` For example, this is what the new lines will look like: - Publish the theme.   Created by: Dotan Mazor on March, 2025 #### uStore: Migrating uProduce Destinations to Post Composition Operations # uStore: Migrating uProduce Destinations to Post Composition Operations **Note:** This is relevant only for uStore installations that work with uProduce version 25.2 and above. ## Overview This article provides detailed instructions for migrating uProduce destinations to the new Post Composition Operations, in a way that will not interfere with uStore production. The migration involves creating a parallel post composition operation for each destination and updating the products accordingly. ## Important uProduce Output Destinations are deprecated, and are going to be discontinued in future versions of uProduce. See deprecation and discontinuation dates. You are urged to migrate your relevant products to the new Post Composition Operations. ## Steps to Migrate Destinations ### Step 1: Identify which Output Destinations are used by uStore In your uStore Store List screen, click the “Download products list” link to identify any Output Destinations that are used by uStore. This link is shown to admins that have access to all stores, and only if there are products that use an Output Destination in their uProduce job ID. The steps outlined here only need to be performed for the destinations used by uStore. Any output destinations that are not used by uStore can be migrated to Post Composition Operations without impacting uStore. The process will create a CSV which is used in the following steps. ### Step 2: Create a Parallel Post Composition Operation For every Output Destination that is used by uStore, you need to create a parallel post composition operation. This operation will replace the deprecated destination functionality. You can do it by either using the **Transform All** option for all destinations, or the **Transform** button for each specific relevant destination. ### Step 3: Update Products with New Process Jobs For each product listed in the CSV file that you downloaded, use the uProduce dashboard to create a new process job that uses the new post composition operation. - Download the CSV file containing the list of products with destinations. - Open the CSV file and identify the products that need updating. - In uProduce, create a new process job for each product, using the new Post Composition Operation you created earlier. - In uStore, navigate to and edit the relevant products. - Replace the existing job ID with the new process job ID created in uProduce. - Save the product. - Test the product in the storefront, to verify that the output is created and being saved to the desired location. ## Conclusion By following these steps, you will successfully migrate your uProduce destinations to the new method, ensuring continued functionality and avoiding disruptions.   Created by: Dotan Mazor on May, 2025 #### StoreFlow Cloud: System and Client Requirements # StoreFlow Cloud: System and Client Requirements This article is designed to provide you with an overview of the requirements and expectations for successfully utilizing XMPie's StoreFlow Cloud offering. Whether you are a new customer or considering transitioning to the cloud-based solution, this article will help you understand what you need to have in place to ensure a smooth and efficient experience. StoreFlow Cloud is available over the internet, and it is managed using a web browser. There is no need to install any software locally. ## Client browser & operating system support The latest versions of browsers available at the time of release are supported. | Storefront | Windows: Chrome, Firefox, Edge Chromium, Opera; Mac: Safari ; Mobile Android: Chrome ; Mobile iPhone and iPad: Safari | | --- | --- | | Back Office | Windows: Chrome ; Mac: Safari | | Operating System | Desktop: Windows 10 Pro Edition or higher; iPhone: IOS 12 or higher ; Android: Android OS 7 or higher ; Mac: macOS 12 Monterey or higher | ## Related articles - #### StoreFlow Cloud Terms of Service https://www.xmpie.com/xmpie-storeflow-cloud-user-terms-of-service/ - #### StoreFlow Cloud Security and Operations https://help.xmpie.com/KBA/0113/0113_StoreFlow_Cloud_Security_and_Availability.htm - #### XMPie GDPR Data Processing Addendum (DPA) https://www.xmpie.com/gdpr-dpa/ - #### XMPie Support Policy https://help.xmpie.com/KBA/0110/0110_XMPie_Support_Policy.htm   Created by: Dotan Mazor on June, 2025 #### Troubleshooting uStore Integration with Enfocus Switch # Troubleshooting uStore Integration with Enfocus Switch This checklist provides step-by-step actions and common error messages to help diagnose and resolve issues with Enfocus Switch integration in uStore workflows. * ## Troubleshooting Quick-Reference ### Causes for Common Integration Issues - Switch port is closed. - Switch server is offline. - The required Switch flow is stopped. - Incorrect flow is selected in uStore. - Invalid Switch username or password. - uStore is not accessible from the Switch server. - Invalid Switch flow logic - in this case, the flow logic and Switch logs should be reviewed. - Incompatible versions - uStore must be version 25.3 or higher, and Switch must be version 25.07 or higher. ### Troubleshooting Resources The following locations are recommended to perform your investigation, when there's signs of trouble. - uStore Orders screen, under the “Failed Jobs” queue. Look at the column “Error Message”. These are some examples of error messages and the likely reason: - “Order failed to send”: Switch webhook is unreachable or has a malformed address. - “Status update failed”: missing / wrong Switch credentials or incorrect endpoint contacted. - “No artwork file found”: output file retrieval not enabled in uStore app on Switch side. - “Job not created”: Composite product failed to split correctly. - Switch Messages screen. - uStore local logs, in the folder XMPLogs\uStore\AdminApp ### Troubleshooting on the uStore Side | Issue/Symptom | Likely Cause(s) | Recommended Action(s) | | --- | --- | --- | | Flow list synchronization failed | Wrong provider type, bad URL, credentials, or network | Check provider type, URL format, credentials, and network access | | Partial list of flows | Some flows are inactive in Switch | Activate missing flows in Switch | | Status update failed | Missing credentials or incorrect endpoint | Verify credentials and endpoint | | Order failed to send | Webhook unreachable or malformed address | Check webhook URL and network access | ### Troubleshooting on the Enfocus Switch Side | Issue/Symptom | Likely Cause(s) | Recommended Action(s) | | --- | --- | --- | | Flow not starting | Network/firewall issues, multiple starting uStore apps | Check network/firewall settings, make sure there's only one uStore app with the action “Receive order” | | No output file available | Output not enabled, cleanup set to Yes, network/firewall issues | Enable output, set cleanup to No (temporarily), check network/firewall settings | | No order details or JDF data | App not set to retrieve details, missing export action | Enable “Get Order Details”, add “Export metadata” action | | No artwork file found | Output file retrieval not enabled | Enable output file retrieval in app | | Job not created | Composite product not split correctly | Review flow logic and Switch logs | ## Full Flow of the integration and Possible Issues in Each Stage ### 1. uStore System Set Up Refer to the online documentation regarding Setting Up Prepress Workflow Providers Basic setup includes: - Prepress Workflow Provider - Switch user name and password credentials There is no validation at this stage, so if there is a wrong setting there will not be an indication. ### 2. uStore Product Setting: Prepress Setup Once you go into the Prepress Setup screen, uStore will connect to the workflow providers to get the list of available flows (this also happens when going to the Orders screen, and there is no indication there for this process). After synchronizing, there should be a message saying: "Synchronization completed successfully". When going to “Add workflows”, you should see the full list of flows, including those from the Switch server that was defined during system set up. #### Issue 1: Synchronization failed **Symptoms:** Symptom 1: You see the message: "Synchronization completed, some of the prepress providers failed." Symptom 2: You don't see the Switch workflow provider with any flow. **Possible causes:** - The workflow provider does not have the correct Provider Type selected. It should be “Enfocus Switch”. - The URL fields are not in the correct format. It should be:**http://address:port For example: http://10.1.1.55:51088 - The gateway URL can't be accessed from the uStore server over the specified port. - The global configuration keys contain incorrect credentials. Troubleshooting Steps:** - Check and select “Enfocus Switch” as the Provider Type. - Verify the URL format includes a colon “:” between address and port. - Open a browser from inside the uStore server, and try accessing the gateway URL address that is defined in uStore. You should get an error page with “Cannot GET /”. - Check ports definition in Switch, under “Edit > Preferences > Web Services”. - Ensure credentials are correct, including case sensitivity and no extra spaces. - Log into the admin interface in Switch using the credentials that are defined in uStore. #### Issue 2: Partial list of flows **Symptom:** Only some of the flows are showing, and not all of them. **Possible causes:** The missing flows are not active. **Troubleshooting Steps:** In Switch, check that the missing flows are active, and that they are not stopped. ### 3. Create a Switch flow The only recommendation here, is to name the flow starting with “uStore”. Flows that start with the string “uStore” appear at the top of the list of flows in uStore. ### 4. Switch: Add uStore App to Switch Flows and Set It Up Get the XMPie uStore app from the Enfocus App Store:**https://www0.enfocus.com/en/appstore/product/xmpie-ustore Follow the standard installation process for apps in Switch. You may need to restart your Switch server, for the app to appear. Once the app is visible in Switch, you should be able to see it when you right-click, under “Add > Apps > uStore”: Add the uStore app twice into the Switch flow: - At the beginning of the flow, with action "Receive Order". - At the end of the flow, with the action "Send Status To uStore". #### Extract XML data Steps: - Add the action to the flow. - Set up the “Dataset name”. - Connect to a folder. - Set the connection to the type of job “Log”. To extract the received JDF or order details XML data, add the “Export Metadata” action, by right-clicking and going into “Add > Metadata > Export Metadata”: To get the XML details in a file, enter in the “Dataset name” field the following value: - For JDF, use the value: uStoreJdf - For order details, use the value: uStoreOrderDetailsXml Create a connection from the action to a folder, and then click on the connection and change the value of the field “Carry this type of jobs” to “Log”. This is an example of a simple fully-functioning flow, that includes exporting the metadata of the order details XML: ### 5. uStore: Create an Order with Prepress When processing orders through the order queues, if a workflow is defined, the order will pass through uStore's prepress workflow order queues. - When items are in the “Ready for Preress” queue, administrators can manually or automatically send items to the workflow. - uStore sends JDF to Switch. In this stage, the order in uStore will wait in the “Prepress in Progress” queue. ### 6. Switch Starts the Flow Using the uStore App Once you create an order that has prepress set up with the Switch flow, you should see the output file appear in the first folder, and other files according to your flow. #### Issue 1: No output file available Symptom:** The output file should be available in the first folder that is connected to the uStore app, but it does not appear in that folder. **Possible causes:** - The uStore app is not set up to get the output file. - There's more than one uStore app with the action “Receive order”. - The uStore app that sends status back to uStore is set to perform cleanup of the received files (delete the files) once the flow is complete, and the flow was completed. - The Switch server does not allow incoming communication from the uStore server, so the flow never started. - The uStore server does not allow incoming communication from the Switch server, so the Switch server can't retrieve the output file. - The uStore Mall settings specify “uStore Server IP” address that the Switch server either cannot access or cannot resolve. - Temporary downtime or network issue. **Troubleshooting Steps:** - Check the uStore app, to have the option “Get Output File” set to Yes. - Make sure there's only one uStore app with the action “Receive order”. The uStore app with this action creates the webhook when the flow is being activated, so there can be only one such app. - Check the uStore app that sends status back to uStore. See that the option “Clean Up File Received from uStore” set to No. You can change the setting back to Yes, once you are done with troubleshooting the flow. - Make sure that the Switch server allows traffic from the uStore server address. Check the network logs. - Check that “Presets > System Setup > Mall > uStore Server IP” is set up to an address that the Switch server can access and can resolve. If the address can't be resolved, then enter a resolvable address in the uStore app, under the option “Custom uStore URL”. - Add retry on error, using an app such as “RetryIt”, that can be found in the Enfocus App Store. This will allow you to rule out temporary issues, such as downtime for maintenance or intermittent network issues. #### Issue 2: No Order Details or JDF data **Symptom:** In the first folder that is connected to the uStore app, there's only the output file, without any XML data. **Possible causes:** - The uStore app was not set up to retrieve order details. - The XML data is a part of the metadata, and it needs to be extracted using a dedicated action. **Troubleshooting Steps:** - Set up the uStore app to retrieve order details. Set the option “Get Order Details” to Yes. - Set up an “Export metadata” action in your flow. Refer to the section “Extract XML data” in this document. ## General Troubleshooting ### 1. Versions Compatibility Before anything else, check that the versions are compatible with the integration: - uStore version 25.3 and above - Switch version 25.07 and above ### 2. Verify Workflow Provider Setup **Steps:** - In Mall settings, the setting “uStore Server IP” must have an address that is accessible by the Switch installation. - Open uStore Admin and navigate to Workflow Providers. - Ensure Enfocus Switch provider is created. - Check configuration options: address and port of Switch interfaces should be accessible from the uStore server. - Global configuration keys should have valid Switch user values in them. - Go into a product and into the Prepress Setup: - See that there's at least a single workflow. - Let the sync complete and open the “Add workflows” option to see that the list is complete. ### 3. Check Order Transmission **Steps:** - Confirm orders are being sent from uStore to Switch. For full details, verify OrderDetails XML and output file links in JDF payload. If the options to send the files are selected in the Switch app, then the files should appear in the output folder. **Common Errors**: - Error: Missing output file or OrderDetails XML – make sure to enable the output file and order details actions in the uStore app in Switch. - Error: Payload incomplete – Check webhook configuration. The following is an example of a problem, in which the app is defined to get the files but nothing appears in the folder. This is a result in a failure to transfer the JDF file to Switch: ### 4. Authentication and Security **Steps:** - Verify HTTPS and basic authentication are enabled on both uStore and Switch servers. - Ensure Switch user credentials are stored securely and encrypted in the global configuration keys:**EnfocusSwitchUser EnfocusSwitchPassword - Try to access the Switch admin interface using these credentials. ### 5. Common Issues and Performance Steps:** - Monitor job volume and Switch performance. - Consider license adjustments for parallel processing if delays occur. ### 6. JDF Creation and Contents **Steps:** - Check that a JDF file is being created. Location:**X:\XMPie\uStore\App\uStoreShared\JDF - In the JDF file, check that both of the following fields exist: **And: - Regarding the above URL: - Verify that the address is the one that is set for the uStore server in the uStore Mall settings. - Copy the **full** URL addresses to the Switch server, and check that they work from within the Switch server. ## High-Level Technical Information It's helpful to understand the basic scenarios where issues may occur in the uStore/Switch integration. There are two main stages to consider: - **Flow synchronization (using the Switch API)** - This is the process that retrieves the full list of flows from Switch. This happens when accessing the Orders* tab or the *Product Prepress* page. - **Flow communication (using the Switch webhook and orderStatus JMF request back to uStore)** - This occurs during the actual prepress process. ### Log Files **uStore side** - Location: XMPLogs\uStore\AdminApp - Relevant for: Flow synchronization and communication with Switch **Switch side** - Location: *Messages* tab in the Switch interface - Features: Filtering, export options, and detailed messages useful for troubleshooting integration issues ### uStore Log Details **Flow Synchronization** - **Positive case:** **GetPrepressWorkflows. Enfocus Switch 'Flows - List' REST API response: - Negative cases:** - **Login failure:** **Error on Enfocus Switch login request Action:** Ensure the Switch server is running, confirm Switch provider URL and port accessibility, and verify login credentials (EnfocusSwitchUser, EnfocusSwitchPassword in Global Config). - **Flows list API error:** **SyncuStoreDB failed to get workflow lists. Action:** Check that the Switch server is running and confirm the Switch user has sufficient permissions to call the “list flows” REST API. Flow Communication - **Positive case:** - SubmitJDF Webhook Enfocus Switch request {requestUrl}, response: {result} - JMFGateWay Signal Received : - **Negative cases:** **Webhook error response:** **HTTP request {requestUrl}, statusCode: {response.StatusCode}, result: {result} Action:** Investigate based on the status code and result. Possible causes: - Switch server is offline → turn it on - Required Switch flow is stopped → start it - Error during callback → review Switch logs - **Authorization error when sending order status back to uStore:** **JMFResponseHandler. Authorization error Action:** This usually indicates an invalid secure query string. Treat as a potential intrusion attempt (e.g., someone sending an invalid URL). In case of escalations, R&D will require logs from the Switch side. To provide these: - Open the *Messages* tab in Switch Designer - Use the gear icon → **Export** to save logs ### Webhook Behavior and User Configuration In general, no action is required, the webhook works out of the box. However, users may choose to override some default options in the uStore app. * **Example:** - A user can set a Custom uStore URL* to replace the default base URL that appears in the webhook request data. - If this is done, it must be configured in **both** app elements: - Receive Order - Send Status To uStore ### Important Considerations - **Webhook creation:** - The uStore app with **Action = Receive Order** automatically creates the webhook during the *flow start* event. - For this reason, there must be **only one** *Receive Order* app in a flow. - Multiple *Send Status To uStore* apps can be included in the same flow. - **Dataset names:** - In the first version of the app, dataset names are hardcoded: JDF → uStoreJdf - Order details XML → uStoreOrderDetailsXml - Customers may need to reference these datasets in their flows. - **Accessing output files as jobs:** - If a customer needs to access the output file as a job, they should use the **Job Dismantler** app to extract it from the job folder. ### More info - Confirm that the Switch server address and port are accessible from the uStore server, and vice versa. - To check the Switch port and protocol, go to: **Edit → Preferences → Web Services**. ### Verification steps - Ensure the Switch server address and port are entered in the correct format within uStore. - Add the Switch username and password in the **Global Configurations**. - On the Switch side, confirm that a webhook is available.   Created by Dotan Mazor on February, 2026 ### Security & Support # Security & Support #### uStore Security Features # uStore Security Features **Summary**: This article describes uStore security features. ## Overview uStore is an e-commerce platform offering web-2-print and VDP capabilities. Storefronts based on uStore are exposed to the world wide web and are publicly available. uStore Storefront customers enter their credentials, billing information and other sensitive details in the store, as well as upload their documents, images, mailing lists and other files which might contain sensitive information. The separation between stores is not physical on the database level. There is application separation between store entities, according to their linked IDs. Therefore, uStore must offer a secure and safe environment. This article describes uStore security features. ## Setting security options (SSL) SSL (Secure Sockets Layer) is used to ensure that information added to uStore is secure. You need to install and configure SSL to be able to use the secure options. In the **Security Options (SSL)** section, specify how to use the SSL protocol to secure the information users enter into your online stores (for example, login or payment details). Securing uStore using SSL requires one of the following certificates, depending on the number of domains you want to secure: - A regular SSL certificate – secures a single domain. This certificate is useful for securing a single store, or several stores that share the same domain name, but differ by their sub-folder name. - A Multi Domain SSL certificate – secures multiple domains. This certificate is useful for securing several stores that have different domain names (friendly URLs). Once you have installed and configured SSL on your website’s Internet Information Server (IIS), you can configure it in uStore by choosing one of the options below. **Note:**  When a Proxy server is used in front of an application server and all connections coming from the web to the uStore server are routed through the Proxy server, the SSL certificate must be installed on both uStore and Proxy servers. To set security options: In the **Security Options (SSL)** section (Store Setting > Set Up Store > Advanced tab), select one of the following options: - **Not Secured** - if you do not want the store to be secured by SSL. This option is useful while you are working offline and are in the process of setting up the store. Once you make the store available online, make sure you change this setting to **Secure All**. - **Secure All** - to secure all pages in this store. This configuration may slow down the page loading. **Important!** The system does not support having both secured and non-secured stores on the same domain/sub-domain. If you have both secured and non-secured stores on the same domain/sub-domain, please change the non-secured ones to be secured (or vice versa, although not recommended), or shoppers may have a problem accessing them. ## Users uStore has an enhanced authentication and permissions mechanism, which makes sure that customers can only log in to stores they are allowed to. Moreover, it is possible to restrict customers to certain products or product groups, and to deny customers from checking out orders. ### Registration uStore registration mechanism has a CAPTCHA feature which can be enabled on the store level to make sure only human customers register to the store. uStore also has an activation feature, which can be enabled for a store in order to make sure customers register using a real email address, and one that they really have access to. It is also possible to integrate a custom registration page, in which uStore customers can implement their own UI and logic for customer registration. Registration settings are configured in **Store Setting > Set Up Store > General** tab: ## Passwords uStore has a password policy feature, which can be enabled on the store level and can enforce the following: - A certain password format, defined mainly by minimum and maximum number of characters of different types. - Passwords can expire after a certain number of days. - An account can be locked out after a certain number of login attempts, and can be unlocked after a certain amount of time. Password policy settings are configured in **Back****Office** > **Store Setup > Permissions** tab: ## Sender address in triggered emails When creating an email trigger, you are required to enter a **Sender Address**. This is the email address that appears in the **From** field of the received email. Make sure you use a genuine email address, but one that is **not** used for logging into the system. ## SQL injection Websites that store or process data will usually use some sort of Structured Query Language (SQL) database as a back end repository. This database can be used to store anything from product and customer information to usernames and passwords. Copying user input into the SQL database query string and executing that query can lead to SQL injection vulnerabilities. SQL injection vulnerabilities can allow cyber-criminals to collect sensitive information stored in the database and to completely take over the vulnerable system. uStore uses a common technique, known as “parameterized queries” (or “prepared statements”), in order to cope with the risk of SQL injection. The implementation of parameterized queries is documented on the OWASP website (). This technique is used in queries made internally by uStore, as well as in queries that can be configured by uStore administrators for some advanced features offered by uStore. ## Cross-site scripting Cross-site scripting is a security vulnerability which enables a cyber-criminal to execute client side script, which might be harmful. Cross-site scripting is prevented by default by the ASP.NET platform on which uStore is based. However, in some cases, cross-site scripting is enabled in uStore Back Office by design. In those cases, uStore administrators may enter HTML and JavaScript code for particular fields. By doing so, a uStore administrator can customize the Product Details page with anything HTML and JavaScript has to offer. Please keep in mind that the Back Office should not be publicly available, and that cross-site scripting is not possible from the Storefront, so security is maintained. Example: Back Office: Product Details Step Configuration Storefront: Product Details Step ## Cross-site framing Cross-site framing means that a web page can be embedded in a frame by another page. It is considered a security vulnerability as a cyber-criminal can exploit it in order to replicate the look and feel of a page, and in fact create a phishing site in which sensitive information can be retrieved from victims. Cross-site framing is enabled in uStore by design. It enables uStore customers to embed uStore in their website, for example, as a Facebook application. Cross-site framing is not high risk vulnerability and can be prevented by uStore customers in a number of ways, if necessary. ## Cookies Cookies are used by web applications in order to keep information on the client side, and in order to keep the state of the connection to the server (known as session). A cyber-criminal obtaining a cookie may take over a user’s session and exploit it to retrieve sensitive information. uStore cookies are HTTP-Only cookies. HTTP-Only cookies can only be accessed from the server side, so a cyber-criminal obtaining such a cookie will not be able to exploit it. ## Files upload uStore enables customers to upload their images, recipient lists and documents. Such file uploads are restricted to certain file types, so a customer cannot upload malicious files. However, files uploaded to the server may contain viruses which may be harmful, so an anti-virus software should be installed on the uStore server. ## Harden the server against ClickJacking attacks Clickjacking is a malicious technique of tricking web users into revealing confidential information or taking control of a user’s computer while clicking on seemingly innocuous web pages. A click-jacked page tricks a user into performing undesired actions by clicking on a concealed link. On a click-jacked page, the attackers show a set of dummy buttons, and then load another page over it in a transparent layer. The users think that they are clicking the visible buttons, while they are actually performing actions on the hidden page. The hidden page may be an authentic page, and therefore the attackers can trick users into performing actions which the users never intended to do and there is no way of tracing such actions later, as the user was genuinely authenticated on the other page. ## Microsoft IIS tilde directory enumeration It is possible to detect short names of files and directories which have an 8.3 file naming scheme equivalent in Windows by using some vectors in several versions of Microsoft IIS. For instance, it is possible to detect all short-names of ".aspx" files as they have 4 letters in their extensions. Exploiting this vulnerability may cause the leakage of files containing sensitive information such as credentials, configuration files, maintenance scripts and other data. To handle this vulnerability: - Add a registry key named **NtfsDisable8dot3NameCreation** to HKLM\SYSTEM\CurrentControlSet\Control\FileSystem. Set the value of the key to **1** to mitigate all 8.3 name conventions on the server. - Open IIS Manager and click the default website. - Click the **Request Filtering** option. - Click the **URL** tab. - In the **Actions** panel on the right, select **Deny Sequence**. - Add **~**. ## SSL weak ciphers A weak cipher is defined as an encryption/decryption algorithm that uses a key of insufficient length. Using an insufficient length for a key in an encryption/decryption algorithm opens up the possibility (or probability) that the encryption scheme could be broken. It is advisable to disable weak ciphers. Ciphers that can be disabled. TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_AES_256_GCM_SHA384 TLS_RSA_WITH_AES_128_GCM_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA256 TLS_RSA_WITH_AES_128_CBC_SHA256 TLS_RSA_WITH_AES_256_CBC_SHA TLS_RSA_WITH_AES_128_CBC_SHA TLS_RSA_WITH_3DES_EDE_CBC_SHA ### Additional information Learn: - Manage SSL/TLS protocols and cipher suites for AD FS - Setup Microsoft Windows or IIS for SSL Perfect Forward Secrecy and TLS 1.2 Execute: - This tool may help you with Disabling weak cyphers (use at own discretion!) Test: - Test your site's ciphers using the SSL server test - SSL server test (use to test your site's ciphers) ## Server banner disclosure The application was found to disclose server information about the server software in use. Information disclosure is a common and prevalent vulnerability in applications. The disclosure of sensitive information either directly or implicitly through application behavior, may aid an attacker with information gathering or profiling, and determining or establishing other vectors of attack against the application or host. ### Using a proxy server When using a proxy server you might still have “Server“ and “X-Powered-By“ headers. In such a case, you can configure IIS on the proxy machine to remove them. - On IIS, click the root node of the proxy server. - Click the configuration editor icon. - Search under the Sections field for: system.webServer > httpProtocol- - Click the 3 dots on the value of key: customHeaders - Window opens. Search for the value X-powere-by, click it and click Delete. - Click Apply. - Search under the Sections field for: system.webServer > security > requestFiltering - Search for key “removeServerHeader” and set it to True. - Click Apply. ## Misconfigured CORS The HTML5 cross-origin resource sharing policy controls whether and how content running on other domains can perform two-way interaction with the domain which publishes the policy. The policy is fine-grained and can apply access controls per-request based on the URL and other features of the request. If another domain is allowed by the policy, then that domain can potentially attack users of the application. If a user is logged in to the application, and visits a domain allowed by the policy, then any malicious content running on that domain can potentially retrieve content from the application, and sometimes carry out actions within the security context of the logged in user. Even if an allowed domain is not overtly malicious in itself, security vulnerabilities within that domain could potentially be leveraged by a third-party attacker to exploit the trust relationship and attack the application which allows access. ## Missing Security Headers (HTTP) HTTP headers are used by the client and web server to share information as part of the HTTP protocol. When a URL entered in the address bar of the browser or clicked on any link, the web browser sends a HTTP request containing client headers while the HTTP response contains server headers. Some HTTP headers which are used against common vulnerabilities like Cross-site Scripting, Session Hijacking, Frameable Response (Clickjacking) are called security headers. Missing security headers may increase the risk of exploitation of those vulnerabilities, if they exist in your application. Apply these steps on the uStore application server and/or proxy server: - Open IIS. - Choose HTTP Response Headers. - Add the name and value for requested headers – see table below. | Name | Value | Comments | | --- | --- | --- | | Strict-Transport-Security | max-age=31536000 ; includeSubDomains; preload | | | X-Content-Type-Options | nosniff | Apply only to the proxy server (installed by default on the uStore application server). | | Feature-Policy | camera 'none'; speaker 'none' | | | X-XSS-Protection | 1;mode=block | Apply only to the proxy server (installed by default on the uStore application server). | ## Antivirus Protection It is highly recommended that on-premise customers install and enable antivirus scanning on their machine to enhance security.     Created by: Ben Pelkinson, last updated by Mohammad Mansour: December, 2024 #### XMPie Circle Security # XMPie Circle Security **Summary**: This article describes the security measures implemented in Circle. The following security measures have been taken: ## Security audit and procedures - Circle is part of XMPie's SOC 2 adoption over ISO27001. For more details, see SOC 2 and ISO 27001. - XMPie maintains a risk-based assessment security program. The Secure Software Development Life Cycle (Secure SDLC) process is one of the cornerstones of XMPie security program. For more details, see Security by Design. - Periodic penetration tests are performed by independent security teams. - Circle is based on Amazon Web Services (AWS) infrastructure and services, which are PCI Level1 compliant. For further information, see https://aws.amazon.com/security/. - All communication is done using Transport Layer Security (TLS 1.2 is the successor of SSL). - Web Application Firewall (WAF) – Circle utilizes Imperva WAF (Web Application Firewall) to provide an additional layer of protection for web applications. Imperva WAF protects against common web-based attacks and OWASP Top 10 vulnerabilities including: - SQL injection attacks - Cross-site scripting (XSS) - Distributed Denial of Service (DDoS) attacks - Bot mitigation and automated threat prevention - Zero-day attack protection - API security and protection The WAF continuously monitors HTTP/HTTPS traffic between web applications and the internet, filtering out malicious requests and allowing legitimate traffic to pass through, ensuring application availability and data protection. - XMPie has restricted access to the AWS servers to several exclusive employees; access can be given only by XMPie. - The system is monitored 24/7 by the XMPie IT group. ## Personal Identifiable Information (PII) and privacy - Circle is fully compliant with General Data Protection Regulations (GDPR). For more details, refer to GDPR Guidelines for XMPie Products. - Personal Identifiable Information (PII) contained in the data source is passed to the cloud in several cases: - Production and processing purposes. All information is deleted shortly after usage, according to GDPR requirements. Examples: Circle Analytics list reports and email mass production. - User-selected sample recipients, used for preview options. Since the details of sample recipients are stored on the cloud, for security reasons fake sample recipients only should be used. - Cloud Tracking events are distributed to the Circle Cloud for event-filtering and analytic purposes, but do not contain any recipient information short of the recipient key. - In all other cases, all ADOR information is stripped out before leaving the LAN. - A multi-tenant security methodology that isolates customers is used, enforced by our Data Access Layer (DAL) and database structure. - Each of the cloud servers is isolated in separate security groups, virtually creating a firewall between each component of the system. ## Data backup and retention The following describes Circle’s data backup and retention practices: - Hourly backups with point-in-time recovery - Data is retained for a period of 35 days - Backups are additionally replicated to a secondary geographic region (Paris) and retained there for one month ## Architecture and system policies - The on-premises administrator selectively picks which Circle subscription should have access to uProduce, others are firewalled out.  - Uninstalling the Circle Agent (located on the premises) blocks all communication between the Circle cloud and uProduce. - No inbound communication port needs to be opened in the on-premise firewall. Only outbound port 443 is used, which is commonly open in firewalls. If you wish to open outbound port 443 to specific hosts only, use these addresses: - eu.xmcircle.com - eu-west-1.queue.amazonaws.com - swf.eu-west-1.amazonaws.com - Role-based security is used for subscription users as well as for internal XMPie cloud administrators. - Passwords are enforced by password policy. - Sessions and tokens are time bound.   Created by: Yaron Tomer, updated by Nahum Cohen on January, 2026 #### XMPie Email Service Security # XMPie Email Service Security In order to use XMPie Email Service (XES) delivery providers, HTTPS port 443 must be enabled outbound. If you wish to open outbound port 443 to specific hosts only, use these addresses: - iam.amazonaws.com - email.us-east-1.amazonaws.com - firehose.us-east-1.amazonaws.com - sqs.us-east-1.amazonaws.com - sns.us-east-1.amazonaws.com - sdb.amazonaws.com, s3.amazonaws.com - s3-external-1.amazonaws.com - s3.dualstack.us-east-1.amazonaws.com   Created by: Mohammad Mansour on February, 2025 #### Security by Design # Security by Design **Summary**: This article describes XMPie’s Secure Software Development Life Cycle (Secure SDLC) principles. ## Overview As context, XMPie maintains a risk-based assessment security program. The Secure Software Development Life Cycle (Secure SDLC) process is one of the cornerstones of XMPie security program. The framework for XMPie's security program includes administrative, technical, and physical safeguards reasonably designed to protect confidentiality, integrity, and availability. XMPie's security framework covers Policies and Procedures, Asset Management, Access Management, Cryptography, Physical Security, Operations Security, Communications Security, Business Continuity Security, People Security, Product Security (Secure SDLC), Cloud and Network Infrastructure Security, Security Compliance, Third-Party Security, Vulnerability Management, as well as Security Monitoring and Incident Response. Security is represented at the highest levels of the company, with XMPie's Vice President/General Manager meeting with executive management regularly to discuss issues and coordinate security initiatives. Information security policies and standards are reviewed and approved by Xerox management at least annually and are made available to all XMPie employees for their reference. ## Security by Design The XMPie Software Development Lifecycle (SDL) process is the method by which XMPie creates secure products and defines the activities that the product teams must perform at different stages of development (requirements, design, implementation, and deployment). XMPie engineers perform numerous security activities for the services including: - Internal security reviews before products are launched. - Periodic penetration tests performed by independent security teams. - Architecture reviews. - Implementation of Secure Software Development Life Cycle (Secure SDLC). Secure SDLC is a software engineering culture that unifies software development, deployment, security, and operations by performing the following: - Static Application Security Testing (SAST) - Analyzes source code to identify vulnerabilities in applications before the applications are compiled or deployed. - Dynamic Application Security Testing (DAST) - Identifies vulnerabilities and applications in (web) applications while they are running. - Software Composition Analysis (SCA) - Set of tools and practices that enables identification and management of third-party and open-source components in software applications that helps identify and mitigate security vulnerabilities in these components. SCA also uncovers licensing issues of the components. XMPie is a Xerox company. Therefore, the Xerox policies and procedures apply to XMPie. Read more about Xerox compliance in the following pages: - https://www.xerox.com/en-us/about/security-compliance - https://trust.corp.xerox.com/   Created by: Nahum Cohen on February 2024 #### SOC 2 and ISO 27001 # SOC 2 and ISO 27001 **Summary:** This article addresses XMPie's SOC 2® adoption over ISO27001. The SOC 2 audit testing framework is based on the Trust Services Criteria (TSC), which are used to identify various risks (points of focus) an organization should consider addressing. Based on the TSCs the organization selects to be in scope, the third-party compliance and audit firm evaluates whether the organization has the appropriate policies, procedures, and controls to manage the identified risks effectively. Over the past years, an increasing number of companies in Europe have required SOC 2 reports so they can determine whether service providers have the necessary controls in place along the supply chain to protect the data of all parties involved. The SOC 2 report is more in-depth than an ISO 27001 certificate. With the result of a SOC 2 assessment being an extensive attestation report up to 150+ pages in length, it tends to give a company’s partners and clients a higher level of detail about their security posture compared to the result of an ISO 27001 audit, which is simply a one-page certification letter. This is one of the leading reasons why the cybersecurity compliance norm in Europe is beginning to welcome SOC 2 as an excellent supplemental security framework. XMPie cultivates a culture of security by design. Secure Software Development Life Cycle (Secure SDLC) is a software engineering culture that unifies software development, deployment, security, and operations. XMPie successfully completed SOC 2 assessment for data security excellence. For more information, click here.   Created by: Nahum Cohen on December 2024 #### XMPie Standard Support Policy # XMPie Standard Support Policy ## Introduction XMPie is committed to providing the highest level of support for all of our products through an annual maintenance and support plan. The following document will cover the details of this plan to help users better understand what is covered and to get the most value out of this agreement. ## Overview The main benefits of the maintenance and support plan are access to expertise when requiring assistance with an XMPie software product, and receiving software upgrades for no additional charge.  XMPie’s highly experienced support personnel are top-of-the-line professionals with deep knowledge of our software and a direct line to Research and Development when necessary.  In addition to accessing our expertise, a software maintenance program from XMPie includes free access to product upgrades, getting you all of the latest and greatest features and capabilities of the specific products you own. ## Contacting Support Support Portal: http://www.xmpie.com/support Email: support@xmpie.com Our Support team is available to assist you during the following times in our service zones: - **Americas:** Monday through Friday 9:00 a.m. to 5:00 p.m. Central Time (excluding U.S. and corporate holidays) - **EMEA:** Monday through Friday 9:00 a.m. to 5:00 p.m. CET (excluding corporate holidays) - **APAC:** Monday through Friday from 9:00 a.m. to 5:00 p.m. Australian Eastern Standard Time (excluding corporate holidays) Via the Support Portal, customers can browse the "Solutions" section to see if there is a solution that might answer their question. Each time an issue is resolved, the case and its solution remain viewable to customers so that they may review it in the future should a similar question arise. If customers do not find the answer to their question in the Solutions section, they can log a support case without having to leave the portal. As soon as a case is opened, the Support department is automatically notified. One benefit of logging a case through the portal is that customers can track the progress of their case, see who is working on it, and read comments about it. ## Support Cases Upon reporting an issue to Support, customers are provided with a unique case number that corresponds to the specific issue. In addition, cases are assigned a severity of Low, Medium, High or Critical based on the following severity definitions: ### Severity 1 (Critical) Defined as a “catastrophic problem," wherein the customer's system is down and/or has no production capability. There is a significant and ongoing interruption to the customer's business, or there is an unrecoverable loss or corruption of data. No reasonable circumvention is available. ### Severity 2 (High) Defined as a "severe problem," wherein the customer's system is up, but production capability is seriously degraded. The system has a problem, defect or malfunction, such that the system is not working or is malfunctioning in a manner that restricts the customer's use of the system. ### Severity 3 (Medium) Defined as a "moderate problem," wherein the customer's system is up, but production capability is reduced. The system has a problem, defect or malfunction where the system is not functioning as specified in the documentation and is causing a minor impact on the customer's use of the system. A system update, including, without limitation, an acceptable circumvention or workaround, is available to the customer. ### Severity 4 (Low) Defined as a "minor problem," wherein the Customer's system is up with no significant impact to production.   **Note:** XMPie Support personnel reserve the right to reassign case severity; however, business impact will be taken into account and prioritized accordingly. ## Response Times XMPie Support strives to provide all customers with the best possible response and resolution times. To do so, cases are prioritized by their severity (see previous section) and are given goal times reflecting this. XMPie shall use reasonable efforts to: Acknowledge receipt of a case within the time allotted ("Response Time Goal"); Provide a short status of the solution process within the time allotted ("Status Update Goal"); and Solve* the case by providing a case resolution within the time allotted ("Resolution Goal").   *Each party acknowledges that despite XMPie’s reasonable efforts, not all problems may be solvable. | Severity | Response Time Goal | Status Update Goal | Resolution Goal | | --- | --- | --- | --- | | 1 – Critical | 4 business hours | 4 business hours | 2 business days | | 2 – High | 4 business hours | 1 business day | 4 business days | | 3 – Medium | 8 business hours | 2 business days | 10 business days | | 4 – Low | 8 business hours | 5 business days | 20 business days | Processing time starts upon receipt of a Service Request. Requests open after hours and weekends will roll into the next open business day. The Response Time Goal, Status Update Goal, and Resolution Goal are guidelines that provide no guarantee or warranty of the objective described therein. If an issue requires XMPie R&D assistance, then they will be available during their normal business hours on Sunday through Thursday from 7 am to 3 pm (UTC). ## Software Updates XMPie customers with a current maintenance program receive, free of charge, all updates, upgrades, bug fixes, and patches to their purchased software products as they are released by XMPie. Arranging installation of updates, upgrades, bug fixes, and patches is the customer’s responsibility. Bug fixes for severe problems are provided as soon as they are available for the current release, and if the current release is less than six months old, the immediately prior release. ## Upgrade Recommendation XMPie strongly recommends first performing all server upgrades (including uProduce and uStore) on a self-contained test or development server before doing so in a live production environment. With advancements in both XMPie and Adobe capabilities, there will be changes, some of which may perform differently in a customer environment than in our QA testing servers. Additionally, customer campaign designs and resources can vary significantly, so it is best practice to verify all campaigns before going into live production. Customers who upgrade and run live production work without first thoroughly testing are doing so at their own risk and will be asked to acknowledge in writing that they are taking full responsibility for any issues that arise during or after the upgrade. If a customer does not have a separate Test / Development Server, we will involve an XMPie account representative to provide more information. ## Customer Obligations The customer agrees that the software will be operated only by personnel who have been properly trained by XMPie. Additional training may be purchased at any time by contacting an XMPie account representative. The customer must provide remote access connection to computers and servers running XMPie software to permit XMPie to remotely diagnose and troubleshoot the reported problem. ## Terms Access to XMPie services, including Circle, is subject to a good-standing Maintenance and Support agreement. Maintenance and Support (M&S) is available for one year from the date of software shipment unless otherwise noted or excluded. The customer shall purchase M&S for each year of software licensing. The M&S fee is defined in the Purchase Order; it is generally calculated as a percentage of the list price of the purchased software configuration, or, if relevant, of added components to a configuration. The M&S Fee is nonrefundable, and is payable each year in advance. A customer who chooses not to pay the M&S fee is not covered. The only services such a customer can receive are bug fixes that XMPie may release for the version they purchased, or if the version purchased is less than six months old, the immediately prior release. XMPie reserves the right to fulfill any or all of its service commitments by the use of subcontractors, business partners, or others as it may see fit.   Created by: Clint Cagle, updated on December 2024 #### XMPie Premium Support Policy # XMPie Premium Support Policy ## Introduction Our premium support offering provides 24/7 access to a dedicated team of XMPie support professionals 24 hours a day, 7 days a week and 358 days per year. ## Overview | Support Plan | Hours of Operation | Support Portal | Priority Case Handling | | --- | --- | --- | --- | | Standard Business Hours Mon - Fri 9 AM to 5 PM central | 24x7 (excluding holidays) | | Standard | ✓ | | ✓ | | | Premium | ✓ | ✓ | ✓ | ✓ | ## Contacting Support There are two ways to contact support to open a support case: - Support Portal: https://www.xmpie.com/support/ - Email: support@xmpie.com. Each case will be assigned a unique case number which is sent to you via automatic email reply. In addition, case comments are viewable from the support portal. ## Published Holidays Annual holidays with no coverage: | Date | Holiday | | --- | --- | | January 1 | New Year's Day | | March/April* | Easter Friday | | May 1 | International Labor Day | | September 15 | Off‑Shore Independence Day | | October* | Off‑Shore Armed Forces Day | | December 25 | Christmas Day | *Date varies each year ## Support Cases Upon reporting an issue to Support, customers are provided with a unique case number that corresponds to the specific issue. In addition, cases are assigned a severity of Critical, High, Medium or Low based on the following severity definitions: ### Severity 1 (Critical) Defined as a "catastrophic problem," where the customer's system is down and/or has no production capability. There is a significant and ongoing interruption to the customer's business, or there is an unrecoverable loss or corruption of data. No reasonable circumvention is available. ### Severity 2 (High) Defined as a "severe problem," where the customer's system is up, but production capability is seriously degraded. The system has a problem, defect or malfunction, such that the system is not working or is malfunctioning in a manner that restricts the customer's use of the system. ### Severity 3 (Medium) Defined as a "moderate problem," where the customer's system is up, but production capability is reduced. The system has a problem, defect or malfunction where the system is not functioning as specified in the documentation and is causing a minor impact on the customer's use of the system. A system update, including, without limitation, an acceptable circumvention or workaround, is available to the customer. ### Severity 4 (Low) Defined as a "minor problem," where the customer's system is up with no significant impact to production. **Note:** XMPie Support personnel reserve the right to reassign case severity; however, business impact will be considered and prioritized accordingly. ## Response Times XMPie Support strives to provide all customers with the best possible response and resolution times. Cases are prioritized by their severity (see previous section) and are given goal times reflecting this. XMPie shall use reasonable efforts to: - Acknowledge receipt of a case within the time allotted (“Response Time Goal”); - Provide a short status of the solution process within the time allotted (“Status Update Goal”); and - Solve* the case by providing a case resolution within the time allotted (“Resolution Goal”). | Severity | Response Time Goal | Status Update Goal | Resolution Goal | | --- | --- | --- | --- | | 1 – Critical | 2 hours | 2 hours | 36 hours | | 2 – High | 4 hours | 24 hours | 4 days | | 3 – Medium | 8 hours | 48 hours | 10 days | | 4 – Low | 8 hours | 120 hours | 20 days | * Each party acknowledges that despite XMPie’s reasonable efforts, not all problems may be solvable. If an issue requires XMPie R&D assistance, then they will be available during their normal business hours on Sunday through Thursday from 7 am to 3 pm (UTC). The Response Time Goal, Status Update Goal, and Resolution Goal are guidelines that provide no guarantee or warranty of the objective described therein. ## Customer Obligations The customer agrees that the software will be operated only by personnel who have been properly trained by XMPie. Additional training may be purchased at any time by contacting an XMPie account representative. The customer must provide remote access connection to computers and servers running XMPie software to permit XMPie to remotely diagnose and troubleshoot the reported problem. ## Terms Maintenance and Support (M&S) is available for one year from the date of software shipment unless otherwise noted or excluded. The customer shall purchase M&S for each year of software licensing. The M&S fee is defined in the Purchase Order; it is generally calculated as a percentage of the list price of the purchased software configuration, or, if relevant, of added components to a configuration. The M&S Fee is nonrefundable and is payable each year in advance. A customer who chooses not to pay the M&S fee is not covered. The only services such a customer can receive are bug fixes that XMPie may release for the version they purchased, or if the version purchased is less than six months old, the immediately prior release. Customers who choose to reinstate expired M&S are subject to company policies. XMPie reserves the right to fulfill any or all of its service commitments by the use of subcontractors, business partners, or others as it may see fit.   Last updated on January 2026 #### StoreFlow Cloud Security and Availability # StoreFlow Cloud Security and Availability **Summary:** This article provides information on the StoreFlow Cloud service hosted on Amazon Web Service environment. ## Overview XMPie StoreFlow Cloud is a turn-key solution for print service providers managing Web-to-print sites and marketing portals. StoreFlow merges XMPie’s powerful Web-to-print capabilities with flexible pre-press automation to provide a complete, out-of-the-box solution with an end-to-end workflow for receiving, processing and producing orders received online.   StoreFlow Cloud is hosted in Amazon Web Services (AWS). Amazon Web Services (AWS) is a cloud computing platform that provides a suite of infrastructure services.   The usage of AWS cloud provides a highly reliable and secured infrastructure for deploying StoreFlow as a web-based application. ## Infrastructure Amazon Web Services (AWS) provide a reliable, secure, and highly performing infrastructure for the most demanding web applications, an infrastructure that matches XMPie StoreFlow solution. It also delivers a scalable cloud computing platform with high availability and dependability. AWS’s data centers are state of the art, utilizing innovative architectural and engineering approaches. ## StoreFlow Cloud Availability XMPie shall use all reasonable commercial efforts to achieve the target infrastructure availability goal of 99.95% uptime twenty-four hours per day, seven (7) days per week (“Service Commitment”) during the subscription term, except during times of system maintenance, as set forth in the table below. ## System Maintenance System Maintenance refers to any systems software or XMPie applications change or update that has the potential to result in an impact or reduction to the resiliency or functionality of the XMPie service.  System Maintenance types: - **Planned Maintenance:** Planned maintenance involves any activity where it is anticipated to have interruption to the operational functioning of the XMPie services during US business hours. XMPie will provide subscribers with at least one (1) week posted notification and e-mail notice prior to conducting any planned maintenance with information on the changes and expected downtime, unless the maintenance is performed outside of US business hours (for example, on Sunday).  - **Emergency Maintenance:** Emergency maintenance involves any activity where it may or may not be possible to anticipate an interruption to the operational functioning of the XMPie services during US business hours.  XMPie will use all reasonable efforts to provide e-mail notification at least twenty-four (24) hours in advance of any Emergency Maintenance, unless the maintenance is performed outside of US business hours (for example, on Sunday).    Maintenance notifications are published on https://status.xmpie.com ## RTO and RPO XMPie shall use all reasonable commercial efforts to ensure the resumption of operations affected by a disruption within 48 hours (Recovery Time Objective). The supplier will back up the service or systems related data on a daily basis (RPO). ## Security Measures XMPie maintains a risk-based assessment security program. The framework for XMPie's security program includes administrative, technical, and physical safeguards reasonably designed to protect the confidentiality, integrity, and availability of Customer Data.   XMPie's security framework covers: Policies and Procedures, Asset Management, Access Management, Cryptography, Physical Security, Operations Security, Communications Security, Business Continuity Security, People Security, Product Security, Cloud and Network Infrastructure Security, Security Compliance, Third-Party Security, Vulnerability Management, as well as Security Monitoring and Incident Response. Security is represented at the highest levels of the company, with XMPie's Vice President/General Manager meeting with executive management regularly to discuss issues and coordinate security initiatives. Information security policies and standards are reviewed and approved by Xerox management at least annually and are made available to all XMPie employees for their reference. - Tenant Isolation – Each StoreFlow customer is logically isolated   from other customers. **Information about AWS compliance is available here. - The physical security for StoreFlow is handled by the service provider (AWS). AWS has very rigorous security controls protecting its data centers. More details about the AWS data center's physical security are here. - StoreFlow solution supports SSL as a standard security for establishing encrypted connection between a web server and a client browser. - Security Group – Firewall - Amazon EC2 provides a complete firewall solution. Security groups provide firewall protection for the running instances. - Web Application Firewall (WAF) – StoreFlow Cloud utilizes Imperva WAF (Web Application Firewall) to provide an additional layer of protection for web applications. Imperva WAF protects against common web-based attacks and OWASP Top 10 vulnerabilities, including: - SQL injection attacks - Cross-site scripting (XSS) - Distributed Denial of Service (DDoS) attacks - Bot mitigation and automated threat prevention - Zero-day attack protection - API security and protection The WAF continuously monitors HTTP/HTTPS traffic between web applications and the internet, filtering out malicious requests and allowing legitimate traffic to pass through, ensuring application availability and data protection. - XMPie uses a Cloud Security Posture Management (CSPM) system to monitor our cloud service. This provides discovery and visibility into cloud infrastructure and resources, enables proactive detection of threats across the application development lifecycle, detects misconfiguration management, and continuous compliance monitoring. - DevSecOps integration - Employs cloud-native, agentless posture management to reduce overhead and eliminate friction and complexity. - Continuous compliance monitoring: Assesses the security of cloud accounts and eliminates compliance violations. - In addition, CrowdStrike Falcon (EDR) – a lightweight-agent AI-driven endpoint protection platform - offers real-time protection and visibility across the enterprise, preventing attacks on endpoints on or off the network. CrowdStrike Falcon (EDR) provides the following capabilities: - Endpoint Protection: CS Falcon offers real-time protection for endpoints, such as workstations, servers, and laptops. - Next-Generation Antivirus (NGAV). - Endpoint Detection and Response (EDR). - Managed Threat Hunting: CrowdStrike's threat hunting services offer proactive detection and response capabilities. - Cloud-Native Architecture. - For more information see Endpoint Detection And Response (EDR). - XMPie uses CIS Microsoft Windows Server Level 1 Hardened Image - a preconfigured image built by the Center for Internet Security (CIS) for use on Amazon Elastic Compute Cloud (Amazon EC2). It is built to offer an image secured to industry-recognized security guidance running on Amazon EC2. ## SOC 2® Type 2 Examination Successfully Completes SOC 2 Assessment for Data Security Excellence. SOC, which stands for System and Organizational Controls, is a framework developed by the American Institute of Certified Public Accountants (AICPA) for the purpose of providing regular, independent attestation of the controls that a company has implemented to mitigate information-related risk. A SOC 2 report addresses risks associated with the handling and access of data, and can be used by a variety of organizations of any size (e.g. SaaS, colocation, data hosting, etc.). Different from a cybersecurity assessment that evaluates specific technical configurations, a SOC 2 report focuses more on how an organization implements and manages controls to mitigate the identified risks to the different parts of an organization. The SOC 2 audit testing framework is based on the Trust Services Criteria (TSC), which are used to identify various risks (points of focus) an organization should consider addressing. Based on the TSCs the organization selects to be in scope, the third-party compliance and audit firm evaluates whether the organization has the appropriate policies, procedures, and controls in place to manage the identified risks effectively. In order to pass a SOC 2 examination and receive a letter of attestation successfully, it means an organization is addressing controls in areas such as information security, access control, vendor management, system backup, business continuity and disaster relief, and more. The scope of a SOC 2 examination extends beyond the systems that have a financial impact, reaching all systems and tools used in support of the organization’s system or services. For XMPie customers this means enhancing security confidence via certified independent verification. Request access to XMPie SOC 2 Type 2 report here. ## Security by Design The XMPie Software Development Lifecycle (SDL) process is the method by which XMPie creates secure products and defines the activities that the product teams must perform at different stages of development (requirements, design, implementation, and deployment). XMPie engineers perform numerous security activities for the Services including: - Internal security reviews before products are launched - Periodic penetration tests performed by independent security teams - Architecture reviews - Secure Software Development Life Cycle (Secure SDLC) is a software engineering culture to unify software development, deployment, security, and operations: - Static Application Security Testing (SAST) - Analyzes source code to identify vulnerabilities in applications before the applications are compiled or deployed. - Dynamic Application Security Testing (DAST) - Identifies vulnerabilities and applications in (web) applications while they are running. - Software Composition Analysis (SCA) - set of tools and practices that enables identification and management of third-party and open-source components in software applications that helps identify and mitigate security vulnerabilities in these components. SCA also uncovers licensing issues of the components. ## XMPie Architecture Depending on the service offering you choose, XMPie's flexible architecture can be tailored to meet your high availability requirements. Please contact our team to learn more about how we can customize the deployment to suit your needs. ### StoreFlow Private Cloud Standard Configuration ### Fault Tolerance Configuration ## Vulnerability Management XMPie maintains controls and policies to mitigate the risk from security vulnerabilities in a measurable time frame that balances risk and the business/operational requirements.   For the XMPie application software, critical software patches are evaluated, tested and applied proactively. For high-risk patches, XMPie will notify customers prior to the application of a patch. ### Security Monitoring with SIEM XMPie leverages SIEM using Cortex XSIAM for deeper visibility and faster threat detection. SIEM key capabilities: - Detection of Unusual Login Activity:** Identifying logins from unfamiliar IP addresses or at atypical times. - I**dentification of Unauthorized API Calls:** Recognizing attempts to access services or resources outside of normal usage patterns. - **Monitoring of Resource Changes:** Tracking the creation, modification, and deletion of AWS resources to ensure changes are authorized and secure. - **IAM Policy Analysis:** Reviewing IAM role and policy usage to uncover misconfigurations or potential vulnerabilities. - **Cross-Service Event Correlation:** Using CloudTrail as a central source to correlate events across AWS services, providing a comprehensive view of our security posture. ## Penetration Testing XMPie performs application-level penetration tests for major releases or at least once a year. These tests use a combination of manual and automated techniques that complement each other to comprehensively evaluate the security posture of the application against latest threats as well as best practices like OWASP TOP 10 and SANS Top 25. Results of penetration tests are prioritized, triaged and remediated promptly by XMPie’s security team. ## Backup and Recovery StoreFlow environment is fully backed-up by CPM (Cloud Protection Manager by N2W Software). The CPM is an enterprise-class backup and recovery solution for Amazon EC2 environment. The backup policy routine consists of daily snapshots. ## Operational Monitoring Licensee acknowledges that XMPie may request reasonable information from the licensee for the purpose of facilitating the use of StoreFlow cloud under the hosting service, and that certain applications may be used to retrieve information about StoreFlow cloud 's usage, to maintain compliance with the terms applicable to the use of the hosting service. XMPie uses Amazon CloudWatch - a monitoring and management service which enables application and infrastructure monitoring.  Amazon CloudWatch provides the following capabilities: - Enables to collect and store logs from resources, applications, and services in near real time. - Cross-account observability across multiple AWS accounts which helps monitor and troubleshoot applications that span multiple accounts within a region. - Alarm and automate actions. - For more information see Amazon CloudWatch features. In addition, depending on the service purchased, XMPie may use Datadog observability service, which enables real-time monitoring and log management. Datadog provides the following capabilities: - Determines performance metrics as well as event monitoring for infrastructure and cloud services. - Infrastructure monitoring - provides our team with a single view of our infrastructure (including servers, apps, metrics and other services). - Application Performance Monitoring (APM) - this includes Processes, Windows Services, XMPie Services, AWS integrations, monitors, synthetic tests, Health checks and more. - Alerts based on critical issues. - Automatically collects and analyzes logs, latency and error rate. - For more information see Datadog Solution Brief. XMPie leverages Network Operation Center (NOC) for 24/7 monitoring and rapid action management. ## Service Exclusions and Limitations  Unless Managed Services are involved, the following are limitations of the hosted solution:  - No file system access - for security and service experience reasons, XMPie does not support direct access to the file system. This means no bulk uploads of assets, documents, or hot folder import for uProduce and Free Flow Core (FFC), as well as no hot folder output from uProduce or Free Flow Core.   - No operating system access - for security and service experience reasons, XMPie does not support direct access to the operating system. Meaning, no Remote Desktop Connection (RDC) capabilities provided to the client.   - No direct SQL server database access - this means no automation or scripting capabilities, even when upgrading to full SQL license. There is a Professional Service plugin that can provide some access to update a database via flat file. This requires user intervention and cannot be scheduled or automated.   - Customers are solely responsible for ensuring the data they host on the site does not trigger malicious content flags. This responsibility is continuous and ongoing, extending beyond the initial configuration of a store/domain. Should their store/domain become flagged as malicious weeks or months after setup, the onus remains on the customer to actively monitor their data and take appropriate remedial action. If a customer's domain triggers a malicious content flag, XMPie may need to take temporary measures to mitigate the risk, potentially including taking the store(s) offline. This action would be taken solely to protect the platform and its users and would be communicated to the customer beforehand. The information above can change from time to time, and it is true as of the last review date of this document.    Created by: Nahum Cohen, last updated on January 2026 #### Security Headers Hardening # Security Headers Hardening This article is relevant for XMPie's server solutions (uStore, uProduce and XMPL). **Important:** The servers on which the customer installs XMPie software should be dedicated exclusively to XMPie software, and no other applications should be installed. If the customer installs additional applications, XMPie will not be responsible for any impact on the functionality of its solutions. ## Security Headers (HTTP) HTTP headers are used by the client and web server to share information as part of the HTTP protocol. When a URL is entered in the address bar of the browser or a link is clicked, the browser sends an HTTP request containing client headers, while the HTTP response contains server headers. Some HTTP headers which are used against common vulnerabilities such as Cross-site Scripting, Session Hijacking, Frameable Response (Clickjacking) are called security headers. Missing security headers may increase the risk of exploitation of these vulnerabilities, if they exist in your application. XMPie recommends that you have both a Frontend (proxy server) and Backend server solutions. This will ensure a secure environment. In order to harden the security headers, perform the following configuration on the Frontend server*: - Go to C:\inetpub\wwwroot, and back up this folder. - Open C:\inetpub\wwwroot, and delete the following: - aspnet_client folder - iisstart.htm - iisstart.png - web.config - Download the following Configuration files. Unzip the files and place them in C:\inetpub\wwwroot. - Restart the server. * If you do not have a Frontend (proxy) server in your configuration and you've exposed the Backend server to the internet, you'll need to apply the above configuration to your Backend server.   Created by: Mohammad Mansour on March, 2025 #### Get Better AI Answers About XMPie Products # Get Better AI Answers About XMPie Products Use our llms.txt files to help ChatGPT, Claude, and other AI tools give you accurate answers about XMPie documentation. XMPie has introduced an AI-powered chatbot directly in the Help Center home page, with additional in-app integration across XMPie products including uStore Backoffice. This assistant provides instant answers by drawing from multiple knowledge sources: Help Center articles, GitHub documentation, and XMPie Campus training materials. The llms.txt files described below help *external* AI tools (like ChatGPT or Claude) access similar documentation when you're working outside the XMPie environment. ## What Are These Files? XMPie publishes two files that help AI assistants understand our documentation: - **llms.txt** (~12KB) — Navigation index with links to all documentation sections - **llms-full.txt** (~6MB) — Complete documentation content Use the compact `llms.txt` for most questions. Use `llms-full.txt` when you need comprehensive answers or want to upload documentation to an AI tool. ## How to Use AI tools don't automatically find these files—you need to include them in your prompt. Simply add the URL to your question: `Based on https://help.xmpie.com/llms.txt fetch the appropriate article that covers the server requirements for uProduce`   `Based on https://help.xmpie.com/llms.txt fetch the appropriate article that explains how to configure webhooks in Circle` For detailed questions, you can also download llms-full.txt and upload it to AI tools that support file attachments. **Tip:** Works best with ChatGPT (with web browsing) and Claude. The files cover 894 topics across Circle, uStore, uProduce, uCreate, uPlan, uImage, XES, XVS, and Developer Hub. ## What Can You Ask? - System requirements and configuration - API integration and code examples - Feature explanations and workflows - Troubleshooting guidance - Supported formats and compatibility ## Quick Links help.xmpie.com/llms.txt — Navigation index help.xmpie.com/llms-full.txt — Full content help.xmpie.com — Help Center (includes built-in AI assistant)   Created on January 2026 ### GDPR # GDPR #### GDPR Guidelines for XMPie Products # GDPR Guidelines for XMPie Products **Disclaimer** This document is intended for informative purposes only. It does not constitute legal advice regarding the GDPR or any other matter, and may not be used or relied on for such purposes. Always consult a suitably qualified lawyer on any legal question, issue or matter, including the GDPR. ## Introduction This document describes the following: - XMPie support for GDPR compliance within its products - Steps a customer must take to comply with the GDPR when using XMPie products The GDPR defines two types of roles: Data Controller and Data Processor. XMPie is not a Data Controller, and therefore is not obligated to regulations that relate to Data Controllers. These regulations define rules and processes, many of which XMPie products and services do not have control over. For example, there is nothing that XMPie can put in place to control how customers acquire the data, or that consent has been given by citizens. The majority of XMPie customers host their own uProduce and uStore servers, and are therefore Data Processors. XMPie is a Data Processor for its cloud services, such as Circle and XES. As a result, XMPie without customer cooperation cannot on its own provide compliance to GDPR. The main goal of XMPie’s GDPR solution is to ensure that its products and services conform with the GDPR regulations, and to provide you the tools, mechanisms and guidelines to allow your organization to comply with the various GDPR requirements. XMPie’s GDPR solution focuses on: - **Ensuring data security:** Data is stored and transferred securely to avoid security breaches. - **Ensuring data expiration:** Data is held only as long as necessary. - **Ensuring data integrity:** Citizen data is amended, retrieved and deleted upon request. **Important!** This document may undergo modifications. Please check for updates on a regular basis. ## Terminology #### Personal Identifiable Information (PII) Information that can be used to identify, contact, or locate a single person, or to identify an individual in context. Any information that can be used to distinguish or trace an individual's identity, such as name, social security number, date and place of birth, mother's maiden name, or biometric records, can be considered PII, as well as any other information that is linked or linkable to an individual, such as medical, educational, financial, and employment information. In XMPie products, PII is most commonly contained in: - Production outputs – the result of XMPie compositions; e.g. personalized PDF or uImage file. - Data sources – the recipient information that is used to create the production outputs. #### Data Controller The person (or business) who collects data and determines the purposes for which, and the manner in which personal data is processed, whether in the EU or outside. It is the responsibility and liability of the Data Controller to implement effective measures and be able to demonstrate the compliance of processing activities even if the processing is carried out by a Data Processor on behalf of the Data Controller. XMPie is not a Data Controller. #### Data Processor Anyone who processes personal data on behalf of the Data Controller (excluding the Data Controller’s own employees), whether in the EU or outside. XMPie is a Data Processor only in cases where it hosts or provides a service. #### Sample data source In the context of GDPR, this is a data source that contains fake recipients only, including their fake personal data. ## Prerequisites GDPR compliance requires that all XMPie software are configured for GDPR. For best security and compliance, it is recommended to use the latest available versions of all XMPie products. ## XMPie Non-GDPR Compliant Components Not all XMPie products and features are GDPR compliant. For example, those features which are soon to be deprecated or products that are still in the beta phase. - In uProduce: - 1G email campaigns - 1G cross-media campaigns - In uStore: - 1G email products - 1G cross-media products - USADATA recipient lists ## XMPie GDPR Solution The XMPie GDPR solution is based on the fact that XMPie is not a CRM system, and as such it does not keep data longer than is required. For example, for longer than the duration of a marketing campaign or a print job fulfillment. When looking to comply with GDPR regulations, it is recommended to systematically remove unneeded data. The XMPie GDPR solution efforts focus on achieving this recommendation. ## uProduce The uProduce GDPR solution focuses on automatic deletion of: - Local and file-based data sources - Completed, failed or aborted jobs and their outputs - Temporary storage By default, all of the above expire 30 days after their creation date, and are then deleted from the system. You can configure the expiration period. Regarding data-source deletion, you may set specific data sources as permanent, which means they will never expire. You may want to mark a data source as permanent in the following cases: uStore sample data sources which are used for proofs, additional data sources which do not contain PII (such as car models and clothes catalogs), etc. Data sources can be marked as permanent as long as they do not contain PII. In case you still want a data source with PII to be permanent, you will have to handle citizen requests manually. When enabling GDPR, newly created local data sources are automatically defined as non-permanent, whereas existing data sources are defined as permanent. You can change the retention state of a data source at any time. #### Your responsibility The following are not managed by XMPie, and as such you will have to handle them on your own: - **GDPR automatic deletion configuration** Ensure that the automatic deletion mechanism is configured to be enabled. For more information, see Configuring GDPR Settings. - **Remote data sources** You are responsible for retrieving or deleting recipient data from remote data sources by citizen request, and for amending data and holding it only as long as necessary. - **Materials and tacking data of 1G email and web campaigns** Since 1G email and web campaigns are not GDPR compliant, it is recommended that you convert them to 2G campaigns, and delete the 1G campaign’s materials and tracking data. Otherwise, you will have to manually maintain them. - **Packed and unpacked VPC packages** You are responsible to delete packed VPC packages shortly after production, since they contain citizen data. In addition, because unpacked VPC packages are kept in the system for later usage, these packages must not contain real data but rather sample data. - **Deletion of job outputs from remote destinations** In case you defined job outputs to be sent to a remote destination, it is your responsibility to handle their deletion. - **uImage compliancy** In order for uImage to be GDPR compliant, do not use PII in the uImage files that can identify a citizen. For example, first name only cannot identify a citizen, whereas email or phone number can. If you do wish to use images that can identify a citizen, you will have to manually maintain them. #### Important When a job is deleted by the automatic deletion mechanism, it is completely removed from the database, including its ticket and messages, and not just marked as deleted. This is because tickets and messages may contain PII. ## uStore The uStore GDPR solution focuses on automatic deletion of recipient and user data. ### Recipient Data The uStore GDPR solution for recipient data focuses on the automatic deletion of: - Recipient lists - Circle instances - Production output - Proof files - Uploaded files (of both Composite products and File Attachment property) The shopper has a 30-day period from creating the order until the uploaded recipient list, created Circle instance, proofs and other personal data expire and are then automatically deleted. After the recipient list had been deleted, the shopper may still continue the order by re-uploading the recipient list. On order submission, the shopper or approver(s) are required to confirm that all order information is GDPR compliant. Once the order arrives in the Back Office, the administrator has an additional 30-day period to fulfill the order before the recipient list, production output, etc. also expire and are automatically deleted. You can configure the expiration period of the Storefront and Back Office globally to apply to all stores. In addition, GDPR functionality needs to be enabled per store. Upon installation of the GDPR patch, GDPR is disabled for all stores. In case of a personal data deletion request by a recipient: - In 1G products (dynamic print and composite products), automatic deletion handles it. - In 2G products (XM campaign products), the administrator should handle this request using Circle. In case of a personal data retrieval request by a recipient: In 1G products (dynamic print and composite products), there is no need to provide this information by the XMPie system, since no data was collected by the system in addition to the data held by the Data Controller. In any event, the data that was uploaded to XMPie expires within a 30-day period, before you need to comply with the retrieval request. In 2G products (XM campaign products), the administrator should handle this request using Circle. FreeFlow Core, Xerox workflow automation solution and an integrated component of uStore, is GDPR compliant. Jobs which have succeeded are automatically deleted from the system shortly after completion. Jobs which have failed need to be manually deleted from FreeFlow Core via the Job Management and Status user interface. #### Your responsibility The following are not managed by XMPie, and as such you will have to handle them on your own: - **GDPR automatic deletion configuration** Ensure GDPR is enabled on uProduce, and review all stores to enable GDPR and configure the automatic deletion mechanism for the required ones. For more information, see Making your Stores GDPR Compliant. - **Materials and tacking data of 1G email and XM products** Since 1G email and dynamic with web products are not GDPR compliant, it is recommended that you convert them to 2G XM campaign products, and delete the 1G campaign materials and tracking data from uProduce. - **Deleting citizens from predefined and uProduce recipient lists** During product definition, if you allow selection of recipients from a uProduce data source, or using a predefined recipient list, then upon a deletion request of a citizen’s personal data, you will have to manually handle this. - **Order expiration during fulfillment** uStore Back Office marks orders that are about to expire. Be attentive to regularly check and handle these orders, otherwise the production materials will be lost, and you will not be able to fulfill the orders. - **Using sample data in product definition** You should use sample (fake) data only when defining a product. - 1G products (dynamic print and composite products) should use a sample data source for the production parameters of print and proof jobs, used in the product definition. - 2G products (XM campaign products) should be based on Circle templates that use a sample data source as the recipient list. #### Important - When saving a product, all uProduce data sources used by production parameters of print and proof jobs are marked as permanent, and therefore are not deleted by the automatic deletion mechanism of uProduce. This is because the lifespan of the products is usually much longer than 30 days, and the data sources used are either sample data sources, or additional data sources that don’t contain PII. Note that if by mistake you saved a product that uses a data source that contains PII, then replaced it with a sample data source, uStore will not mark the data source with PII as non-permanent, thus you should manually mark it as non-permanent in uProduce. - Once a campaign-on-demand order has terminated, the entire campaign is deleted including all its data. - Proofs use the recipient list data as long as it is available. However, when the recipient list is automatically deleted, the sample recipient list is used instead. ### User Data In addition to recipient data, uStore is concerned with personal data of users, both registered and anonymous. Registered users can be deleted from the system upon request, whereas anonymous users are automatically deleted after a 30-day period. On deletion, the system deletes non-submitted orders, uEdit documents, uploaded images, etc. Submitted orders are kept permanently. User information is deleted only if there are no submitted orders relating to the user. In case of a data retrieval request by a user, it is possible for the administrator to extract all the personal information and order data from the user’s account. ## Circle XMPie provides an upgrade of Circle to comply with GDPR. For complete details about the Circle GDPR solution, see Circle and GDPR. The Circle GDPR solution includes the following: - Circle provides the ability to retrieve or delete citizen personal data from the system, from both an entire account or a specific campaign. To enable this ability, it is required to provide a single field name and value in order to locate a citizen in the recipient list. When deleting a citizen, data is removed from the recipient table selected in the Master list and from the tracking storage only. When retrieving citizen personal data, data is retrieved from the recipient table selected in the Master list and from the tracking storage. This data is provided in both a human and machine-readable format. Note that in cases of remote data sources, only tracking data is removed or retrieved. - Data sources created by Circle (and uploaded to uProduce) are marked as permanent, and therefore are not deleted by the automatic deletion mechanism of uProduce. This is because the lifespan of Circle projects is usually much longer that 30 days. However, if you do wish to delete an entire data source or a specific recipient, you can  do it manually in Circle. - When deleting a Circle project, all tracking data of the campaign stored on the cloud is deleted, in addition to deletion of the uProduce campaign, including all its materials. #### Your responsibility The following are not managed by XMPie, and as such you will have to handle them on your own: - **Remote data sources** You are responsible for retrieving or deleting recipient data from remote data sources by citizen request, and for amending data and holding it only as long as necessary. - **Additional tables and additional data sources** Since XMPie deletes and retrieves personal data only from the recipient table selected in the Master list, make sure that other recipient and non-recipient tables in all data sources of the project do not contain any PII. However, if they do, you will have to manually maintain them. - **Right to object to automated decision processing regulation** You are responsible for all automated decisions made in your project. #### Important - Recipients selected as the sample recipients of a project should not contain PII. That is, they should not be real recipients of the campaign. - Template projects should use a sample data source in the recipient list, since this data is copied to the instance. Alternatively, after creation of an instance and replacement of the recipient list, the copied template’s data source should be deleted. ## XMPie Email Service (XES) If you wish to make your XES account GDPR compliant, you must contact XMPie Support. Note that by default all XES accounts are located in Amazon US region, nonetheless they are GDPR compliant due to Privacy Shield protection. However, XMPie provides you the option to move your account to Amazon EU region, if you wish to do so for some additional reason. #### Important When your XES account is GDPR compliant, “View in browser” and “PDF-on-Demand” are available for only 30 days after the email was sent. ## Additional Recommendations ### Ensuring Easy Retrieval and Deletion of Citizen Personal Data One of the main issues which arises when there is a need to retrieve or delete citizen personal data, is identification of the citizen in the recipient list. XMPie’s requires to provide a **single** field name and its value in order locate a recipient in the database. Circle provides the means to delete or retrieve a citizen’s personal data from a single project or from an entire uProduce account. In case requests are from a single project only, different projects can use different fields to identify the citizen. For example, XMPie recipient key, email address or phone number. In case requests are from an entire uProduce account, you will need to have a field that appears in the recipient lists of **all** campaigns of the account, which identifies the citizen. For example, CRM identifier, email address or phone number. ### Ensuring Data Security for the Web When implementing or running web campaigns, XMPie cannot control what personal information is contained within a personalized URL, or what information is displayed on personalized pages. Therefore, the major part of the responsibility is in the hands of those creating the campaigns. They must be extra cautious not to expose citizens’ personal information, and must use the tightest security version of XMPL. See XMPL release notes for latest version. The following guidelines will help you ensure data security of your websites. #### Recipient Key It is recommended not to use personal information in the recipient key, in order to avoid webpages from being accessed by hackers. Finding the recipient key pattern and guessing its values might cause data breaches. In websites that do not require signing in to access personal data, guessing the recipient key enables easy access to a citizen’s personal data. In addition, it reveals that the person is part of the campaign. It is therefore not recommended to use in the recipient key first and last name, email address, identification number, etc. Learn how to generate a non-PII recipient key. #### Secured URL The strongest way to achieve data security in a website is by signing in to the website. This allows providers to deliver both secure and personalized campaigns which require users to validate themselves before exposing any personal information. As part of the GDPR solution, XMPL provides the ability to define a website that requires the recipient to supply credentials and sign-in upon each entry to the website or XMPL API. Learn how to secure your website using SecURL. #### HTTPS Protocol XMPie recommends the use of encrypted HTTP traffic, via HTTPS protocol, and suggests that this is used when personal data is being transferred. See Circle HTTPS Configuration Prerequisites. ## Physical Data Storage and Transfer GDPR prohibits storage and transfer of citizen personal data outside of Europe, without proper protection, as set by the GDPR regulation. For example, data can be stored in and transferred to Amazon non-European regions due to Privacy Shield protection. XMPie is responsible for data storage and transfer for its cloud services, such as Circle and XES, and cloud-hosted systems, such as uProduce and uStore. However, the majority of XMPie customers host their own uProduce and uStore servers, and are therefore responsible to ensure the physical location of the servers. ## General Security GDPR requires to comply with industry security standards. For example, network security, file system and database encryption (if required), etc. XMPie is responsible for security of its cloud services, such as Circle and XES, and cloud-hosted systems, such as uProduce and uStore. However, the majority of XMPie customers host their own uProduce and uStore servers, and are therefore responsible to ensure the security of the servers. In order to achieve better security, it is highly recommended that the customer creates a tiered environment where only the necessary parts of the system are exposed to the internet. In addition, it is important that the customer analyzes the sensitivity of the data that is stored on the servers in order to assess whether file system and database encryption are required. For more information, refer to the following: - Security for Web Products - Security for uStore - MS SQL Server Encryption   Created by: Svetlana Bogush, last updated: November, 2025 ### uMerge Video # uMerge Video #### Best practices and guidelines for motion designers # Best practices and guidelines for motion designers ## Overview XMPie uMerge Video is a video personalization plugin which enables the creation of dynamic After Effects projects that can be deployed and automatically rendered on a cloud service. This article aims to help designers and animators prepare and organize their After Effects project for deployment and rendering on the cloud. ## General considerations As a rule, an After Effects project intended for deployment using uMerge Video must be optimized for the **fastest** rendering possible. As the project will be later rendered multiple times on a cloud-based server, the fastest and most efficient rendering possible per video instance is most wise and economical. In order to make sure your dynamic After Effects project is ready for optimal deployment, follow these general guidelines. Additional advice regarding specific effects and situations follows below. - Pre-render all layers, except for layers using uMerge Video dynamic data (Composition menu > Pre-render).**Make sure to select the “Import & Replace Usage” in the Output Module Settings window. - It is imperative that you pre-render any layers or precomps that employ 3rd party plugins and effects before deploying to the server. This will ensure that the render on the server will not fail because of a missing effect or that slow plugins won’t hinder the render’s progress. - Where possible, it is recommended to group all background and/or foreground layers in separate precomps and then pre-render. Note:** Do not use After Effects’ built-in composition proxy feature. Instead, render precomps and replace their usage with the complete rendered video file as instructed above. Make sure you preserve the alpha channel and blending modes where required. - Trim the length of all layers that employ uMerge Video’s dynamic data to the minimum time required. Make sure that each layer starts (IN point) exactly when it becomes visible and ends (OUT Point) when it stops being visible. This step is crucial for the operation and efficiency of the cloud-based rendering. - Reduce resolution of large visual assets. It is extremely recommended that all visual assets (still images, graphics and videos) are resized to the minimum resolution required (usually HD 1920x1080 pixels or lower) as larger visual elements significantly slow down the rendering process. - Do not use {{ or }} (double curly brackets) for names of layers or any other element in the project. This will interfere with the proper operation of the uMerge Video plugin. If you must use double curly brackets for any reason, please contact XMPie support for assistance. - When creating the CSV data source, it is recommended to add an ID column that will have a unique ID for each record. When deploying a project for rendering on the cloud server, you should append this unique ID to the video file name. This will ensure each video has a unique file name and can be easily referenced. ## Specific effects and situations ### Blur effects Blur effects are notorious for their slow rendering speed; thus it is recommended to use as few of these effects as possible. When required, it is advisable to use the **Fast Box Blur** effect as this effect has the fastest rendering potential. ### Bake expressions It is extremely recommended to replace any active expressions on a layer with fixed values and/or keyframes (a.k.a. “Bake the expression”). This can be easily achieved by selecting the parameter on the timeline that has an expression applied to it, and then selecting Animation > Keyframe Assistant > Convert expression to keyframes. **Important!** Do not bake the expressions that are on the dynamic layers that use data from the uMerge Video plugin, as this will disable the automatic replacement of data after deployment to the cloud. Do this step only for layers that do not use uMerge Video’s dynamic data. ### Custom fonts Before deployment to the cloud, copy all fonts used by the project as mentioned to the following folder: - Windows - C:\Program Files\Common Files\Adobe\Fonts\XMPUMerge Video - Mac - /Library/Application Support/Adobe/Fonts/XMPUMerge Video This will make sure that the server will have all required fonts when rendering the deployed project. It is recommended that **all** used fonts in the project are copied to this folder as there is no guarantee that the cloud server will have any of the required fonts already installed. ### Reduce project operation Before deployment, it is **not** necessary to reduce the project and remove any unused assets, as the deployed project is already reduced automatically by the uMerge Video plugin before uploading to the cloud. If you still wish to perform the Reduce Project operation before deployment, make sure to select **both** your main composition and the "//XMPieComp" composition from the project panel before running File > Dependencies > Reduce Project. ### Dynamic text size and the Copy Fitting option Make sure that any text layers containing dynamic data are capable of having different lengths of characters. This is to ensure that different sizes and lengths of text are not cut off by track mattes or positioning. The “Copy Fitting” option of the uMerge Video plugin enables **automatic** resizing of text layers depending on their content’s length. To properly activate the Copy Fitting option, follow these simple steps: - Select the relevant dynamic text layer in the composition’s timeline. - Place the Timeline indicator at the specific time when the layer’s “In” animations has completed, i.e. after all animations that bring the layer into full visibility and readability are done. This step is crucial as the uMerge Video plugin calculates the correct size of the dynamic data using the size of the layer at this specific point in time and place. - Click the Edit Tag button in the uMerge Video panel (the pencil icon). In the Tag Text Layer panel that opens, enable the Copy Fitting checkbox at the bottom of the panel and click save. This will make sure that no text will be cut out or hidden. ### Size and Length of dynamic images, video and audio files Make sure that all relevant dynamic images and video files are of the same size and aspect ratio to maintain proportions and avoid layer visibility issues such as clipping. In addition, make sure that all dynamic video and audio files are of the same length and compression type. This will prevent any out-of-sync issues caused by inconsistent footage durations and formats. ### Improve on-demand video rendering during peak time If the personalized segment of the video includes the first name only, one strategy you can implement is rendering common first names in advance. This approach significantly reduces the strain on the rendering units, especially during busy periods. For example, if you pre-render the name "John," it will not be rendered again during peak times, thereby easing the load and improving overall performance. ### uImage # uImage #### Best Practices for Variable Data Print (VDP) Design # Best Practices for Variable Data Print (VDP) Design **Summary**: This articles provides best practices for VDP design to ensure maximum print production performance. **Audience**: Graphic designers and prepress production staff who are responsible for the creation, preparation and/or production of documents for XMPie variable data print. **Prerequisites:** This article assumes knowledge of XMPie products, Adobe Photoshop, Illustrator and InDesign as well as general prepress skills. ## Overview Adobe InDesign is a very flexible product and it has many features to make it quick for non-technical people to create beautifully designed documents. However, many of these features can add complexity to the document that causes - Increase in the time it takes to create the print output. - Increase in the size of the output file (and, therefore, the time it takes to send to the printer). - Output files which are not efficiently processed on the printer, causing the printer to run slower than its rated speed. In static or one-off print jobs, these tend to be minor indiscretions that we can live with, but when printing variable or dynamic print jobs with thousands of records, we need to ensure these issues don’t create exponential problems with file size or production speed. This article lists many common things to look out for to prevent these issues. Much of this is just “good prepress” that should be done for any digital print, but there are also some points which are unique to variable data print. ## Designing for VDP XMPie provides a number of different ADORs or content object types, and in many cases there are different ways to achieve the same output. For example, to create a brochure with different company logo and text, you could: - Create different layers in InDesign for each design and use Visibility ADORs to turn on or off the layers. - Create different pages in InDesign for each design and use Visibility ADORs to turn off or off the pages. - Have only one page and layer in InDesign, and use a Graphic ADOR and a Text ADOR to change the content on the page. - Have only one page and layer in InDesign and use a Graphic ADOR and a Text-File ADOR to change the content on the page. - Export out the whole brochure page for each company as a graphic, and create another template in InDesign which uses one Graphic ADOR to load the right graphic for each company. All the above options are valid and would result in the same output. However, what would happen if your brochure had say 50 different company logo/text combinations to manage instead of just 2 or 3? In this case, options 1 and 2, would result in many pages or layers in the InDesign document and maintaining or editing the document would become difficult. Even option 5 (which would result in the smallest and fastest processing document) would take much longer to setup and also be very difficult to maintain changes. So, in this example, options 3 or 4 are most sensible since they result in a document which is easier to manage and update over time and still produce efficient output. The difference between the two options is whether to use a Text ADOR (where the variable text is coming from the database or plan file) or Text File ADOR (where the text is coming from a text file asset). The decision here would depend on the amount of text and how you wanted to make updates/changes in future. In general, Text File ADORs are a better solution when there is a lot of text since they are cached more efficiently. But, for small amounts of text, Text ADORs can be easier to update by changing the database, or the plan file. The point to be made here is that there are many ways to create variable documents, and success will come from having at the start, a clear understanding of what will be changing in the document, how the document will be updated in the future and which ADOR types are most efficient. ## Watch a video Design for VDP introduction Planning for efficient design ## Transparency Transparency is the number one cause for slow production, large output files, and slow print processing times. InDesign provides many different effects that involve transparency and can be applied to either text or graphic boxes. Here are just two: | Feather | Drop Shadow | | --- | --- | The problem with transparency is that many printers or output devices cannot correctly reproduce transparency between different objects, so to ensure that you get printed what you see on screen, Adobe InDesign “flattens” or combines these objects into one object when you print it. Naturally, this process takes some time, and even when you’re printing a normal static InDesign document you’ll notice that it takes a bit longer if there are transparent effects in the document. XMPie works perfectly well with transparency, and if it is needed for your design it is certainly possible. But, as a designer, you need to be aware of the impact of transparency on production time so that you can allow additional production time, or minimize the impact by identifying and changing the way the transparent effect is used. The biggest issue for transparency in variable data printing comes into effect if one or more of the boxes that need to be flattened contain variable data – either image or text. ### Example 1: Flattening boxes with variable data The image above shows a text box (with a drop shadow) containing the “first name” ADOR which overlays a graphic box that contains a static image. To reproduce this transparency effect, XMPie has to flatten the text box and graphic box together. Since the first name can be different for every record in the database, this multiplies the time needed to flatten the image for all the different names, and multiplies the size of the output file. Let’s assume that the image size is 1MB, that you are printing 1500 records, and that 200 people in the database have the same first name as someone else already processed: InDesign & XMPie have to flatten the two boxes 1500 – 200 = 1300 times. If it takes 1 second to flatten the image with the transparent effect, then this will add 1300 seconds or 21.6 minutes to the total job processing time. And, the output print stream has to include the 1300 flattened 1MB images (approx. 1.26GB) of data just for this graphic - not including any other pictures, text, etc.!!! ### Detecting transparency issues The first step to optimizing is to identify which elements contain transparency effects. XMPie provides a preflight tool which will do this. Select **Preflight** from the uCreate Print panel: Another method for detecting transparent effects in your design is to use the InDesign **Flattener Preview** panel: ### Optimizing transparency issues Once you have identified the offending object you can take steps to remove or reduce the performance problem: - If the overlapping transparent objects are static, consider flattening them in Photoshop and placing it into InDesign as a graphic which is already flattened. - When a placed graphic contains transparency – for example the PNG graphic shown in the image above – there are two better ways to achieve the same effect without transparency and without impacting performance: - Open the graphic in Photoshop, create a path around the object (an orange in this example). Set the path as a clipping path, and save the image as an EPS with the clipping path. - Resave the graphic as a JPG image. This will remove the transparency. Then in InDesign, select the graphic box and choose **Clipping Path** from the **Object** menu. Use the **Detect Edges** option to automatically create a clipping path around the object, and you can then use the pen tool to adjust the clipping path if necessary. - If possible, move the box with transparency so that it does not overlap other boxes – especially boxes containing dynamic content. - Consider not using the transparent effect. - If there is a bitmap graphic in one of the affected boxes, reduce the graphics file size to the minimum by ensuring that it is correctly cropped, scaled and is at the lowest possible resolution to provide the necessary print quality. (This will help reduce the flattening time and output file size.) - If the box with the transparent effect overlays more than one box, try to reduce this to the minimum. ### Example 2: Transparent effect overlaying more than one box In the Example 2, all three boxes would be treated as one object. Now, if the yellow box was actually a large graphic which was static for all records and the blue and/or pink boxes contained variable content, we would again encounter the problem discussed in Example 1. However, depending on the design of your document, it might be possible to make a change so that only two objects have to be combined (blue and pink in the below example): ### Example 3: Splitting the yellow box into two boxes ### Example 4: Placing the blue box back Evaluate and minimize the problem effect where it affects dynamic content. For example, in Example 5: On the left is one text box placed over an image and set with 80% transparency. Because the text box contains the First Name ADOR, the transparency effect on the text box will be applied to the text it contains. And, because of the variability every unique first name will have to be flattened with the background image increasing production time, and increasing the output file size. On the right, are two boxes – one just for the white background which has the 80% transparency applied. The second box placed over the top has the text containing the First Name ADOR. In this case, the white box and background image will be flattened once. ### Example 5: Minimizing transparency effect on variable content While the effect is not exactly the same (the text is 100% opaque and there is no building showing through the text) it is very similar and perhaps the customer would accept this slight design change – if so, the savings in production time and output file size would be significant. ### Production options for managing transparency XMPie provides a powerful production option called X-DOT (XMPie Dynamic Object Transparency) which enables you to quickly and easily control transparency at production time without having to modify the InDesign document. X-DOT provides three options: - Use X-DOT – the output will honor all transparency setup in the InDesign file. - Ignore X-DOT – the production engine will remove all transparency effects in the file. - Ignore X-DOT where needed – this option applies intelligence to determine if the transparent effect will impact performance by interacting with a variable object. With this option, individual transparent effects will only be removed if they will impact performance. Those which don’t impact production speed will remain. ### Output format considerations for transparency XMPie provides several different output formats for use when you are creating the final print file. Different output formats have different options available. When selecting PDF/VT-1 as the output format, the **INDD Document Advanced Parameters****> Transparency Implementation** section shows an option to tell XMPie not to flatten the transparency, and to leave this to the RIP/printer. Naturally, this will make the XMPie production much faster, but may increase the processing time on your printer – assuming that your printer will handle PDF/VT-1 files with transparency. ## Watch a video Impact of transparency on dynamic print productions ## uImage performance Creating personalized images is another time consuming task. Also, since there will be individual images for each recipient in the database, output file size can be large and print production time long because of amount of data to process. - Ensure Photoshop is set up and configured as efficiently as possible, as per Adobe’s recommendations (https://helpx.adobe.com/photoshop/kb/optimize-photoshop-cc-performance.html). - Reduce the physical size/scale of the Photoshop template so will be placed into InDesign at 100%. - Remove any extraneous image in Photoshop, rather than cropping in InDesign. - Reduce the resolution of the Photoshop template to the minimum necessary for the required output print quality. (For digital print this should be about 150-200 dpi. Any more resolution will not increase the visible print quality, but will impact output file size and printer performance.) - Minimize the number of layers in the Photoshop template by flattening or merging layers where possible. - If using actions, remove any unnecessary steps, and test different options that provide similar effect (especially filters) to see if one is faster than another. - Only use uImage where necessary – if you can achieve a similar effect by overlaying text on the image in InDesign, you will save time. - Make sure you use the “OPT:” Optimize option in uPlan. This first checks to see if there is already a personalized image for the recipient, so it will not waste time creating images that already exist. - If the area of personalization on the image is only a small part of the whole image, consider using the uImage Optimize option. This creates a smaller overlay image for each recipient, so the amount of extraneous image being duplicated in the output stream is dramatically reduced: ## Watch a video Optimizing uImage files to get the fastest production and smallest output file ## Choosing the right output format To get shortest time between click and clunk – the time between your click of the **Generate VDP Output** option and clunk of the print landing in the printer’s output tray – you will also need to choose the best output format for your printer. XMPie provides several different output formats. Here is a table showing the available output types and their advantages and disadvantages: | Output Type | Advantages | Disadvantages | | --- | --- | --- | | PDF/VT-1 | PDF/VT-1 is a form of PDF which is designed for variable or transactional printing; Recommended image asset type: PDF ; Can accommodate different page sizes | Some older RIPs may not support PDF/VT-1; Some older RIPs may not correctly support transparency, booklet, or other PDF/VT-1 features.; Some older RIPS may not give page previews or impose PDF/VT-1 in the same way that they do with standard PDF files. | | PostScript | PostScript is supported on nearly all production RIPs; Recommended image asset type: EPS | Not all printers can take advantage of caching reusable elements in Optimized PostScript; PostScript does not have a definition of “booklet” so duplexing a job with an odd number of pages will cause problems. | | Adobe PDF | PDF is supported on nearly all production RIPs; Recommended image asset type: PDF; Can accommodate different page sizes | Cannot do Dynamic media selection; Like PostScript, there is no definition of “booklet” | Things to be considered when selecting the output format include: - The time it takes XMPie to produce the output format. - The size of the output file (and therefore the time to get it across the network to your printer). - Whether your RIP can process the particular output format. - The speed at which your RIP or printer can process the output format. ### Splitting into batches On the uProduce server, if you have extension servers, or a multiple instance (MI) license of InDesign Server, you are able to process multiple jobs at the same time. By splitting a large job into multiple batches, means that as the first batch completes on the uProduce server, it can be sent to the printer and start processing/printing while remaining batches are being prepared on the uProduce server. In other words, the printer is able to start printing, while at the same time, the job is still being produced. This feature does have one drawback. XMPie is able to optimize the caching of image assets in the output file, so that if many records use the same image asset, it is only placed into the output file once. However, when you split into batches, the same image asset will need to be placed into each batch where the image is required. If your RIP supports global caching, this is less of a problem. ### InDesign image rendering The uProduce setting **INDD Document Advanced Parameters > ****Image Rendering **enables faster performance. XMPie can insert all images (both image assets, and non-variable image resources) directly into the output file. This means there is no production delay while we programmatically load the images into InDesign and export them out again. However, when you select the performance option, XMPie puts the linked images into the output file as-is, without making any changes to the images. This means there are some important things to note: - You should crop your images in an image editing application rather than using InDesign to crop images. Failing to crop images and using the non-InDesign Rendering option will result in larger print output files. - When using PDF files as an image, the non-InDesign Rendering option will put the entire PDF file into the print output file. So you should ensure that the PDF image file has only one page, and is optimized. If necessary, place the PDF into InDesign and export out a new PDF. Then, use this PDF as the image asset. - If you are using JPG images, and you need to apply ICC profiles to the image in InDesign for color management reasons, then you need to select the Require InDesign Rendering option or the ICC profile will not be applied. ### Step and repeat imposition If you select to do imposition in XMPie, this process happens at the end of all the normal production. Therefore, adding step and repeat, will increase the total processing time. For large jobs, you may find it is more efficient to use the RIP’s imposition features, or using 3rd party imposition tools. ## Text wrapping If there is an ADOR object involved in text wrap (either static text wrapped around a variable image or variable text around a static or variable image) the text flow may have to be evaluated for every record being processed. While not involving a huge amount of processing time, it can also affect the reusability of objects in the print stream, so may increase the amount of data being sent to the printer, in addition to the processing time. ## Image assets - XMPie provides greater optimization with PDF assets when creating PDF-based output formats (Adobe PDF and PDF/VT-1). If using PDF/VT-1 output type, try to ensure that the assets are PDF for better performance. - XMPie provides greater optimization with EPS assets when creating PostScript-based output formats (PPML, VPS, VIPP, Optimized PostScript). If using one of these output formats, try to ensure that assets are EPS for better performance. - Avoid using native Photoshop or Illustrator files as assets. Especially if they include transparency effects. “Export” or “Save As” in Illustrator/Photoshop and save to JPG, EPS or PDF. Remember to choose an image file format which can be referenced outside of the print stream if you wish to take advantage of this feature. Refer to choosing the right output format. - If you need to mask an image, use the EPS clipping path method. This will use efficient PostScript to achieve the masking rather than an inefficient transparency effect that will cause production performance problems. - Reduce layers by flattening, or merging layers in bitmap graphics to reduce file size before exporting. - When exporting/saving image assets, use Binary (rather than ASCII) encoding methods when possible – this will reduce file size. (Binary/ASCII options are usually offered when exporting to EPS, but may also be offered with other formats depending on your image editing software.) - Ensure that placed bitmap images are cropped to the right size for placement in InDesign. Excess image in the print file contributes to large, slow print files. - Don’t place EPS files within other EPS files. - It is preferred to convert fonts to outlines in your vector EPS files. - In vector graphics, use a specific line width rather than “hairline”. EG use “0.25pt”. - Reduce the number of points in your vector artwork. The complex vector path on the left can be reduced to just three points: The Illustrator's **Simplify** option makes easy work of optimizing vector paths: ## ADOR caching One of the most powerful features of XMPie's patented dynamic print technology is the ability to cache objects in the output stream so that reusable objects are placed into the output file only once and are referenced for all additional records/recipients that use the same object. This means that the print file is created faster, is smaller in size, can be sent to the printer faster and processes faster on the printer or RIP. XMPie makes the decision which objects are cached automatically, based on the ADOR type. Usually, Graphic and Text file ADORs are reusable objects, and are thus cached. Text ADORs, on the other hand, are usually unique and will not be cached. However, occasionally, it may be desirable to change this automatic behavior for certain ADORs. **Important!** It is recommended that you change this automatic behavior only if you fully understand the caching mechanism, and the impact of the change. InDesign objects XMPie treats objects in the InDesign document in one of three ways: - **Fixed:** When the object contains no ADORs. - **Reusable:** When the object contains a file-based ADOR, such as a Graphic ADOR or a Text File ADOR. - **Unique:** When the object contains any other type of ADOR, such as a Text ADOR. An "object" in InDesign is a text frame or a graphic frame. ### How are reusable objects used? Records/recipients to be processed are checked to see if the same Graphic or Text File ADORs contain a file that is used for more than one record/recipient in the database being processed. Reusable object information is stored in memory as the production job is processed. This process is designed to work where Graphic or Text File ADORs contain a file that is used for more than one record/recipient. In some unusual circumstances, it is possible for a Graphic or Text File ADOR to call an asset which is unique for every record or recipient in the database, for example a personal photo of each recipient. In this case, storing the InDesign object in memory serves no purpose and for particularly large databases, and large asset sizes, can lead to excessive memory use. If your Graphic or Text File ADOR will be unique for every record/recipient in the database, then you can disable the caching mechanism by renaming the ADOR to include **.unique** at the end of the ADOR name. For example, a Graphic ADOR named "photo" can be renamed "photo.unique" to disable the caching mechanism. ### Risks of disabling the caching on an ADOR If you add **.unique** to the name of a Graphic or Text File ADOR which contains an asset that is used by multiple records/recipients in the database, then the InDesign object will not be cached and the object will be added to the output file for each record/recipient. This means that the print production will be slower and create a significantly larger print file than needed. ### How are Unique objects used? Unique objects are inserted directly into the output file for each record/recipient processed and are not cached. For example, an InDesign text frame that contains the body of a letter with static text as well as some Text ADOR, is considered unique since the chance of another record/recipient with the exact same values in each Text ADOR used in the text frame, is very low. In some occasions, it is possible for a Text ADOR to contain a value which is reusable by some records/recipients in the database. For example, a Text ADOR "club level" could contain the values "Gold", "Silver" or "Bronze", where many recipients will use one of these values. If this Text ADOR is used in a text frame in InDesign either by itself, or with only static text (meaning that the text frame does not contain other unique ADORs) then it is possible to enable the caching mechanism by adding** .reusable** at the end of the ADOR name. For example, "club level" can be renamed "club level.reusable" to enable the caching mechanism. ### Risks of enabling the caching on an ADOR If you add **.reusable** to the name of an ADOR, then InDesign objects that use that ADOR will be cached and stored in memory to check for other records using that InDesign object with the same ADOR value. This means that more objects will be stored in memory, and for large databases, if used incorrectly, this increases the risk that the available memory may not be sufficient to complete the entire production job. ## Asset management Manage your assets wisely. When uCreate or uProduce processes a print file that has image or text file assets, it will search through the assets folder to confirm the required asset exists, and to set the file path and extension in the output file. If you set the assets folder to c:\ or have thousands of unnecessary files and folders in the assets folder, then it will take longer for XMPie to find and reference each asset. In uCreate, correctly set the assets folder, and ensure it does not contain irrelevant files and folders. In uProduce, it is possible to set many different assets folders. Before processing in uProduce, you can change the search order, or enable/disable different asset folders (e.g. for lowres and highres assets). If only a part of the campaign’s assets are required for a specific production job / document - create a designated assets source for it. Change the assets sources order or disable unnecessary asset sources, if you can, for the duration of the production. ### Windows Search Indexing Currently, the **File System asset source** type, which is not managed by XMPie but rather by the customer, can contain many folders and subfolders in a deep hierarchy. During production, searching for the required files may take a long time, and could thus affect asset-resolving performance. It is possible to use **Windows Indexing**, when using the File System asset source type, to improve search performance. If you observe poor performance when searching for asset files, it is advisable to use Windows Indexing. For more information, see Improving Search Performance using Windows Indexing. ## Table ADORs Table ADORs are not cached as reusable objects in the print stream – they are evaluated for every recipient. Where performance is critical, avoid Table ADORs. Production will be especially slow if the Table ADOR includes an image. The entire table is treated as unique for each recipient, so any images placed in the table will be embedded in the output for each recipient. IE if multiple recipients have the same image in their table, the image will be included in the output file multiple times. Customers often think that using a table ADOR is the only way to add a variable number of dynamic images to the design. It is much better to use a few graphic ADORs and where the customer requires less images than the number of graphic ADORs, use simple logic to place a 1px x 1px transparent or white image instead. ## Visibility ADORs It is very common for people who are not familiar with designing for variable data publishing, to create an InDesign document with several pages or layers – each of which represents a different market segment - For example, one page/layer for male recipients; and a second for female recipients. When the XMPie operator gets this document, it can be very easy (and lazy) to simply create a visibility rule to turn on/off the relevant page/layer in the design. It is much more efficient to take a “template” approach and create “containers” on the page which hold text or graphics that change based on the database logic. Use layer and page visibility only where there are significant design changes to the document layout which cannot be achieved with text/graphic/style ADORs. ## XLIM If you have XMPie PersonalEffect (and therefore have uProduce server), then you also have a feature called XLIM (pronounced “slim”). XLIM is XMPie’s own document composition engine, similar to InDesign, but with a reduced number of design features. Despite having a few less design options, XLIM provides a tremendous boost to performance with most documents process at least 30 times faster in XLIM. XLIM still uses Adobe InDesign’s desktop version to create the design, but when exporting the document to a Campaign Package (CPKG) or Document Package (DPKG) to upload it to uProduce, you also have the option to save your design as a XLIM document or package. Also, the uCreate Print's Dynamic Content panel has some options to either: - Check the InDesign document to see if it is compatible with XLIM. - Work in XLIM design mode – which warns you if you create an object which cannot be supported in XLIM. The speed improvements offered by XLIM are so large, that many of the other performance tips suggested in this document are almost insignificant. If performance is critical for your job, then you should be working with XLIM . However, this feature is only available with the server versions of XMPie. ## General prepress tips - Try to place ADOR objects in individual text or graphic boxes. If possible, don’t place text boxes or image boxes that contain ADORs “inline” in another text box. If there is an ADOR object in any of the boxes, it will causes the entire group to be treated as unique for each recipient, rather than just the smaller box containing the ADOR object. This will result in poor performance. - When placing images/graphics into the InDesign file, place them in using the Ctrl-D keyboard shortcut or File->Place menu option. Don’t copy and paste from other applications. - Use the Links palette to ensure that all images are “linked”. Don’t “Embed” images into the document. The icon in the image below shows that this image is embedded in the InDesign file. - InDesign provides some drawing tools for boxes, lines etc. Use these only for simple tasks. If you are creating more complex drawings, use Illustrator or Photoshop to create the image, and place that one item into InDesign. - Use the **Direct Selection Tool** (white arrow) in InDesign to click on graphic boxes. The red line in the image below shows the full dimension of an image which has been cropped significantly in InDesign. It should be opened in Photoshop, cropped, resaved and placed again into InDesign. This will prevent excess data being sent to the printer, decrease output file size and increases performance. - Ensure that placed bitmap images are scaled to the right size for placement in InDesign. Excess image in the print file is a main contributor to large print files. By using the “Effective Resolution” details in the **Info** panel you can see that the image selected in image below was originally 240dpi, but has been scaled down in InDesign and is now 888dpi which means that more than three times the amount of data necessary will be sent to the printer. - Don’t rotate images in InDesign other than 90 degree increments. If you need to rotate a graphic other than 0/90/180/270 degrees – reopen the graphic in Photoshop/Illustrator, rotate, save and replace in InDesign. InDesign sends the rotation instruction to the RIP. 90 degree rotations are easy mathematically for the RIP. Other increments will cause degradation in RIP performance. ## Watch a video Basic prepress tips ## Font tips - If your design includes many fonts, you may find it is faster to have your fonts already installed on the RIP, and to exclude the fonts from the print stream. - When designing on a Macintosh, remember that if you are going to process the document on a uProduce server, or if you wish to exclude the fonts from the print stream and load them separately to the RIP – remember that not all Macintosh fonts can be used on a Windows server. Preferably keep to OpenType (OTF) or TrueType (TTF) fonts which are cross platform compatible. - InDesign is not able to omit double-byte fonts from the print file. If you choose not to embed fonts, single-byte fonts will be omitted, but double-byte fonts will still be embedded, but will be subsetted. (Note: In v4.5 and earlier, when creating PDF output there is no option to omit (or subset fonts). Contact XMPie support for information on how to setup subsetting of fonts with PDF output.) ## Glossary ADOR Automatic Dynamic Object Replacement – Also known as "Content Object". This is the XMPie object which is placed into the InDesign layout and is replaced with information from a database at the time of production. RIP Raster Image Processor – Most production printers will have a dedicated PC or server known as a RIP which receives the print file and process it in preparation for printing. Subsetted / subsetting fonts The print output file normally includes or excludes the fonts required for the job. Another option is to include only those font outlines for the characters that are actually used in the print job. This is called font subsetting. This is particularly useful for double-byte fonts which can be very large files because of the huge number of characters in the font set. VDP Variable Data Print – The art of combining a print design with a database. Also known as VI (Variable Information), 121 (one to one) and several other acronyms. X-DOT XMPie Dynamic Object Transparency – a powerful XMPie feature which enables management of transparency related issues automatically at production time. XLIM XMPie Less Is More – XLIM is XMPie’s own document composition engine. Similar to Adobe InDesign Server, XLIM is able to take a document and a database and create variable data print output. Because XLIM has a smaller overhead than InDesign Server, it is able to compose output much faster, but with less design features. ## Watch a webinar Designing for Performance: Optimizing VDP Designs High volume creative VDP campaigns   Created by: Stephen Couch, last updated by Mohammad Mansour: January 2023 ### FreeFlow Core # FreeFlow Core #### Using JDF to Pass Media and Finishing Options to Printers with uStore and FreeFlow Core # Using JDF to Pass Media and Finishing Options to Printers with uStore and FreeFlow Core **Summary**: This article describes how to configure uStore's JDF nodes to pass media and finishing attributes to Xerox printers when using FreeFlow Core. **Audience**: uStore administrator who wishes to set up custom JDF nodes and parameters. **Prerequisites**: Knowledge of uStore Back Office, your Xerox printer/RIP setup, and a basic understanding of JDF is required. ## Overview Web-to-Print is all about saving time and automating your print workflow so that smaller jobs can be handled more efficiently and, therefore, more profitably. StoreFlow provides a powerful combination of software products for eCommerce (uStore) and prepress workflow (FreeFlow Core). It is possible to automate the handling of orders so that they require minimal or even no manual handling. In doing this, one of the things which may need to be done is to set the media or stock type and finishing options needed to print the product. This article looks at creating custom JDF nodes and attributes to pass the required media type from uStore through FreeFlow Core to the printer/RIP. ## Settings on the Xerox Print Server - Open the Stock library and create a new entry for the required media type. See the example below - **New Stock Setup** on Xerox Versant 2100). - Note down the **Name** of the stock to use later in uStore. ## Settings in FreeFlow Core - Create a new workflow in FreeFlow Core, or edit an existing workflow. - Add a Print node to the workflow to send the print output to your Xerox Printer: ## Settings in uStore Back Office ### Creating a JDF Node Set - Log in to uStore Back Office, and click the **Presets** button. - Click **System Setup** and go to the **JDF Node Set** table. - Click the **Add New** button. - Enter the display name for the new stock type. - Click **Save**. - Click the **Back to List** button to return to the **System Setup** screen. ### Creating a JDF Node - Click the JDF Node link. - Click the **Add new** button. - Select the JDF Node Set you created in the previous step. - Enter the **Node XML**: @ProductID= - Enter the **Node Target Xpath**: //ns: - Click **Save**. - Click the **Back to List** button to return to the **System Setup** screen. ### Creating a Product Property You can now choose to make this media type available only on a specific product by adding the media type to the paper type property on an individual product. Or, you can make the media type available globally, so that it is there every time you add paper type property to a product. - To make the addition globally, click **Presets**. - Click **Global Product Properties Setup**. - Click **Paper Type** and scroll down to the section Take values from predefined value(s). - Click **Add new value**. - Enter a display name for the customer to select this new media type. - Enter a description. - The value is entered automatically, but can be changed if desired. (The value is not important. The value from the JDF Node will be used.) - Select the JDF Node Set that you created in step Creating JDF Node Set. ### Setting the Product or Product Profile to Use the Workflow The last step is to set the product or product profile to use the workflow. If you have set up your products and linked them to a product profile: - Go to **Product Profiles**. - Click the profile name. - Click the **Prepress Setup** button. If you are not using product profiles: - Click the **Stores** button. - Click the name of the store. - Locate the product. - Click the name of the product. - Click **Take offline**. - Click the **Prepress Setup** button. - Click the **Add workflow** button. - Select the workflow that you created earlier. Scroll to the bottom and click **OK**. - If desired, you can set the workflow to be default and to auto-run. - Click **Save**. - Click **Place online**. ## Testing and Debugging You can now test ordering the product, processing the order and check the printer to see if the media type is defined correctly. Piece of Cake store product arrives at the FreeFlow Print Server: **Job Properties>Stock** tab shows the correct stock name was applied to the job: If you need to view the JDF that was sent to FreeFlow Core as part of debugging any problems, you can connect to your uStore server via SMB (windows file sharing) \\ A copy of the JDF file is saved to this folder when the job is in the **Prepress in progress** queue. ## Further Reading #### JDF: https:// http://www.cip4.org/ #### Xerox printer support: http://www.office.xerox.com/service-and-support/ #### Xerox FreeFlow Core: http://www.xerox.com/digital-printing/workflow/ #### XMPie uStore: http://help.xmpie.com/uStore/index.htm http://help.xmpie.com/uStore/uStore_Help_Page.htm   Created by: Steve Couch, last updated: November 15, 2015 ### uChart # uChart #### Preset uChart Chart Options # Preset uChart chart options **Summary**: This article describes uChart chart options that have preset values that cannot be overridden. **Audience**: Users of Adobe InDesign, who use the uChart module of uCreate Print to create charts and graphs . **Prerequisites**: Readers of this document should have a basic understanding of the following products: - Adobe InDesign - XMPie uCreate - uChart ## Overview uChart is the XMPie add‐on to uCreate that allows you to create dynamic data‐driven graphical charts and graphs. It integrates the features of Chartbot™, a third party add‐on from Soft Horizons (http://). XMPie has used some of the Chartbot features for its own purposes and has assigned values which cannot be overridden. This document describes which ## Preset uChart Chart Options uChart allows you to further enhance the look of your charts by entering Chartbot commands in theChart Optionsarea of theuChart Properties dialog: You can use any Chartbot command to modify your charts except for the commands listed below. The values of these commands have been pre‐set by XMPie and cannot be overridden. Entering other values will have no effect on the appearance of the chart. | Chartbot Command | Description | Preset Value | | --- | --- | --- | | /3DViewAngle | The viewing angle of the 3D effect. | If 3D Effect is checked the pre-set value is 450; If 3D Effect is NOT checked, the value can be overridden | | /BarGap The | The size of the gap between data bars/columns. | 0 if more than one column; 0.3 for compound charts | | /Chart | The type of chart. | The chart type is determined by the value selected in the Type field of the uChart Properties dialog and cannot be overridden. Possible values are Pie Chart, Column Chart, Line Chart, Area Chart and Compound Chart. | | /ColorList | A list of the colors of the chart’s bars, lines and slices. | The CMYK color selection in theColors Datatable in theuChart Propertiesdialog | | /CutoutText | Text is "cut out" from its surroundings when onchart values overlap the data line making it easier to read. | Yes | | /FillBelow | In Area charts, the area below data line is filled in. The color of the area is determined by the /ColorList processing. The data line color must be set using / | Yes | | /GroupGap | The space between data groups (instead of /BarGap). | 1.5 if more than one column; 0.3 for compound charts | | /Hyphenate | Words using Adobe CID fonts (a large format normally used in Chinese, Japanese and Korean) are not hyphenated. | No | | /LabelOverflow | When on‐chart label text is too long, the text is automatically adjusted so that it shrinks in steps until it fits the space allocated. | ShrinkToFit | | /Layering | In multi‐dimensional charts, each layer of data represents a dimension. This command controls how the data layers are displayed in relation to each other. | Interleave for column graphs; Overlay for other graph types | | /LayerLabel | Sets the LayerLabel text associated with a Layer. | According to layer input. (This option can be overridden with the GUI.) | | /LayerLabelLocation | The location of the layer label on the chart. | When Legend is checked, the layer label is displayed as the legend.; When Legend is NOT checked, refer to Chartbot™ Reference for a list of possible locations. | | /LeftTextLimit | The leftmost limit for text. No text will be rendered to the left of this position. | According to input offset from the chart, determined automatically from box bounds | | /LegendOutlineWidth | The width of the line around each color spot in the legend. | 1 | | /LegendOverflow | When the text in the legend is too long, the, text is automatically adjusted so that it shrinks in steps until it fits. | ShrinkToFit | | /MarkerSize | The size of on‐line data point markers. | 8 | | /OutlineStyle | The drawing style of the lines in line charts and the edging of bars and pies. | Line Charts ‐SolidLine; The outline style of the edging of bars and pies can be overridden. | | /OutlineWidth | There is no “edging” line on bars, lines and slices. | 0 | | /PrintLeftAxis | Shows the vertical axis on the left edge of bar or line chart. | Yes | | /PrintLeftScale | Shows scale numbers along the left of bar and line charts when Y Axis is selected as an option for the Annotate field. | Yes when Y Axis is selected as an option for the Annotate field.; When Y Axis is NOT selected the value can be overridden. | | /RightTextLimit | The right most limit for text. No text will be rendered to the right of this position. | According to input offset from chart, determined automatically from box bounds | | /SliceCutaway | The space between slices in Pie Charts. | When Separate Slices is checked the value is 0.3; When Separate Slices is NOT checked, the value can be overridden. | | /ValueOverflow | When on‐chart value text is too long for the value or space defined, text is automatically adjusted so that it shrinks in steps until it fits. | ShrinkToFit | **Note:** Although you cannot change how existing data affects the look of your charts, you can add more data. For Pie charts you can add more slices and for multi‐dimensional graphs you can add additional layers with other data series.   Created by: Gal Kahana, last updated: August 12, 2010 --- # Video Documentation ### Introduction # Introduction #### Overview # Overview XMPie Video Service (XVS) is a SaaS video personalization solution which enables the creation of variable content videos. It consists of two main components: - **uMerge Video:** A plugin to Adobe After Effects which enables to define video variability and to upload video projects (including footage and data that define the variability) to the cloud. - **XVS dashboard and API:** The XVS can be accessed via the dashboard or the API, to render videos for streaming, stream the final videos and manage the projects of the service. See XMPie Video Service API. Log in to the dashboard at https://dashboard-eu.xmpvs.com **Prerequisites:** Before we get started we need a few things setup. The prerequisites for working with XVS are: - 3-rd party software: Adobe After Effects CC-2020 and above - High-speed internet - Operating system: - PC workstation: Microsoft Windows 10 (64 bit) versions 1703 (Creators Update) and later - Mac: macOS Mojave and above Read the Best practices and guidelines for motion designers article to learn how to prepare and organize your After Effects project for deployment and rendering on the cloud. Watch XMPie Video Service video training for an introduction of the XMPie Video Service, including uMerge Video, which enables the tagging of an Adobe After Effects file, and XMPie Video Service Dashboard which manages, renders, and streams the personalized videos. ## Watch a video Getting started with XVS #### Workflow introduction # Workflow introduction The XMPie video solution workflow is divided into three main phases: design, deployment and rendering. - Design: The design phase consists of connecting to a data source and attaching tags to text or graphic elements in the video. Graphic elements can be either image, video or audio files. This phase takes place in the **uMerge Video** plug-in. - Deployment: The process of uploading all After Effects project materials (i.e. assets, fonts, footage, data source) to the XMPie Video Service (XVS), in order to render the videos on the cloud and serve the videos over the internet. The project, its fonts and footage are uploaded from the uMerge plug-in, whereas the data source and assets may also be uploaded from the XVS dashboard. - Rendering: The rendering phase creates the final personalized video. This phase takes place in the XVS service. In order to use the XVS service, you must first log on to the dashboard: https://dashboard-eu.xmpvs.com ### Additional Resources # Additional Resources ### Designing Videos in uMerge Video # Designing Videos in uMerge Video #### Design # Design The design phase consists of connecting to a data source and attaching tags to project elements, such as text, graphic or shape. Graphic elements can be either image, video or audio files. This process of associating project elements with tags creates dynamic objects in your project. For example, creating a static image and tagging it with a graphic tag results in a dynamic image. This phase takes place in the **uMerge Video** plugin in After Effects. The design phase consists of several steps: Linking to a data source Setting the location of the assets folder Changing the tag type Tagging project elements **Note:** To each layer that is tagged, a marker (#XVS#) is added, denoting that it is a dynamic layer. Do not touch these markers. ## Link to a data source - In After Effects, open your project. - From the Window menu, select **Extensions** > uMerge Video to open the **uMerge** **Video** panel. - From the Options menu, select **Link to Data Source**. - Select a CSV file and click **Open**. Once you link your project to data, tags are automatically created from the linked data fields and displayed in the uMerge Video panel. By default, all tags are of the Text type. Each tag should be changed to its appropriate type. ## Set the location of assets **Note:** Set the location of assets only if you have graphic tags in your project. The assets folder contains all dynamic files in your project (image, video or audio files). XVS searches for the assets listed in your data source file, and uses their values to replace tags during proofing and rendering. You should specify the location of all your assets. Check After Effects documentation for the supported asset types. - From the Options menu, select **Set Assets Folder**. - Select the assets folder and click **Open**. ## Change the tag type - Right-click a tag, and change its type to the required type as in the following example: ## Tag project elements ### Graphic tag If you wish to tag a graphic element (image, video or audio), perform the following: - In your project, select the image, video or audio layer (footage or audio layer) to which you wish to apply variability, and then click the graphic tag in the panel. You can also click the Edit tag  icon in the uMerge Video panel and select the required graphic tag. If you wish to apply copy fitting, display the record that represents the size you wish to maintain for all other records, and then select Copy Fitting. All records will maintain the same rectangle size. **Important:** All values of a specific graphic tag should always have the same extension. ### Text tag The Text tag values can be used in text, shape and footage layers. **Note:** If you plan on using the password protection option, do not use the password tag in the design. To create dynamic text: - In your project, select the text layer to which you wish to apply variability. - On the uMerge Video panel, click the **Edit** tag icon. - Click the desired text tag to add it to the **Content of layer** area. - If you wish to apply copy fitting, display the record that represents the maximum width you wish to maintain for all other records (e.g. a six-letter name), and then select the **Copy Fitting** checkbox. **Wider values will be reduced to the maximum width, but no more than 50% of the original text size. Smaller values will maintain their original size. Begin by displaying the record that defines the maximum width you desire, then activate the Copy Fitting** option. - Click **Save**. To set dynamic object properties: - In your project, select the text, shape or footage layer to which you wish to apply variability. - Select the property that you wish to tag, and click the desired text tag. In the following example, the text layer's opacity property has been tagged. In the following example, the shape layer's opacity property has been tagged. In the following example, the footage layer's rotation property has been tagged. ### Color tag The Color tag controls an object's color properties, such as text, shapes and effects. For example, you can tag a shape's stroke and fill colors, or tag an object using the "Change to Color" effect. To set dynamic color: - In case of a text or shape layer, select the layer to which you wish to apply variability, and click the **Color** tag. To set an object's color properties: - Select any object color property and tag it. The color varies according to the data taken from the Color field. Note that the tag value can appear either in a hex format or as an array of values.   A hex color is expressed as a six-digit combination of numbers and letters defined by its mix of red, green and blue (RGB). The hex format is #RRGGBB. Example: #F17471. The format for an array of values is [R,G,B, A], where R, G, B and A (alpha) are numbers between 0-1 that represent the mix of red, green, blue and alpha. Example: [0.6,0.3,0,0]. ### Visibility tag The Visibility tag controls the visibility of the objects to which the tag is assigned.  When you assign a visibility tag to an object in your design, you can control whether the object will be visible or hidden. For example, if you have a personal message that is appropriate only for male recipients, you can create a visibility tag called "ismale". You can then select the object that includes the message and assign the "ismale" tag to this object. The values of the Visibility tag in the data source can be either 1 or True (visible), 0 or False (hidden). To set the visibility of an object: - In your project, select the layer to which you wish to apply visibility, and then click the visibility tag in the panel. ### Using property pick whip You can use the After Affects' properties pick whip to link a specific property of a text, shape or footage layer, to a property of a layer of a different type. In the following example, the Control layer is a "null" layer. Pick whip is used to set the fill color of the "Shape Layer 1" layer to the same color as the color property of the "Control" layer. Once set, you can tag the color property of the Control layer. **Important:** Parent pick whip is not supported, so if a parent layer contains dynamic content in any of its transform properties, the dynamic values may not be correctly applied to the child layers on the XVS service production. ## Watch videos Creating the video template with uMerge Creating animated infographics #### Deployment # Deployment Deployment is the process of uploading all After Effects project materials (i.e. assets, footage, fonts, data source) to the **XMPie Video Service (XVS), in order** to render the videos on the cloud and serve the videos over the internet. In order to use the service, you must first log on to it. The rendering phase creates the final personalized video. You can deploy and render directly from After Effects. Alternatively, you can deploy from After Effects and then render in the XMPie Video Service (XVS) Dashboard. To deploy and render: - Open your project in After Effects. - From the Options menu, select **Deploy**. - Log in to the XMPie Video Service. The Deploy to XMPie Video Service window opens with the Set Record Id popup above.  - In the **Record Id** field, compose the variability of the name of the final video, e.g. {{RID}}_{{Prefer}}. This will be used in the URL of the video output. In order to comply with GDPR regulations, you should use a unique identifier, such as RID, as the record Id. - From the **Composition** list, select the composition you wish to render. Note that the rendering composition name must be unique and no other composition in the project can have the same name. - If you wish to password protect the videos, select the Password Protection checkbox. - Select any of the following parameters: - **Upload fonts:** To use the project fonts in the final video, copy all fonts used by the project to the following folder: Windows: C:\Program Files\Common Files\Adobe\Fonts\XMPUVideo Mac: ~/Library/Application Support/Adobe/Fonts/XMPUVideo - **Upload assets:** Upload all assets in the assets folder, or just assets used in the data source. - **Upload data source:** Uploads the current data source. - Click the **Deploy** or **Deploy & Render** button as follows: - Use Deploy to upload the project materials to the XVS. Once done, go to the XVS dashboard to render the records. - Use Deploy & Render to additionally trigger rendering of the project according to the uploaded data source. This option is available only if the Upload fonts, Upload assets and Upload data source checkboxes are selected. Once deployment has ended, a status window appears, providing you a link to the XVS dashboard. Rendering may still be taking place in the cloud. You may, however, quit After Effects or continue your work. Go to the Dashboard to follow the rendering process. When done, you can view the videos and copy the personalized video URL. ## Property expressions When deploying the project, text, shape and footage layers are checked by XVS to see if their content and properties contain JavaScript expressions that also include dynamic content or XMPie tags. If some of the properties contain expressions that cannot be parsed or evaluated, a dialog is presented, requesting you to set the appropriate tags in case of dynamic layers, otherwise to select "No Tagging". This is needed because the XVS server renders different segments of the video for each recipient. It needs to know which tags are used in each property so that it will render a new segment if there is a different value in the database for a record where all other values on the stage are the same. Important - Properties of other layer types (e.g., composition layers, null layers, camera layers, light layers) will not be evaluated, and the use of expressions that refer to tags to set the property values is not supported. However, you can use the After Affects' properties pick whip to link a specific property of a text, shape or footage layer, to a property of a layer of a different type. - Parent pick whip is not supported, so if a parent layer contains dynamic content in any of its transform properties, the dynamic values may not be correctly applied to the child layers on the XVS service production. To help you identify the layer and the property, click on the layer icon , and the panel will open the composition and highlight the layer and the property. On the Macintosh, click the layer icon and then cancel to close the dialog. If you identify an expression that contains dynamic content, click the **No Tagging** link, select the **Expression contains tag** option, and then select the appropriate tags. XVS then adds a comment to each expression. If tag(s) were selected, a comment similar to the following is added: /* XVS_TAGS_USED = ["First Name", "Last Name"] */ If no tags exist in the expression, the following comment is added: /* XVS_TAGS_USED = [] */ When you next deploy the project, this dialog will no longer open. If you wish to make changes to the expression, you may edit the comment as needed. ## Watch a video Deploying the project to XVS #### Password protection for videos # Password protection for videos Password protection allows you to secure your videos by requiring users to enter a password before they can watch a video. This ensures that only authorized viewers can watch the video, providing an additional layer of security and control over who can see your content. If the password entered is incorrect, a message indicating the error will be shown. After a certain number of failed attempts, the account will be temporarily locked. This helps prevent unauthorized access and protects the video from being viewed by unintended audiences. Password protection is useful in various scenarios, such as when sharing sensitive information, hosting private events, or controlling access to premium content. By configuring the password settings, including the number of allowed attempts, lock duration, and prompt messages, you can tailor the protection to meet your specific security needs. **Important:** The tag that is used for the password cannot be used in the design. To set password protection: - In the **Deploy to XMPie Video Service** dialog, select the **Password Protection** option. - In the **Password Protection** dialog, configure the following security settings: - **Password Tag:** Select the tag that will be used for verifying the password when opening the video. - **Prompt Text:** Enter the text that will be shown to users when they are prompted to enter a password. For example, “Please enter your password”. - **Wrong Password Message:** Define the message displayed when a user enters an incorrect password, such as "Invalid password. Please try again”. - **Number of Attempts:** Specify how many times a user is allowed to enter an incorrect password before the account becomes locked. If a user exceeds this number, the account will be temporarily locked. - **Lock Duration (minutes):** Specify for how long (in minutes) an account will be locked after the maximum number of incorrect password attempts has been reached. For example, setting this value to 15 means the account will be locked for 15 minutes. - **Lock Message:** Enter the message that users will see if their account is locked due to too many incorrect password attempts. For example, "Your account is locked. Please try again later." - **Attempts Period (minutes):** Set the time frame (in minutes) during which the allowed number of password attempts is counted. For example, if the time period is set to 10 minutes, the attempts count will reset every 10 minutes. ## Watch a video Password protecting your videos #### Best practices for motion designers # Best practices and guidelines for motion designers ## Overview XMPie uMerge Video is a video personalization plugin which enables the creation of dynamic After Effects projects that can be deployed and automatically rendered on a cloud service. This article aims to help designers and animators prepare and organize their After Effects project for deployment and rendering on the cloud. ## General considerations As a rule, an After Effects project intended for deployment using uMerge Video must be optimized for the **fastest** rendering possible. As the project will be later rendered multiple times on a cloud-based server, the fastest and most efficient rendering possible per video instance is most wise and economical. In order to make sure your dynamic After Effects project is ready for optimal deployment, follow these general guidelines. Additional advice regarding specific effects and situations follows below. - Pre-render all layers, except for layers using uMerge Video dynamic data (Composition menu > Pre-render).**Make sure to select the “Import & Replace Usage” in the Output Module Settings window. - It is imperative that you pre-render any layers or precomps that employ 3rd party plugins and effects before deploying to the server. This will ensure that the render on the server will not fail because of a missing effect or that slow plugins won’t hinder the render’s progress. - Where possible, it is recommended to group all background and/or foreground layers in separate precomps and then pre-render. Note:** Do not use After Effects’ built-in composition proxy feature. Instead, render precomps and replace their usage with the complete rendered video file as instructed above. Make sure you preserve the alpha channel and blending modes where required. - Trim the length of all layers that employ uMerge Video’s dynamic data to the minimum time required. Make sure that each layer starts (IN point) exactly when it becomes visible and ends (OUT Point) when it stops being visible. This step is crucial for the operation and efficiency of the cloud-based rendering. - Reduce resolution of large visual assets. It is extremely recommended that all visual assets (still images, graphics and videos) are resized to the minimum resolution required (usually HD 1920x1080 pixels or lower) as larger visual elements significantly slow down the rendering process. - Do not use {{ or }} (double curly brackets) for names of layers or any other element in the project. This will interfere with the proper operation of the uMerge Video plugin. If you must use double curly brackets for any reason, please contact XMPie support for assistance. - When creating the CSV data source, it is recommended to add an ID column that will have a unique ID for each record. When deploying a project for rendering on the cloud server, you should append this unique ID to the video file name. This will ensure each video has a unique file name and can be easily referenced. ## Specific effects and situations ### Blur effects Blur effects are notorious for their slow rendering speed; thus it is recommended to use as few of these effects as possible. When required, it is advisable to use the **Fast Box Blur** effect as this effect has the fastest rendering potential. ### Bake expressions It is extremely recommended to replace any active expressions on a layer with fixed values and/or keyframes (a.k.a. “Bake the expression”). This can be easily achieved by selecting the parameter on the timeline that has an expression applied to it, and then selecting Animation > Keyframe Assistant > Convert expression to keyframes. **Important!** Do not bake the expressions that are on the dynamic layers that use data from the uMerge Video plugin, as this will disable the automatic replacement of data after deployment to the cloud. Do this step only for layers that do not use uMerge Video’s dynamic data. ### Custom fonts Before deployment to the cloud, copy all fonts used by the project as mentioned to the following folder: - Windows - C:\Program Files\Common Files\Adobe\Fonts\XMPUMerge Video - Mac - /Library/Application Support/Adobe/Fonts/XMPUMerge Video This will make sure that the server will have all required fonts when rendering the deployed project. It is recommended that **all** used fonts in the project are copied to this folder as there is no guarantee that the cloud server will have any of the required fonts already installed. ### Reduce project operation Before deployment, it is **not** necessary to reduce the project and remove any unused assets, as the deployed project is already reduced automatically by the uMerge Video plugin before uploading to the cloud. If you still wish to perform the Reduce Project operation before deployment, make sure to select **both** your main composition and the "//XMPieComp" composition from the project panel before running File > Dependencies > Reduce Project. ### Dynamic text size and the Copy Fitting option Make sure that any text layers containing dynamic data are capable of having different lengths of characters. This is to ensure that different sizes and lengths of text are not cut off by track mattes or positioning. The “Copy Fitting” option of the uMerge Video plugin enables **automatic** resizing of text layers depending on their content’s length. To properly activate the Copy Fitting option, follow these simple steps: - Select the relevant dynamic text layer in the composition’s timeline. - Place the Timeline indicator at the specific time when the layer’s “In” animations has completed, i.e. after all animations that bring the layer into full visibility and readability are done. This step is crucial as the uMerge Video plugin calculates the correct size of the dynamic data using the size of the layer at this specific point in time and place. - Click the Edit Tag button in the uMerge Video panel (the pencil icon). In the Tag Text Layer panel that opens, enable the Copy Fitting checkbox at the bottom of the panel and click save. This will make sure that no text will be cut out or hidden. ### Size and Length of dynamic images, video and audio files Make sure that all relevant dynamic images and video files are of the same size and aspect ratio to maintain proportions and avoid layer visibility issues such as clipping. In addition, make sure that all dynamic video and audio files are of the same length and compression type. This will prevent any out-of-sync issues caused by inconsistent footage durations and formats. ### Improve on-demand video rendering during peak time If the personalized segment of the video includes the first name only, one strategy you can implement is rendering common first names in advance. This approach significantly reduces the strain on the rendering units, especially during busy periods. For example, if you pre-render the name "John," it will not be rendered again during peak times, thereby easing the load and improving overall performance. ### Working in the XVS Service # Working in the XVS Service #### XVS dashboard # Working in the XVS dashboard The XMPie Video Service comes with a web management application known as XVS dashboard, which enables you to perform the following operations: Render records Use the video URL On-demand video render View analytics Define webhooks Embed text-to-speech in your project Generate on demand assets using webhooks Log in to the dashboard at https://dashboard-eu.xmpvs.com ## Viewing projects and records You may view the various projects that have been rendered to the service. Click a project to view its records, and then select the record you wish to run.  ## Watch a video Using the XVS dashboard #### Rendering records # Rendering records After a project is deployed, you can render it from the dashboard to create videos. Videos are generated in MP4 and HLS formats. ## Upload assets You may first need to upload the relevant assets. Simply click **Upload > Upload Assets** and select the necessary assets. After the upload, you may review the assets in the Assets tab. ## Upload data source You may also add records that you wish to render. Simply click **Upload > Upload Datasource**, select the relevant data source and click **Open**.   During the CSV data source upload, XVS collects the records which have errors and combines them into a new error CSV file. If errors occurred during the upload, you will receive a message. Click the bell icon in the Status area to view the message, from which you can download, fix and upload the fixed CSV to XVS. ## Copy video URL To use the videos in your applications you would need a URL to the video. The URL can be to a player that plays the specific video, or to the video itself, and can be used in 3rd party video players. Click the **Copy URL** button to get the personalized video URL. You can insert this URL in an email, HTML page or SMS. Make sure to change the {Record_ID} to the specific record ID, as you defined during the deployment phase. You can choose any of the following options: - **HLS Player:** This URL opens a player that plays the video. It can be used as a link in an email or HTML page. This is a general-purpose URL that should be used unless high bandwidth is guaranteed or unless using your own HLS player. Use this player if you wish to track viewing progress events. This player adjusts the viewing quality to suit the viewers’ network bandwidth. It minimizes latency and buffering on mobile and low bandwidth networks. You can pass multiple parameters in the URL query string to configure the video display. You concatenate parameters using an ampersand (&). The configurable parameters are: - controls: Specifies that video controls should be displayed. - height: Sets the height of the video player. - width: Sets the width of the video player. - fullscreen: Opens the video in full screen. - poster: Specifies an image to be shown while the video is downloading, or until the user hits the play button. A full HTTPS encoded URL path should be provided. - loop: Specifies that the video will start over again every time it is finished. Possible values: true or false. - muted: Specifies that the audio output of the video should be muted. Possible values: true or false. - autoplay: Specifies that the video will start playing as soon as it is ready. Note that some browsers may block autoplay if muted is set to false. Possible values: true or false. Example: https://dashboard-eu.xmpvs.com/videoPlayer-v1/index.html?userId=ABC&projectId=...&rid=John&autoplay=true&muted=true&controls=false - **MP4 Player: **This URL opens a player that plays the MP4 videos. It can be used as a link in an email or HTML page. Use this player if you wish to track view progress events. - **HLS URL:** This option adjusts the viewing quality to suit the viewers’ network bandwidth. It minimizes latency and buffering on mobile and low bandwidth network. This URL points to an HLS file that can be used in third party HLS players. - **MP4 URL:** This URL points at the source video, which is the highest quality video. It is not suitable for use on low bandwidth networks. ## Render records After uploading all assets and data sources, and defining webhooks, if needed, you can render the records by clicking the **Render** button. You may filter the list of records to view:  - All records - Records that have rendered successfully - Records waiting to be rendered - Records that failed to render ## On-demand video rendering If you wish to render a video for an additional record, you may use this option. - Click the **Add** button and fill in the form. - Click **Add** to add a record to be rendered later or **Add & Render** to start rendering now. You cannot use any of the following characters in the tag values that will be used in the record Id:   %   *   /   #   [   ]   \   &   ?   + For example, if the record Id is {Recipient Name}_{Sender Name}, the values in these fields should include these characters. #### On-demand video rendering # On-demand video rendering If you wish to render a video for an additional record, you may use this option. - Click the **Add** button and fill in the form. - Click **Add** to add a record to be rendered later or **Add & Render** to start rendering now. You cannot use any of the following characters in the tag values that will be used in the record Id:   %   *   /   #   [   ]   \   &   ?   + For example, if the record Id is {Recipient Name}_{Sender Name}, the values in these fields should include these characters. #### Using the video URL # Using the video URL You can access the personalized video URL, which can be used to insert a link to the personalized video in your HTML page or email. You can also use the provided snippets to create your own personalized video HTML pages. From the projects list, click the code icon of the required project. A window opens, providing you a personalized video URL which you can insert into an email, SMS or webpage, and several snippet samples which can be embedded in your HTML pages. You can also copy the personalized video URL from within the project page using the Copy URL button. ## Watch a video Using videos with cross media #### Analytics # Analytics Video analytics includes a report that displays view progress events. Using this report you can assess the engagement of the viewer. For example, you can see the ratio of customers who got to the end of the video. To view analytics of your project in the XVS dashboard, in the records page click the Analytics tab: The **View Progress** report displays the total number of video views in 10 different segments throughout the video. E.g., if the video contains 100 seconds, the 10% segment represents second 0 through 10. The 50% segment represents second 40 through 50. The view of the segment is counted regardless of whether the viewer watched the entire segment or part of it. **Unique view progress**: The number of recipients who viewed each video segment. The views are counted once per recipient for each segment, regardless of how many times the recipient viewed the video. **View progress:** The number of views for each segment. This count is non-unique, counting multiple views of the same recipient. ## Indication of viewed records In the dashboard's record page, you receive an indication of which records have been viewed. An eye icon appears next to each viewed record. - A green eye indicates that the recipient viewed at least 6 segments (or part of each segment). - A gray icon indicates that the recipient viewed between 1 to 5 segments. - If no icon appears, this means that the recipient did not view the video. ## Unique visits The Visits chart shows for each project the number of unique playbacks of video records. ## Remaining credits You may view how many rendering credits remain in your subscription. At the top right-hand corner of the screen click your username, and from the menu select Credits. ## Analytics webhook The Analytics webhook triggers an API for each analytic event that is written to the XVS database. For example, whenever the 10% segment event is written, a webhook event is triggered which sends the event to a 3rd party application, such as Google Analytics. For more information, see Define webhooks. ### Communicating with external services # Communicating with external services #### Defining webhooks # Defining webhooks ## Overview Webhooks allow XVS to communicate with external services in order to broaden its customer communication capabilities. For example, XVS creates a new video and when the rendering is complete, a webhook is called. The webhook can be a call to a REST API, which in turn triggers an email to the recipients with a link to the video. Another example of webhook usage is sending notifications to Facebook. Webhooks can be called before or after record rendering, and in case of a rendering error. Using webhooks you can trigger the API of XMPie Circle (XMPie’s platform for cross-media campaigns), Zapier or other 3rd party APIs. Developers can also create their own webhooks. XVS provides the following out-of-the-box webhooks: - **General webhook:** Webhooks that communicates with an external service either before or after rendering, or if the event failed. - **Asset webhooks:** Webhooks that generate assets, such as image, audio or video files, when the rendering process begins. These files are stored in the XVS project's assets folder and can be used in the videos. There are several types of asset webhooks: - **Simple:** Retrieves an image, audio or video file from a URL. - **Custom:** Invokes an API to a third party, which then provides a URL to an image, video, or audio file. For example, you can utilize third-party services for creating AI-generated content. - **Personalia:** Retrieves a personalized image generated in Personalia. - **Dall-E:** Invokes the OpenAI image generation API, which then provides a URL to an image file. - **Text to Speech (TTS):** This technology enables text to be converted into speechaudioimitative of the human voice. This is used before rendering, to generate the personalized audio assets that are used in the video.  E.g., john.mp3, george.mp3. Using TTS it is possible to automatically convert dynamic text, composed from the record tag values, into dynamic audio assets, and embed these assets in the personalized videos. It is no longer needed to manually record each dynamic audio file. For more information, see Embed text-to-speech in your project. - **Circle trigger:** This webhook triggers a Circle touchpoint following completion of the rendering process. For example, sending an email with the video URL to each of the recipients. - **Analytics webhook:** This webhook triggers an API for each analytic event that is written to the XVS database. For example, whenever the 10% segment event is written, a webhook event is triggered which sends the event to a 3rd party application, such as Google Analytics. To create a webhook: - Click the **Webhooks** link, and then click **Add** to create a new webhook. - Select one of the following: - General Webhook - Assets Webhook - Circle Trigger Webhook - Analytics Events Webhook ## General webhook These webhooks communicate with an external service either before or after rendering, or if the event failed. - Give the webhook a name. - Enter the following information: - Event type: RenderStart: The webhook will be called before the record rendering. An example can be a text-to-speech webhook that creates a dynamic sound file to be used during rendering. - RenderDone: The webhook will be called after the record rendered successfully. An example is a webhook that sends an email which includes the personalized video URL. - RenderFail: Rendering of the video fails. - URL: The URL to which data is sent when the trigger occurs. This can either be a URL that you've set up in Circle, Zapier or other service, or a REST API. - Method: GET, PUT or POST method. - Header: The API header JSON data. - Body: The JSON data that is sent to the URL. The data can include static text, or any of the tag values. - Enable webhook to create dynamic assets (RenderStart event type only): Select this checkbox if the webhook creates dynamic assets, so rendering preflight will not fail due to missing assets. - Test the configuration by clicking **Add & Test** and selecting a sample record. This executes the webhook and allows you to check that it is valid. The following is an example of an XVS webhook feature used to trigger an email to be sent to the recipient when the personalized video has been created and is ready to be viewed. ## Assets webhooks Asset webhooks generate assets, such as image, audio or video files. These files are stored in the XVS project's assets folder. There are several types of asset webhooks: Simple, Custom, Personalia, DALL-E, Text to Speech. Read more for the full workflow on how to generate on-demand assets using the asset webhook. **Important:** Take into consideration that assets are not overridden and cannot be deleted. So in case the asset already exits, the webhook will not generate a new one and replace it. - Give the webhook a name. - From the **Select Target Graphic Tag** dropdown, select the graphic tag whose values will be used as the asset names of the generated files. **Important:** Make sure that the extension of the graphic tag value matches in format the asset created by the webhook. - From the **Asset Webhook Type** dropdown, select the required type of asset webhook. ### Simple Simple webhooks retrieve an image, audio or video file from a URL. Enter the following information: - Asset URL: Enter the URL of the asset to be retrieved. The URL can include a tag, for example {{PhotoUrl}} or https://..../{{First Name}}. - Method: GET, PUT or POST method. - Headers: The API header JSON data. - Body: The JSON data that is sent to the URL. The data can include static text, or any of the tag values. ### Custom Custom webhooks invoke an API to a third party, which then provides a URL to an image, video, or audio file. For example, you can utilize third-party services for creating AI-generated content. Enter the following information: - Webhook URL: Enter the webhook URL that will return the JSON which includes the image URL. - Method: GET, PUT or POST method. - Headers: The API header JSON data. - Body: The JSON data that is sent to the URL. The data can include static text, or any of the tag values. - Result path: This is the path to the image URL within the JSON structure. The JSON response structure may look like this: {   "data": {     "images": [       {         "url": "https://example.com/image1.jpg",         "metadata": {           "description": "A sample image",           "size": "1024x768"         }       },       // Additional images may be present in the array     ]   },   // Other fields in the JSON response } In the example above, the path to the image URL is "data.images[0].url". ### Personalia Personalia webhooks retrieve a personalized image generated in Personalia. In Personalia, copy the JSON of your template. This is an example of a JSON: {   "TemplateId": "d767e577-8e77-43eb-a88b-97b19755575c",   "Fields": { "ID": "4027535" "First Name": "Jane", "Last Name": "Smith"   } } Enter the following information: - Template Id: Enter the Personalia template ID. - API Key: Enter the Personalia API key. - Fields: Paste the JSON fields. You may personalize any of these fields using double curly brackets {{}}. - Format: JPG or PNG. - Resolution: Enter the required resolution of the image. ### DALL-E Dall-E webhooks invoke the OpenAI image generation API, which then provides a URL to an image file. Enter the following information: - API Key: Enter the OpenAI API key. - Model: The model to use for image generation. - Prompt: Enter a textual description of the image you wish DALL-E to generate. - Size: The size of the generated image. ### Text to Speech webhook Using the Text to Speech (TTS) webhooks it is possible to automatically convert dynamic text, composed from the record tag values, into dynamic audio assets, and embed these assets in the personalized videos. For more information, see Embed text-to-speech in your project. Enter the following information: - Engine: - Standard: Standard TTS voices use concatenative synthesis. This method strings together (concatenates) the phonemes of recorded speech, producing very natural-sounding synthesized speech. - Neural: A system that can produce higher quality voices than standard TTS voices. The NTTS system produces the most natural and human-like text-to-speech voices possible. - Voice Languages: Select the language of the speaker. - Voice ID: Select the preferred voice of the speaker. - Text: The text which will be converted into speech. This can include tags. - Use SSML: Select to use Speech Synthesis Markup Language (SSML) in your Text-to-Speech request to allow for more customization in your audio assets. Examples include pauses, pronunciation of acronyms, abbreviations, dates, times, whispering, and more. See Supported SSML Tags. ### Testing your asset webhook Test the webhook by clicking **Add & Test** and selecting a sample record. This executes the webhook and allows you to check that it is valid. **Important:** Take into consideration that assets are not overridden and cannot be deleted. So in case the asset already exits, the webhook will not generate a new one and replace it. You can download the asset, or copy the asset's secured temporary URL. The following are examples of an image and audio assets created by the asset webhook: ## Circle Trigger webhook These webhooks trigger a Circle touchpoint following completion of the rendering process. For example, sending an email with the video URL to each of the recipients. - Give the webhook a name. - Enter the following information: - Recipient ID ADOR Name: The Recipient ID ADOR name in Circle. Leave as is. - XMPL Token: The XMPL token. - URL: Replace [XMPL_SERVER_ADDRESS]. - Circle Touchpoint ID: The ID of the touchpoint in Circle, e.g. E1. - Test the configuration by clicking Add & Test and selecting a sample record. This executes the webhook and allows you to check that it is valid. ## Analytics Events webhook The analytics webhook enables connectivity with third-party analytics systems. The webhook triggers an API for each analytic event that is written to the XVS database. For example, whenever the 10% segment event is written, a webhook event is triggered which sends the event to a 3rd party application, such as Google Analytics. - Give the webhook a name. - Enter the following information: - URL: The URL to which data is sent when the trigger occurs. This can either be any third party URL, such as Google Analytics. - Method: GET, PUT or POST method. - Header: The API header JSON data. - Body: The JSON data that is sent to the URL. The data can include static text, or any of the analytics tag values. The analytics tag values are: userId, projectId, recordId : the XVS user name, project and record of the video from which the event was triggered. - eventAction: the event type. For example, analytic event actions include play, progress10, progress20, ...., progress90, pause, ended. - eventLabel: the event's unique identifier. - utcTime: the event's UTC time. - userAgent: text that describes the software/browser (the "Agent") that is making the request to a website. Once clicking the body area, the example is cleared, and you can enter the required body. - Test the configuration by clicking **Add & Test** and selecting a sample record. This executes the webhook and allows you to check that it is valid. During testing dummy analytic tag values are used. ## Watch a video Automating an XM video campaign with an external touchpoint and webhook #### Generating on demand assets using webhooks # Generating on demand assets using webhooks Asset webhooks allows you to get or generate images, audio or video files during the rendering process, that will be used as assets in the current project.  There are several types of asset webhooks: - Simple: Retrieves an image, audio or video file from a URL. - Custom: Invokes an API to a third party, which then provides a URL to an image, video, or audio file. For example, you can utilize third-party services for creating AI-generated content. - Personalia: Retrieves a personalized image generated in Personalia. - Dall-E: Invokes the OpenAI image generation API, which then provides a URL to an image file. - Text to Speech (TTS): This technology enables text to be converted into speechaudioimitative of the human voice. This is used before rendering, to generate the personalized audio assets that are used in the video.  E.g., john.mp3, george.mp3. For more information, see Embed text-to-speech in your project. During the rendering phase, image, video or audio assets are generated on demand. However, in the design phase, these files are not yet available. To address this, you will need to create a temporary file. In case of video or audio files, the temporary file's duration should exceed that of the longest file duration. To embed on-demand asset files in your project: - Create a single temporary mp4 video file. For example, Elizabeth.mp4 This file should have the longest duration of all VideoName value files that will be created during rendering, to ensure that it remains uncut. This file will be later replaced in XVS during rendering. - In your CSV file, add a column containing the name of the mp4 file (in this example it is called "VideoName"). - Tag the graphic layer VideoName tag into your design. - Select the image, video or audio layer to which you wish to apply variability, and then click the graphic tag in the panel. - Deploy the project. Do not upload the assets. - Once deployed, open the project in the dashboard. - Click the **Webhooks** tab > **Add** > **Asset Webhook**. - Create an asset webhook. - Click the **Assets** tab to upload all assets **excluding** the temporary video file. You can upload more CSV files to create additional videos with on-demand assets. - Click the **Records** tab, and select **Render All**. #### Embedding text-to-speech in your project # Embedding text-to-speech in your project Text-to-speech (TTS) is the generation of synthesized speech from text, imitative of the human voice. The technology behind text-to-speech has evolved over the last few decades. Using deep learning, it is now possible to produce very natural-sounding speech that includes changes to pitch, rate, pronunciation, and inflection. Using TTS, it is possible to automatically convert dynamic text, composed from the record tag values, into dynamic audio assets, and embed these assets in the personalized videos. There is no need to manually record each dynamic audio file. The Text-to-Speech audio files are assets which are created on-the-fly before the rendering process. During rendering, these assets are used to generate the personalized video. An example of dynamic text that can be converted into an audio file: *Hello {{FirstName}} {{LastName}}, this is your personalized video.* If you wish to create different content for each record, in your CSV file create a special tag which contains the content to be converted into speech, for example the Content tag: TTS can be used in a variety of languages and dialects, and in both male and female voices. Since the TTS audio file is created only during rendering, you will need to create a temporary audio file. This file is needed for tagging during the design stage. To embed audio files in your project: - Record a single temporary mp3 audio file. For example, steve.mp3 The length of this temporary file should be greater than the longest spoken sentence. This file will be later replaced in XVS during rendering. - In your CSV file, add a column containing the name of the mp3 file (in this example it is called "Speech"). - Create a voice layer in your After Effects project, and tag it with the voice tag. - Deploy the project. Do not upload the assets. - Once deployed, open the project in the dashboard. - Click the **Webhooks** tab > **Add** > **Asset Webhook**. - Give the webhook a name. - From the **Select Target Graphic Tag** dropdown, select the graphic tag whose values will be used as the asset names of the generated files. **Important** Make sure that the extension of the graphic tag value matches in format the asset created by the webhook. - From the **Asset Webhook Type** dropdown, select the **Text To Speech** webhook. - Specify the following fields: - Engine: Standard: Standard TTS voices use concatenative synthesis. This method strings together (concatenates) the phonemes of recorded speech, producing very natural-sounding synthesized speech. - Neural: A system that can produce higher quality voices than standard TTS voices. The NTTS system produces the most natural and human-like text-to-speech voices possible. - Voice Languages: Select the language of the speaker. - Voice ID: Select the preferred voice of the speaker. - Text: The text which will be converted into speech. This can include tags. In the above example, the text is taken from the Content tag. - Use SSML: Select to use Speech Synthesis Markup Language (SSML) in your Text-to-Speech request to allow for more customization in your audio assets. Examples include pauses, pronunciation of acronyms, abbreviations, dates, times, whispering, and more. See Supported SSML Tags. - Click the **Assets** tab to upload all assets **excluding** the temporary audio files. - You can upload more CSV files to create additional videos with Text-to-Speech. - Click the **Records** tab, and select **Render All**. ## Guidelines when working with Text-to-Speech Try to avoid creating one long audio file for the entire project, since the entire video will have to be rendered for each record, resulting in a long rendering time. Instead, split the text into reusable and unique elements, so that the reusable elements will be rendered only once, whereas the unique ones will be rendered per record. In the following example, we see two parts of each sentence. The first part, which includes Hello {{FirstName}}, is unique for each record, whereas the second part is repeated across several records. We divided the text into two separate audio files. In the following example, the "welcome to the team text" in the Content 2 column will be created and rendered only once. In this case we will create two different webhooks, one for the text in Content 1, and one for the text in Content 2. --- # XES Documentation ### Basics # Basics #### About XMPie Email Services # About XMPie Email Service (XES) XMPie Email Service (XES) offers a commercial-grade solution for personalized email delivery and tracking. The service's email delivery uses** Amazon Simple Email Service** (Amazon SES) ensuring an integrated and effective solution. XES is a cost-effective email service integrated with the reliable and scalable infrastructure that Amazon.com developed to serve its customer base. XES is an easy way for sending and receiving emails using your own email addresses and powers permission-based email delivery and reporting. XMPie Email Service provides: - Increased sending speed - Better deliverability/inbox placement - Improved reliability and scalability - Greater scalability and robustness - Basic authentication (DKIM, SPF, DMARC) - No limitation on the number of fields that can be used in an email - Tighter integration - Better support XES safeguards reputation of your emails and enhances deliverability by: - Defining sending limits to control delivery rates - Enforcing high-quality email-sending practices (e.g., avoiding excessive bounces and complaints) - Providing simulators for email testing For more information, see Email Reputation and Deliverability. ## More topics Getting Started with XES Using XES in uStore XES Security Requirements #### Using XES in uStore # Using XES in uStore XMPie Email Service ensures reputation and deliverability by requiring verification of the sender's email address. This impacts email products and transactional emails in uStore. In this topic you will learn how to: - Verify the senders' email addresses - Select the XES delivery provider - Amend the email activity in order to keep on working with uStore ## Email products ### Verify the sender's email address In uStore, sender addresses used in email products must be verified. The sender's address is defined in the email activity used in the email product. - In uStore, go to the **Product Setup** window of the selected email product, and in the **Email** **Template** section see which email activity is used. - In uProduce, open this email activity and verify the sender's address. - You may want to use an ADOR in the sender address of email products for customization or personalization purposes. Take into account that this will not be supported if the value of this ADOR is an email address that hasn't been verified. Do one of the following: - If all the **From** email addresses are expected to be from the same domain, verify the entire domain. In this case, all emails (arriving via the ADOR) will automatically be considered as verified. - Use a verified static address (such as noreply@yourdomain.com) in the **From** field, and enter a personalized display name using an ADOR in the **From Name** field. For example, in case of a Refer a Friend flow, use an ADOR for the referrer's name in the **From Name** field. - If you want to enable replies to personalized addresses that have not been verified, use the verified static address in the **From** field and use the unverified personalized address (arriving via the ADOR) in the **Reply To** field. This requires an upgrade to PersonalEffect version 9.0.2 and above. ### Select the XES delivery provider In uStore, select XES as the delivery provider for email products. The delivery provider is defined in the email activity used in the email product. - In uStore, go to the **Product Setup** window of the selected email product, and in the **Email****Template** section check which email activity is used. - In uProduce, open this email activity and select the XES delivery provider. ## Transactional emails ### Verify sender's email address In uStore, sender addresses used in transactional emails (e.g. order submission email) must be verified. Sender addresses are defined when creating a trigger rule. - Go to **Presets** > **Trigger Setup** > **Trigger list** > **Edit RuleSettings** dialog box > **Sender Address** field. - Change this address to a verified address, or verify it in the delivery provider section in uProduce. If the email is configured to be sent to multiple addresses, e.g. when a user group is the target, you will need XES v.3.0.4 which supports multiple To addresses. It is recommended to test a triggered email to make sure that the email arrives to all recipients. You may want to test it with your email addresses. If needed, contact Support. ### Select the XES delivery provider In uStore, select XES as the delivery provider for this transactional email: - Go to the **Store Setup** window of the required store. - In the **Advanced** tab, from the **Email Provider** list select **XES**. ### Getting Started # Getting Started #### Getting Started with XES # Getting Started with XES In this help you will get step-by-step instructions on getting started with XES. You will learn how to: ### Step 1: Select the XES delivery provider - To work with XES, you need to select the XES delivery provider in the relevant components: email activities and email touchpoints. ### Step 2: Verify the sender's email address - XES requires that you verify your email address or domain, to confirm that you own it and to prevent others from using it. You are therefore required to verify the senders' addresses used in emails which you will send through XES, to protect your sending identity. You can verify the email sender addresses either in the Delivery Provider setting in uProduce (2G), or in the Email Activity setting (1G). ### Step 3: Define the email footer settings - It is required that you define the physical address and the unsubscribe address of the email footer and not use the default delivery provider's settings, which are not supported by the new XES. ## More topics Selecting the Delivery Provider Verifying the Sender’s Email Address Verifying the Sender’s Email Address (1G) #### Selecting the Delivery Provider # Selecting the Delivery Provider Define the XES delivery provider in email activities in uProduce and email touchpoints in Circle. Email activities in uProduce - Open the email activity in uProduce. - In the **Delivery** section, select **XES from**the **Email Provider** list. Email touchpoints in Circle - Open the project in Circle, and then open the **Production** window of the email touchpoint. - In the **Settings** section, select the **XES** delivery provider. If you don’t see the new XES in the list, click the **Library** button in the **Build** tab (a one-time operation). #### Verifying the Sender’s Email Address # Verifying the Sender’s Email Address in uProduce XES provides the means to safeguard reputation of your emails and enhance deliverability. XES requires that before you send emails, you must verify each email address that you will use as a "From" or "Sender" address to prove that you own it. The sender's address must be verified when its used in: - Email activities in uProduce (1G) - Mass and triggered email touchpoints in Circle (2G) The following explains how to verify the senders' email addresses in the **Delivery Providers** setting in uProduce. To verify sender’s email address: - Sign in to the uProduce dashboard. - On the navigation bar, click **Settings**. - On the left panel, click **Delivery Providers**. - Click the **Edit** link of the XES delivery provider. - Under **Email Verification**, in the **Sender Address** field, enter the email address you wish to verify and click **Verify**. **Note:** The entire email address is **case sensitive**. For example, if you verify support@ABC.com, you cannot send emails from Support@abc.com unless you verify Support@abc.com also. An email is now sent from Amazon SES to the owner of this address, asking for confirmation on the ownership of this email address. In the **Verification status** table, the new email appears with the **Pending** status. - Make sure to inform your contact persons at the company that they will receive an email from Amazon SES, which includes a verification link that they must click within **24 hours**. The following is an example of an address verification email received from Amazon: Once verified (the link is clicked), the following webpage appears: The status in the Verification table changes to **Success**. You can now use XMPie Email Service (XES) to send emails from this address. **Note:** If you have emails/triggered emails that use ADORs as the sender address, for example a Refer a Friend email, this will not be supported since the values of these ADORs have not been verified. Do one of the following: - If all the **From** email addresses are expected to be from the same domain, verify the entire domain. In this case, all emails (arriving via the ADOR) will automatically be considered as verified. To do this you will have to contact Support. - Use a verified static address (such as noreply@yourdomain.com) in the **From** field, and enter a personalized display name using an ADOR in the **From Name** field. For example, in case of a Refer a Friend flow, use an ADOR for the referrer's name in the **From Name** field. - If you want to enable replies to personalized addresses that have not been verified, use the verified static address in the **From** field and use the unverified personalized address (arriving via the ADOR) in the **Reply To** field. This requires an upgrade to PersonalEffect version 9.0.2 and above. #### Verifying the Sender’s Email Address (1G) # Verifying the Sender’s Email Address in uProduce (1G only) XES provides the means to safeguard reputation of your emails and enhance deliverability. XES requires that before you send emails, you must verify each email address that you will use as a "From" or "Sender" address to prove that you own it. The following explains how to verify the **From** email addresses in the **Email Activity** setting in uProduce. To verify sender’s email address (1G): - Open or create a new **Email Activity** in uProduce. - In the **Message Header** section, enter an email address in the **From Email** field, and click **Verify**. **Note:** The entire email address is **case sensitive**. For example, if you verify support@ABC.com, you cannot send emails from Support@abc.com unless you verify Support@abc.com also. An email is now sent from Amazon SES to the owner of this address, asking for confirmation on the ownership of this email address. - Make sure to inform your contact persons at the company that they will receive an email from Amazon SES, which includes a verification link that they must click within **24 hours**. The following is an example of an address verification email received from Amazon: Once verified (the link is clicked), the following webpage appears: You can now use XMPie Email Service (XES) to send emails from this address. **Note:** If you have emails/triggered emails that use ADORs as the sender address, for example a Refer a Friend email, this will not be supported since the values of these ADORs have not been verified. Do one of the following: - If all the **From** email addresses are expected to be from the same domain, verify the entire domain. In this case, all emails (arriving via the ADOR) will automatically be considered as verified. - Use a verified static address (such as noreply@yourdomain.com) in the **From** field, and enter a personalized display name using an ADOR in the **From Name** field. For example, in case of a Refer a Friend flow, use an ADOR for the referrer's name in the **From Name** field. - If you want to enable replies to personalized addresses that have not been verified, use the verified static address in the **From** field and use the unverified personalized address (arriving via the ADOR) in the **Reply To** field. This requires an upgrade to PersonalEffect version 9.0.2 and above. #### Defining the Email Footer Settings # Defining the Email Footer Settings Use the settings described below when defining the email footer for emails using the new XES. This has to be done both in uProduce and Circle. ## In uProduce To define the physical address and the unsubscribe web address in the account: - Enter the **Edit Account** window. - In the **Email Settings** section, go to **Physical address**. - Select **Custom**, and enter values in all fields below. Note that existing accounts that are defined with the **Use Delivery Provider defaults** will not be supported by the new XES and should be changed to **Custom**. - Go to the **Unsubscribe Web address** section, and selectUse the generic Unsubscribe page or **Custom**. Note that existing accounts that are defined with the **Use defaults of delivery provider**will not be supported by the new XES and should be changed to any of the other options. To define the unsubscribe web address in the campaign: - Enter the **Edit Campaign** window. - Go to the **Unsubscribe Web address** section, and select **Use Account's settings**, **Use the generic Unsubscribe page **or** Custom**. Note that existing campaigns that are defined with the **Use defaults of delivery provider**will not be supported by the new XES and should be changed to any of the other options. ## In Circle To define the physical address and the unsubscribe web address in the account: - Open the relevant project and click the **Connect** button. - Click the edit icon of the **uProduce Account** option. - In the **Edit Account** window > **Email Settings** section, go to **Physical address**. - Select **Custom**, and enter values in all fields below. Note that accounts that are defined with the **Use Delivery Provider defaults** will not be supported by the new XES and should be changed to **Custom**. - Go to the **Unsubscribe Web address** section, and select **Use the generic Unsubscribe page** or **Custom**. ### Email Reputation and Deliverability # Email Reputation and Deliverability #### Email Reputation and Deliverability # Email Reputation and Deliverability XMPie Email Service provides the following features to safeguard the reputation of your emails and enhance deliverability: ## Sender email address verification XES requires that you verify your email address or domain, to confirm that you own it and to prevent others from using it. You are therefore required to verify all email addresses from which you send emails through XES, to protect your sending identity. ### Domain verification If you want to permit sending from any email address in the company, you can verify the company domain. This effectively verifies **all** email addresses ending in that specific domain. This is an efficient way to verify many email addresses, as opposed to verifying each email address individually. To verify your domain, please contact Support. ### Email verification Verifying email addresses requires verification of the **From** addresses used when sending emails. For example, if you are creating a campaign for company ABC, and sending emails from info@ABC.com, marketing@ABC.com and support@ABC.com, you must verify all of these From addresses. Make sure to inform your contact person at the company (e.g. ABC) that during the verification process, they will receive an email from Amazon SES for each of these addresses, which includes a verification link that they must click within 24 hours. You will see the status of each From address in the **Verification status** table in uProduce, so that you can follow up on the statuses of the email address verification. Once verified (status is “Success”), you can use the From address in your campaigns. #### Important notes about email address verification: - The entire email address is **case sensitive**. For example, if you verify support@ABC.com, you cannot send emails from Support@abc.com unless you verify Support@abc.com also. - Emails must be verified within 24 hours after the verification request. You should follow up and make sure your contact person has verified the emails. If an email is in the pending status, this means that it hasn’t been verified yet. The following documents explain how to verify in uProduce the From email addresses that will be used when sending emails from uProduce, Circle or uStore: - Verifying the Sender’s Address - Verifying the Sender’s Address (1G) ## Sending limits to control delivery rates XMPie Email Service accounts have a set of sending limits to regulate the number of email messages that you can send and the rate at which you can send them. Sending limits help you to gradually ramp up your sending activity and decrease the likelihood that Inbox Providers will block your emails because of sudden, unexpected spikes in your email sending volume or rate. There are two sending limits: a sending quota (the maximum number of messages you can send in a 24-hour period) and a maximum send rate (the maximum number of emails that XMP Email Service can accept from your account per second). In the** Delivery Providers** section in uProduce, click **Edit** for your email provider to see the amount of emails that were sent in the last 24 hours. By default, you can send up to 500,000 emails within 24 hours. If you need to increase this number, contact Support. ### When do I need a dedicated IP? When you create a new XES account, by default your emails are sent from IP addresses that are **shared** with other users via a pool of IP addresses. You can also use **dedicated IP** addresses that are reserved for your exclusive use by leasing them for an additional cost. This gives you complete control over your sender reputation and enables you to isolate your reputation for different segments within email programs. ### What is the default send rate for the shared IP? The max default send rate is 500K per 24 hours, 70 email per second. If you wish to increase it, please contact Support. ### How to increase the default send rate for the dedicated IP? When purchasing a dedicated IP, you are limited to 40 emails per second per dedicated IP. If you wish to increase the send rate, you will need to purchase an additional dedicated IP. Please contact Support. ## Enforcing high-quality email-sending practices If the emails you send result in excessive bounces, complaints, or other issues, this may indicate that you are engaged in low-quality email-sending practices and your sending abilities may be placed on probation or suspended. This process is called **enforcement**. ### Bounces Your bounce rate includes hard bounces to domains you have not verified. Hard bounces are permanent delivery failures such as "address does not exist." Temporary and intermittent failures such as "mailbox full," or bounces due to blocked IP addresses, do not count toward your bounce rate. In order to ensure a high reputation for this service, email bounce rates must be kept to a minimum, preferably less than **5%**. If you bounce rate exceeds **10%**, you risk your account being suspended. If you exceed the bounce rate, you will be notified by XES to investigate the issue and fix the problem, i.e. remove bounced addresses from your mailing lists and stop sending mail to them. If you do not take care of this, your account may be suspended by SES. Email addresses must therefore be validated before being sent. There are many free websites over the internet to validate email addresses, such as www.datavalidation.com and www.neverbounce.com For information on reducing bounces, see Understanding email deliverability in Amazon SES. ### Complaints A complaint occurs when a recipient reports that they do not want to receive an email. They might have clicked the "This is spam" button in their email client, complained to their email provider, notified XMPie Email Services directly, or through some other method. High complaint rates are often indicators that a sender is sending to recipients who did not specifically sign up to receive emails, or that the sender is sending content that is different from the type that recipients signed up for. The number of complaints from end email recipients must remain below **0.1%**. Your account may be suspended if your complaint rate exceeds **0.5%**. In case you exceed the complaint rate, you will be notified by XES to fix the problem, i.e. review your list acquisition process and the content of your emails to try to understand why your recipients might not appreciate your email. If you do not take care of this, your account may be suspended by XMPie Email Service (XES). For information, see Complaints FAQ. ### Probation and Suspension When a significant issue with the sending on your account is detected, you will be notified by XES and be given time to fix it. At this point XMPie Email Service places you on probation. You can still send emails, but if you don't fix the problem in the given timeframe or sending allowance, your sending privileges may be suspended. At this point, look at the email you received from XES for a summary of the issue, and investigate your sending to determine what aspect of your sending triggered the issue. If possible, stop sending emails until you fix the problem. If you are put on probation for a sending problem (for example, bounces), the probation expires, and the issue has not been resolved, your account will be suspended.  If a suspension occurs, your account will be shut down so you can no longer send emails. A suspension can also occur if your problem is so severe that you were immediately suspended without a probation period. In this case, examine the email you’ve received from XES for a summary of the issue, investigate your sending to determine what aspect of your sending specifically triggered the issue. ## Mailbox simulator for email testing When using XMPie Email Service, you can use the Amazon SES mailbox simulator, which is a set of test email addresses. Each email address represents a specific scenario. You can send emails to the mailbox simulator when, for example, you want to test how your email sending program handles bounces and complaints or generate a bounce without putting a valid email address on the suppression list. To use the mailbox simulator, email the addresses and observe how your setup responds to the simulated scenarios. Examples of simulated address that you would use for specific scenarios: - To test successful delivery, use **success@simulator.amazonses.com** - To test bounced emails, use **bounce@simulator.amazonses.com** - To test complaint emails, use **complaint@simulator.amazonses.com** Note that you will be billed for these emails. However, emails to the mailbox simulator will not affect your email deliverability metric for bounces and complaints, nor count against your sending quota. For more information see Sending test emails in Amazon SES with the simulator. ## Google/Yahoo delivery requirements This section is relevant if you are an XMPie Email Service customer who sends thousands of emails to Gmail/Yahoo recipients. Gmail and Yahoo have a set of requirements to protect against spam, reinforce the long-standing industry best practice, and improve the email experience for recipients. They require that bulk sender domains authenticate their emails, allow for easy one-click unsubscribe and to stay under a reported spam threshold. A domain is considered a bulk sender if there are about 5,000 emails sent to Gmail/Yahoo recipients within a 24-hour period regardless of the email provider. Also, emails sent from different subdomains belonging to the primary domain also count toward the 5,000 limit. Here is what you need to do: - Fully authenticate Brands that send many thousands of emails every day, are required to authenticate their sender IP addresses and domains using SPF, DKIM, and DMARC. What you need to do: Most bulk senders are already using SPF, DKIM, and DMARC. You should check and make sure that you are too. If not, contact Support@xmpie.com and get the advanced sender package as soon as possible. - One-click unsubscribe feature Gmail and Yahoo have a one-click unsubscribe feature which allows recipients to easily unsubscribe without the need to search the email body for the unsubscribe link. Brands are required to facilitate the one-click unsubscribe feature. What you need to do: XMPie has implemented the one-click unsubscribe feature. - For triggered email: You will need to upgrade to the relevant uProduce version. - For batch email: You need to make sure the email body includes the unsubscribe link that is populated using the built-in Email Unsubscribe URL ADOR. Any email with such a link in the body will automatically support the one-click unsubscribe feature. - Keep spam rates low Gmail and Yahoo require that senders aim to keep spam rates below 0.1% and avoid a spam rate of 0.3% or higher, especially for a sustained period. What you need to do: According to Google, you can check your spam rates in Postmaster Tools.  Be sure to keep rates below 0.10% and avoid reaching a spam rate of 0.30% or higher. ## Custom MAIL FROM ### Why use a custom MAIL FROM domain? Messages that you send through Amazon SES automatically use a subdomain of amazonses.com as the default MAIL FROM domain. Sender Policy Framework (SPF) authentication successfully validates these messages because the default MAIL FROM domain matches the application that sent the email—in this case, SES. If you don't want to use the SES default MAIL FROM domain, and would rather use a subdomain of a domain that you own, this is referred to in SES as using a custom MAIL FROM domain. To do this, it requires you to publish your own SPF record for your custom MAIL FROM domain. In addition, SES also requires you to set up an MX record so that your domain can receive the bounce and complaint notifications that email providers send you. By using a custom MAIL FROM domain, you have the flexibility to use SPF, DKIM, or both to achieve Domain-based Message Authentication, Reporting and Conformance (DMARC) validation. DMARC enables a sender's domain to indicate that emails sent from the domain are protected by one or more authentication systems. There are two ways to achieve DMARC validation: Complying with DMARC through SPF and Complying with DMARC through DKIM. ### Choosing a custom MAIL FROM domain In the following, the term MAIL FROM domain always refers to a subdomain of a domain that you own - this subdomain that you use for your custom MAIL FROM domain must not be used for anything else and meets the following requirements: - The MAIL FROM domain has to be a subdomain of the parent domain of a verified identity (email address or domain). - The MAIL FROM domain shouldn't be a subdomain that you also use to send email from. - The MAIL FROM domain shouldn't be a subdomain that you use to receive email. ### How to configure a custom MAIL FROM domain in XES? After you configure an identity to use a custom MAIL FROM domain, the state of the setup is "pending" while Amazon SES attempts to detect the required MX record in your DNS settings. The state then changes depending on whether Amazon SES detects the MX record. Depending on your DNS provider, there might be a delay of up to 72 hours before Amazon SES detects the MX record. To successfully set up a custom MAIL FROM domain with Amazon SES, you must publish exactly one MX record to the DNS server of your MAIL FROM domain. If the MAIL FROM domain has multiple MX records, the custom MAIL FROM setup with Amazon SES will fail. Each time the state changes, Amazon SES sends a notification to the email address associated with your AWS account. Part of the Advanced Sender Package is the ability to use a custom MAIL FROM domain. ## More topics XES Email Authentication Complaints FAQ #### XES Email Authentication # XES Email Authentication XES allows for three different methods of email authentication: DKIM, SPF and DMARC. XES users can choose to use one, two or all methods, depending on the level of authentication they wish to achieve. Below is a short explanation on how the implementation of these methods works in XES. - **DomainKeys Identified Mail (DKIM)** is a standard that allows senders to sign their email messages with a cryptographic key. Email providers then use these signatures to verify that the messages weren't modified by a third party while in transit. Using DKIM in XES, the email client server can verify that the email was sent from the expected domain/address. - **Sender Policy Framework (SPF)** is an email validation standard that is designed to prevent email spoofing. Domain owners use SPF to tell email providers which servers are allowed to send email from their domains. In this way, email client servers can verify that the email was sent through AWS servers. - **Domain-based Message Authentication, Reporting and Conformance (DMARC)** is an email authentication protocol that uses SPF and/or DKIM to detect email spoofing. In order to comply with DMARC, messages must be authenticated through SPF, DKIM, or both. An example of a policy that can be set up with DMARC can be Quarantine 25% of the emails that failed authentication by sending them to the Spam folder. To set up email authentication methods, contact Support. ## FAQ ### How do I create the full authentication process? In Amazon SES, a verified identity is a domain or email address that you use to send email. Before you can send an email using Amazon SES, you must create and verify each identity that you're going to use as a "From" address. Verifying an identity with Amazon SES confirms that you own it and helps prevent unauthorized use. XES uses the Simple Mail Transfer Protocol (SMTP) to send email. Because SMTP does not provide any authentication by itself, spammers can send email messages that claim to originate from someone else, while hiding their true origin. By falsifying email headers and spoofing source IP addresses, spammers can mislead recipients into believing that the email messages that they are receiving are authentic. Domain-based Message Authentication, Reporting and Conformance (DMARC) is an email authentication protocol that uses Sender Policy Framework (SPF) and DomainKeys Identified Mail (DKIM) to detect email spoofing and phishing. In order to comply with DMARC, messages must be authenticated through either SPF or DKIM, but ideally, when both are used with DMARC, you'll be ensuring the highest level of protection possible for your email sending. You can read more about it in this article: Complying with DMARC authentication protocol in Amazon SES - Amazon Simple Email Service. If you need help in setting up email authentication on your domain, please contact Support. ### How do I verify an email address? In the Circle email touchpoint you can verify the email address. You can also verify it in the Delivery Providers setting in uProduce. For more information, see Verifying the Sender’s Address. ### How do I verify a domain? Email support@xmpie.com with the domain name that requires verification. XMPie support will start the verification process and provide DKIM, SPF and DMARC records as required. Note that Support will not add domain records to the customer’s DNS. This must be done by the customer who administers the domain. Support will provide guidance and files as needed. Domain-based Message Authentication, Reporting and Conformance (DMARC) is an email authentication protocol that uses Sender Policy Framework (SPF) and DomainKeys Identified Mail (DKIM) to detect email spoofing and phishing. In order to comply with DMARC, messages must be authenticated through either SPF or DKIM, but ideally, when both are used with DMARC, you'll be ensuring the highest level of protection possible for your email sending. You can read more about it in this article: Complying with DMARC authentication protocol in Amazon SES - Amazon Simple Email Service. If you need help in setting up email authentication on your domain, please contact Support. ### As a support representative, what is the basic service I'm supposed to provide to a new customer? After the fulfillment process and the account set up, the Support team conducts minimum setup for the customers. These are the steps the Support team will provide. Basic setup: - Set up the following components in uProduce: - Delivery provider setup - AWS server control - Sender address and verification process - Circle verification: - Check that Circle is connected correctly to the XES account added to uProduce (system and email account). - Check the following: Review email touchpoint settings - Review email body in order to adhere to "easy unsubscribe requirements" - Add a new sender to a touchpoint from the Circle UI - Increase send rate. This will be done upon request (pending AWS approval). - Domain verification and authentication (SES dashboard, up to 10 domains per account): - Verification of the domain – allows to use all email addresses in the domain as From EMAIL. - Setup authentication using DKIM. - DMARC set up – Support will send DKIM authentication CNAME entry to the customer (support provides only the TXT records to be included by customer in the DNS). - After the customer completes the CNAME entry update in the DNS, support will make sure customer’s identity status is marked as verified. - Additional domains: basic setup for additional 10 domains (up to 10 domains, if more domains are needed the Support team will approve payment). - Additional services: - SPF (support provides only the TXT records to be included by customer in the DNS). - Custom MAIL FROM domain (SES Dashboard) – complaints and hard bounce are not tracked by XMPie system. Customer will have to sign a document which approves taking responsibility for complaints and bounces. Analytics will not be provided also.  Notes: - To comply with Yahoo and Gmail regulations you will need one of the DMARC or SPF, both are not required. SPF comes with mandatory MAIL FROM customization. This is not fully supported by XMPie. XMPie recommends our customers to add DMARC. - Support will not be adding domain records to the customer DNS. This must be done by the customer on his side, support will provide guidance and files if needed. Additional account - 200$ annual payment, in addition to maintenance payment. - Additional account to the same plan to ensure insulation of the reputation and manage each of their customers separately. - Domain basic setup will be provided to up to 3 domains. - ASP – will be provided to 10 additional domains. Can be distributed between accounts. Dedicated IP - 1,500$ annual payment, in addition to maintenance payment. - The send rate for the IP is 40 emails per second. Increasing this rate will be done by additional IP purchase. - No need for the 175K minimum sends. ### Do I need to pay extra for some services? You’ll need to pay extra for: Additional domain authentication – the basic includes up to 10 domains per account. Additional domain authentication will be charged separately by the Support team. - Dedicated IP - Additional account: - Additional account for the same plan to ensure insulation of the reputation and manage each of their customers separately. - Domain Basic setup will be provided to up to 10 domains. #### Complaints FAQ # Complaints FAQ ### What is a complaint? A complaint occurs when a recipient reports that they do not want to receive an email. They might have clicked the "This is spam" button in their email client, complained to their email provider, or through some other method. ### Why do you care about my complaints? High complaint rates are often used by entities such as ISPs, email providers, and anti-spam organizations as indicators that a sender is sending to recipients who did not specifically sign up to receive emails, or that the sender is sending content that is different from the type that recipients signed up for. ### What should I do if I receive a probation or suspension notice for my complaint rate? Review your list acquisition process and the content of your emails to try to understand why your recipients might not appreciate your email. Once you have determined the cause, fix the underlying problem and appeal to get your case reevaluated. ### What can I do to minimize complaints? First, be sure that you monitor the complaints that XES notifies you about. Then follow these guidelines: - Do not buy, rent, or share email addresses. Use only addresses that specifically requested your mail. - Use double opt-in to sign up new users. That is, when users sign up, send them a confirmation email that they need to click before receiving any additional mail. This prevents people from signing up other people as well as accidental signups. - Monitor engagement with the mail you send and stop sending to recipients who do not open or click your messages. - When new users sign up, be clear about the type of email they will receive from you, and ensure that you send only the type of mail that they signed up for. For example, if users sign up for news updates, do not send them advertisements. - Ensure that your mail is well-formatted and looks professional. - Ensure that your mail is clearly from you and cannot be confused for something else. - Provide users an obvious and easy way to unsubscribe from your mail. --- # XMPIE-Landing Documentation --- # uCreate Documentation ### Introduction # Introduction #### Introduction to uCreate # Introduction to uCreate Welcome to uCreate Print, a plug-in to Adobe InDesign. uCreate Print enables designers to use Adobe InDesign to create dynamically rich and personalized templates beginning with static InDesign documents. Each InDesign document can be personalized. Simply replace static graphic and text objects with dynamic images and text that are of interest to your target audiences based on rules or logic. uCreate Print enables designers to: - **Personalize InDesign documents**. Replace static graphics and text objects with dynamic text and images that answer the needs, interests, and preferences of your different document recipients, based on simple rules or logic. - **Link to a Data Source** (for example, an Excel sheet) from which variable data will be taken. - **View a true WYSIWYG version of your document** for given data samples (for example, specific recipients), by simply scrolling through the records in your linked data source. - **Integrate personalized images**. Seamlessly merge uImage-generated graphics into documents created with uCreate Print. - **Generate a print output file** for printing all document instances resulting from a given data source. - **Connect to XMPie’s uProduce server or Circle project** and work directly with your documents without ever leaving your desktop-based Adobe InDesign environment. uCreate Print uses enhanced variable data print capabilities and is built on Adobe Layout Technology. uCreate Print’s dynamic print supports production-grade variable data output formats such as, PDF/VT, PDF, PPML, VPS, and VIPP. There are two versions of uCreate Print: uCreate Print Standard and uCreate Print (Professional). This online help will indicate the differences between these two versions, where applicable. ## Understanding XMPie personalization The integration of design, logic, and data to serve multiple media channels is at the heart of XMPie’s personalization technology and multichannel customer communications management solution. XMPie’s software is engineered to make it easy to integrate each channel, with no compromise on creativity, into an effective cross-media customer experience. Personalization is based on the concept of binding **design**, **data** and **logic** to produce multichannel campaigns. **Data component:** represented by a **data source** (for example, an Excel sheet or a database). **Design component:** the **print****/****email****/****web design**. These designs include content objects at all places where personalization is required. During production, content object values are resolved. The content object binds the design to the logic for the specified recipient’s data and the resolved value is the personalized output for that specific recipient. Whether a campaign consists of print, email or web, or a combination of any of these – with XMPie, data is always synchronized across all the channels enabling a truly holistic brand experience. ## ADOR technology uCreate Print is built on top of XMPie's unique Automatic Dynamic Object Replacement (ADOR®) Technology, which drives the cross-media personalization capabilities of XMPie’s solutions. The ADOR technology uses content objects to introduce personalization to a design. A content object is an object of the plan (campaign logic) that is visible to a design. Content objects can be of various design-centric elements, for example, text or graphic. The designer uses simple point-and-click operations to tag a design object (say, a text frame or graphic frame) with the desired content object. Such a tagged design object becomes a dynamic object: a design object that derives its content and/or appearance from the content object's value. Content object values are calculated by the plan’s rules, using the given data source(s). These calculations are performed iteratively, once for each recipient, resulting in a set of recipient-specific values for each content object. In a way, one can think of content objects as the intermediaries between the logic (that is, plan) and data (that is, data source) and the design (that is, XMPie tagged document). The ADOR technology also provides dynamic objects within XMPie Circle projects. A Circle project is a collection of dynamic documents. A unique property of an XMPie campaign is that all of the its’ tagged designs can use the content objects defined within its’ plan. The plan also defines the campaign's data source and schema to provide consistency among the campaign’s content objects used on its documents. #### Activating uCreate Print License Key # Activating uCreate Print License Key The first time you launch uCreate Print, you are asked to activate your license. This process is required after the first installation on your computer and sometimes after re-installations. Upgrades perform the activation process automatically, without requiring any action on your part. The activation process is simple: - If you have a valid license key and an internet connection, once you enter your license key the activation process is performed automatically by uCreate Print. - If the computer running uCreate Print is not connected to the internet, you are required to perform the activation manually. In this case, the activation information is first obtained from another computer that is connected to the Internet. You can then use this information, together with the license key, and to activate the product on the uCreate Print computer. It is recommended to deactivate your uCreate Print license before upgrading your computer’s operating system, and activate it again after the upgrade is completed. Please also first check the XMPie’s uDirect release notes or PersonalEffect release notes for the list of supported operating systems. ## Activate an additional license key After you first activate uCreate Print using an initial license key, you may add more license keys to enable additional uCreate Print add-on features. For example, you may first activate a uCreate Print license key, and then add a uChart license key. To add a license key: - From the **Dynamic Content** menu, select **Help** > **Activate License.** The Add Product License dialog is displayed. - In the **License Key** field, enter the license key you wish to add. - In the **Is the network connected?** section, specify if the machine running uCreate Print is connected to the internet. **Choose one of the following: - Connected. Use the internet to activate this product. - Not connected. Activate this product manually. - Click Activate**. ## Deactivate your license key You can deactivate your license by uninstalling the application. You can deactivate your uCreate Print license, in order to reuse this license in the following scenarios: - Changing computers - Upgrading the computer's operating system Deactivation may be done manually through the Dynamic Content panel.**After deactivation, uCreate Print returns to its unlicensed state. Note:** When uninstalling uCreate Print on Windows machines, the license is deactivated automatically. When uninstalling uCreate Print on the Mac, you are prompted to deactivate uCreate Print manually. To deactivate your license manually: - From the **Dynamic Content** menu, select **Help** > **Deactivate****License**. The **XMPie Product****Deactivation** dialog is displayed. - Click **Continue**. You are notified that the license has been successfully deactivated. In addition, the uCreate Print interface is refreshed, showing the limited options available with the product’s trial version (uCreate Designer). To reactivate your license (after deactivating it): - Launch uCreate Print. You are notified that the existing license key is valid but is currently inactive, and are asked to reactivate it. Specify if the machine running uCreate Print is connected to the internet. Choose one of the following: - Connected. Use the Internet to activate this product. - Not Connected. Activate this product manually. - Click **Activate**. #### uCreate Print Packages # uCreate Print Packages Each package includes plug-in capabilities depending on the license that you own, as described below: | Product | VDP Output | Connectivity | XLIM | uImage | uChart | Export CPKG & DPKG | Personalia Package | Trial Availability | | --- | --- | --- | --- | --- | --- | --- | --- | --- | | uCreate (free) | û | û | ü | û | û | û | ü | û | | uCreate Designer | û | ü | ü | û | û | ü | ü | ü | | uCreate Print | ü | ü | ü | û | û | ü | ü | ü | | uCreate Print Studio | ü | ü | ü | ü | ü | ü | ü | ü | ### Additional Resources # Additional Resources #### Customer Expectation Document # Customer Expectation Document This topic communicates customer expectations in the areas of system requirements, knowledge, skills and training in order to achieve the best experience and results with XMPie uCreate. uCreate Print extends Adobe InDesign to allow designers to use Adobe InDesign to create high-end dynamic documents. This is done by linking the InDesign document to a data source, creating content objects, modifying as desired the content object’s rules using the Rule Editor, then placing content objects into the dynamic document. Content objects are the data-dependent areas of the dynamic document. ## Software components This section outlines the individual software components available in the full uCreate family. Each product configuration includes a specific subset of the components mentioned below, depending on the purchased license. ### uCreate uCreate comes in different packages. Each package includes plug-in capabilities depending on the license that you will own. See uCreate packages. ### uChart The desktop version of uCreate allows customers to create charts and graphs directly on the workstation. uChart is available in specific uCreate packages. ### uImage uImage allows customers to generate Photoshop templates directly on their workstations. uImage is available in specific uCreate packages. ## System requirements It is the customer’s responsibility to provide sufficient resources to the system, such as free disk space, data storage and memory. Falling too low on resources might result in system slowdown, failures and unexpected behavior. All Adobe desktop applications (InDesign, Photoshop) require an active internet connection, due to Adobe’s subscription-based licensing model. ### PC workstation – uCreate Print plug-in | Processor | Intel Core i5 or later | | --- | --- | | Memory | 16 GB RAM or more | | Video Card | If uImage is used: 4 GB or greater of video RAM; Screen resolution: 1280 x 800 or higher; XMPie recommends you have a graphics processor (GPU) certified by Adobe. For a list of certified cards, see Photoshop graphics processor (GPU) card FAQ. | | Disk Storage | 250 GB | | Network | Gigabit Ethernet adapter | | Operating System | Windows 10 Pro Edition, Windows 11 Note: XMPie supports the following products in 64-bit mode only: uCreate Print, uImage. | | 3rd-Party Software | For uCreate Print: Adobe InDesign CC-2026; If uImage is used: Adobe Photoshop CC-2026; Adobe Illustrator CC-2026 | ### Macintosh workstation – uCreate Print plug-in | Processor | Apple Silicon M4 chip | | --- | --- | | Memory | 16 GB RAM or more | | Video Card | If uImage is used: 4 GB or greater of video RAM; Screen resolution: 1280 x 800 or higher; XMPie recommends you have a graphics processor (GPU) certified by Adobe. For a list of certified cards, see Photoshop graphics processor (GPU) card FAQ. | | Disk Storage | 250 GB | | Network | Gigabit Ethernet adapter | | Operating System | macOS 12 and above | | 3rd-Party Software | For uCreate Print: Adobe InDesign CC-2026; If uImage is used: Adobe Photoshop CC-2026; Adobe Illustrator CC-2026 | ## Skill-set requirements Implementing uCreate requires skill sets as outlined below. As a general statement, the degree of technical experience required is related to both design requirements and complexity of logic and business rules for individual campaigns. A significant amount of Variable Data Printing (VDP) design and implementation can be accomplished with intermediate level skills, but the higher degree of complexity for the design, business rules/logic, or data sources may require a greater degree of some skills. You should not expect to offer very complex documents to your customers without taking the time to build or acquire these skill sets. This becomes a trade-off: the greater the skill sets of the operators, the more complex dynamic documents can be created. ### InDesign An intermediate level of design skills will make for a much more productive experience. From the technical perspective, an operator at this level will understand InDesign concepts such as Text/Object Frames, Layers, Master pages, Object styles, Paragraph styles, Character styles, page layout effects and clipping paths including setting attributes and other properties. ### Photoshop uImage integrates uCreate with Photoshop. Intermediate design skills are necessary to create uImage document templates in Photoshop, depending on the types of uImage generated graphics the customer plans to create. An operator of this level will have a good working knowledge of all Layer types and styles, Smart objects, Effects, Filters and be able to create/use actions. ### Data To get started with variable data production a basic understanding of data and databases is necessary. Typically, your clients will send you a mailing list and perhaps other data in the form of Excel spreadsheets, and/or tab or comma delimited text files. These data sources are typically referred to as flat data files. Your operators will not only need to be able to open and work with these files, they may also need to understand how to handle mailing data. Simple understanding of how to work with data can be acquired during XMPie training only if requested during the scheduling process. Manipulation of data using text editors, MS Excel, MS Access or mail sorting applications such as CASS are not part of XMPie training. These are beginner level skills. The ability to accept and work with more advanced data sources, such as MS Access databases or query SQL servers would require more advanced data skill sets. While a large number of customers are very comfortable with simple flat-file data sources, you will want to ensure that you acquire or build more advanced data skills before accepting or working with more complex data sources from your customers. ### Programming logic The level of required skills is directly related to the type of variable data work you will be receiving from your customer. A large number of variable data logic requirements can be met with very basic skills. The most basic of skills necessary for this type of work can typically be acquired during the XMPie training sessions, if they don’t already exist in your operation. You will want to ensure that you acquire or build more advanced logic skills before accepting more complex work from your customers. Operators that need to implement logic or rules will do so by creating expressions using the Rule Editor. This editor writes expressions to calculate the end value of a content object. All expressions are written in XMPie’s QLingo programming language. At the most basic level, QLingo is similar to creating formulas and using functions in MS Excel. With the Rule Editor, operators may also edit the QLingo expressions directly as needed. The more complex the project or campaign, the higher the skill level required to work with the data. You will want to ensure that you acquire or build more advanced skills before accepting complex work from your clients. Training on non-XMPie products is a customer responsibility. ## uCreate operating ranges The list below represents uCreate operating ranges. Using it with values above these parameters has not been tested and may result in reduced performance or failure to operate properly. The following are the maximal values that can be used in the campaign: - Content objects (ADORs): 1,000 - Variables: 1,000 - User Views: 100 - Functions: 100 - Filters: 100 ## Training Three levels of training are available for uCreate customers: downloadable self-paced tutorials, instructor-led online, and on-site instructor-led training. During each of these options, the attendees will build a live, working VDP application. The amount of training achieved will depend on the skill sets already in place, and the ability of your staff to acquire new skills. While many of our customers require only the downloaded tutorials, XMPie customers participating in either the online or the on-site training report greater abilities to get started quickly. Extra training time may be required depending on the type of product that has been purchased and the number and types of add-on products (uImage/uChart). ## Time frame from purchase to live application In the XMPie training course attendees will build a simple working VDP job. Because this is a training exercise, all of the necessary elements will be in place. Training does not include the creation of a live job. The creation of a live job for a current customer will be dependent upon having all of the campaign components necessary and the complexity of the campaign. The XMPie work necessary to build a VDP application or campaign from a basic flat-file data source with minimum programming logic can happen relatively quickly – in fact, the real limiting factor will not be the XMPie work required, but the time it takes to accomplish the design requirements within InDesign. Complex VDP applications and campaign timeframe depend on the campaign itself and your growing skills with XMPie software. ## Support and maintenance uCreate is supported for customers under a current Support and Maintenance agreement. As a maintenance and support plan customer you will have full access to the XMPie Support team and free product upgrades. The Support team is intended to provide problem resolution for system errors and software faults. For user error resolution, workflow development and optimization for campaign and job creation the help desk can assist in engaging Professional Services. ## Security and privacy ### General Data Protection Regulation (GDPR) XMPie supports GDPR compliance within its products. The customer, who is the data controller, must take action in order to ensure compliance. To learn about the steps a customer must take to comply with GDPR when using XMPie products, read GDPR guidelines for XMPie products. ### Security XMPie is committed to the security of its products. Software patches for XMPie products will be implemented within a required minimum timeframe based upon criticality of exposure, impending risk to customer system resources and data, regulatory requirements and customer contractual requirements, but not to exceed: - High/Critical (i.e., CVSS >=7.0) rated vulnerabilities will be remediated within 30 days - Medium/Low (i.e., CVSS <7.0) rated vulnerabilities will be remediated within 90 days Security fixes provided as a patch or as a version installation must be installed as soon as they are released. ## Extended services XMPie provides extended services for customers whose needs exceed the operability and functionality help covered by the Support and Maintenance plan. These services are: - **Professional Services** include application development, programming services, color consultation, implementation services, web development and design services and more. Programming services may also include training and support or use of the XMPie APIs. Other Professional Services work may include error resolution, workflow development and optimization for campaign and job creation. - **Application Services** provide XMPie customers with a tailor-made implementation strategy and service to successfully start working with their XMPie software. By using best practices within the industry, Application Services can help customers to identify where they want to go with the software and help them take their first steps. In addition, they can implement sophisticated projects, plan workflows, mark decision-points, develop custom configurations, or even supply visual and creative campaign elements. ### Getting Started # Getting Started #### Getting Started with uCreate # Getting Started with uCreate The uCreate Print plugin enables you to create dynamic documents, by tagging static design objects (for example, a graphic frame, a string of text, etc.) with variables known as content objects. Content objects are automatically created by uCreate Print and displayed in the Dynamic Content panel when you link your InDesign document with the campaign logic. Follow this basic workflow when starting to work with uCreate Print: - Open a new or existing InDesign document. - Display the Dynamic Content panel (if not shown). - Set the input data. - Tag design objects with content objects. - Creating a Print File of a Dynamic Document Once these operations are performed, you can go on to perform more advanced operations, such as manually managing content objects, working with audiences and generating the print output file. #### The Dynamic Content Panel # The Dynamic Content Panel The Dynamic Content panel is usually displayed automatically when you launch InDesign, on the right hand side of the application. If the panel does not appear, you can display it by clicking the **Dynamic Content** menu, and then selecting **Show Window** > **Dynamic Content**. If you do not have an InDesign document open, or if your document does not contain dynamic content, the Dynamic Content panel shows the following: Once clicking the icon on the panel, a dialog box opens where you can link your document to a data source file, a counter, a plan, or manually define objects (content objects, variables and input data fields). After the document is linked to data, content objects are automatically created from the linked data fields and displayed in the Dynamic Content panel. The data column shows the content object value after a rule has been applied, if a rule exists. (This column can be shown or hidden from the Preferences dialog.) You can rearrange the order of the content objects, variables and input data fields on the panel by simply dragging and dropping them. Multi-select objects and drag them all at once. You can also sort the panel items alphabetically by name, type or group. This can be done by right-clicking the panel and selecting **Other Actions **> **Sort by Name**, **Type** or **Group**, or from the panel's Options menu . The order will be saved in the plan and in the exported CPKG. ## Filter the panel to display the required elements From this list you can filter the panel to show content objects, variables or input data fields: ## Choose the element type Choose the type of content objects, variables or input data fields that are currently listed in the panel. By default, all types are listed. To filter the list and focus on a specific type (for example, graphic content objects or string variables), select the relevant type from the list: ## Filter by group Groups help you better organize the elements you are working with. For example, create a group of all content objects that are related to the recipient’s physical location, including street address, zip code, city, state, country. You can filter the panel to display content objects or variables of a specific group, thus filtering out the elements you don’t need to work with. To assign a content object or variable to a group, simply right-click it on the panel and from the menu select **Group**, and then point to the required group. If no groups have yet been created, select **New Group** and give the group a name. The object will be assigned to the new group. Multi-select content objects or variables to assign them all at once. ## Proof settings Proof settings are used to proof your document. First, set the dropdown list to a data source, a proof set, content or input data samples, and link to the relevant file. Then use the record selection field to preview the document with actual data, by browsing through the records or by entering the number of a specific record you wish to preview. ## Visibility icons The Dynamic Content panel also includes the following visibility icons: | | Set active spread visibility | Opens the Dynamic Visibility dialog, so you can assign a visibility content object to the active spread.; Indicates when the active spread includes visibility content objects. | | --- | --- | --- | | | Set active layer visibility | Opens the Dynamic Visibility dialog, so you can assign a visibility content object to the active layer.; Indicates when the active layer includes visibility content objects. The icon will be the color of the active layer. | When you assign visibility content objects to layers and spreads, you can display or hide layers and spreads, based on your dynamic document logic. ## More topics Content Objects and Variable Types Dynamic Content menu #### Content Object and Variable Types # Content Object and Variable Types ## Content objects uCreate Print allows you to tag design objects with different types of content objects. By default, the Dynamic Content panel displays all types of available content objects. You can filter the display by choosing one of the following types from the list: | | Text | A text object. This string of text is shown literally in the document. | | --- | --- | --- | | | Graphic | A graphic object. This content object points to an asset that will be shown in the document. The asset shown in the document may be a personalized image, created using the uImage application. | | | Table,Multi-Page PDF Table | A table consisting of column objects, whose values are extracted for each recipient from the campaign’s data source(s) or PDF asset pages. | | | Text file | A text file containing a large amount of text or text formatted in a specific style. | | | Visibility | Controls the visibility of the document layers/spreads to which the content object is assigned. Visibility content objects also support layer names. This allows one visibility content object to control the visibility of all layers, whose names match its values. | | | Style | Applies a desired format, using one of the following types of Adobe InDesign styles: Character styles: when applied to text, the style content object can be used to format text attributes such as color, font, size, etc. You can also override a text style attributes with an alternative font, including the font size, font style and font color. Once a character style content object is applied to text, it overrides any static InDesign style: existing, static styles are replaced by the style content object, and new styles cannot be applied on top of the style content object. Object styles: when applied to a frame (whether a text frame or a graphic frame), the style content object can be used to format frame attributes such as fill, stroke, corner effects, etc. Notes: Each style content object value must be mapped to a matching InDesign style, which has the exact same name. A style content object may define an override color. This color does not override the color of the text frame or the graphic frame, only the color of its contents: text or graphic content such as fill or stroke color. InDesign styles that are grouped in the Styles panel cannot be accessed through uCreate Print. | | | Web | XMPieRecipientKey is a content object created automatically when linking a document to uProduce or Circle. | | | Link | A link to a URL, most often used to include a PURL in a design. The link will be active only in an interactive PDF output. | **Note:** Table, visibility and style content objects  are incompatible with XMPie’s proprietary XLIM format. Documents containing them cannot be converted to XLIM. To check if your document is compatible with XLIM and remove incompatible features, use XLIM Preflight. The following figures show the same InDesign dynamic document, personalized for different recipients - Jane and Jerry - using various types of content objects (indicated by their icons): text, graphic, style and visibility. Example of an InDesign document personalized for Jane: Example of an InDesign document personalized for Jerry: ## Variables By default, the Dynamic Content panel displays all types of available variables. You can filter the display by choosing one of the following types: | | String | A data type representing text and consisting of a set of characters that can also contain spaces and numbers. | | --- | --- | --- | | | Number | A data type representing numbers. | | | Date | A data type representing dates. | | | Boolean | An expression using logical operators (AND, OR, NOT) and returning a true or false result. | ## More topics Tagging Design Objects with Content Objects Tagging a Design Object with a Text File Content Object Adding a Style Content Object to your Design Tagging a Design Object with a Table Content Object Managing Content Objects and Variables #### Dynamic Content menu # Dynamic Content menu The following options are listed in the Dynamic Content menu: | Option | Description | | --- | --- | | Set Input Data | If your document does not yet contain dynamic content, selecting this option opens the Input Data Configuration dialog box, where you can define your input data using any of the following options: Manual Definition: This option allows you to start working on your document and make it fully dynamic before connecting to a data source. You design your document as usual, create content objects, variables, etc, and connect to a data source at any later stage, if needed. ; Data source file: Browse to a single table data source you wish to link to your document. uCreate Print automatically creates content objects for each column header in the data source. See Linking a Document to a Data Source.; Counter: Aside from linking to common data sources (such as Microsoft Access, Excel etc.), XMPie allows you to create a counter data source type. A counter is a single-column database that stores sequential numbers with predefined intervals. See Linking a Document to a Data Source.; Plan (& proofset): The plan is the campaign logic, defined with the uPlan application. Browse to the plan file you wish to link to your document. uCreate Print automatically creates the content objects defined in the plan. See Linking a Document to a Plan.; If dynamic content has already been defined for the document, selecting this option enables you to: Replace the data source; Upload a proof set file (in case of a plan); Update the counter range; Connect to a data source (in case of manually-defined objects) | | Relink Plan | Link the document to a different plan. | | Assets | Specify a folder that contains the assets referenced by the rules that assign values to content objects. | | Open from Server | Open documents which are stored on uProduce server. See Opening a Document from uProduce and Opening a Document from Circle. | | Save to Server | Save documents directly to uProduce. The document and other campaign resources are automatically uploaded to uProduce. See Saving a Local Document to uProduce and Saving a Local Static Document to a Circle Touchpoint. | | Import Package | Import a document from an existing package file. This feature is useful for collaboration between uCreate Print users who do not share a data source, or as a download for design collaboration with print service providers. See Using XMPie Packages. | | Export Package | Use your document to create any of the following file types: Document package files (*.dpkg); Campaign package files (*.cpkg); Web campaign package Files (*.cpkg); XLIM package files (*.dpkg); XLIM campaign package files (*.cpkg); Personalia package (*prsn) to be uploaded to Personalia; If you export your document and related files as a package file, you can upload this package to a uProduce server, where it can become part of a cross-media campaign, drive the campaign from a more sophisticated database, or simply allow your print service provider to make last-minute changes and production-related design or data adjustments. See Using XMPie Packages and Exchanging Documents with Other Users. | | Generate VDP Output | Create a print output file from the document using values from the source currently being used to drive the document's content objects. This print file is generated using values from your linked data source, proof set file, content samples or input data samples. See Creating a Print File of a Dynamic Document. | | Preflight | INDD Preflight: Check the document for any design item that might cause performance issues during the production run when using transparency or contour wrapping techniques. Transparency techniques include drop shadow, feathering, opacity that is lower than 100% and transparent images. Contour wrapping refers to text that is wrapped around an object shape (that is, shape contour) either from one side or two sides of the object. The tool provides information on techniques that affect production performance (that is, transparency and contour wrapping) and explains how the software will handle them. Furthermore, the design objects that relate to the problem are selected and displayed in the design for reference. | | XLIM Preview | Preview a XLIM version of the InDesign document in PDF format. A preview is particularly useful before exporting the XLIM package to uProduce. | | uEdit Options | Set editing permissions for XLIM documents. These permissions are defined as lock options: a list of properties that are locked for editing. See Setting Up XLIM Document Editing Permissions. | | Show Window | Display any of uCreate Print's panels: Dynamic Content, Audiences, XLIM Preflight and VDP Job Status. | | Help | Provides access to the following: XMPie's home page; uCreate Print Help; uImage Help; Information on the current version of uCreate Print plug-in.; Activate License: Add a product license. Note that you may add new licenses in addition to exiting licenses. For example, you may start with a uCreate Print license and then add a uChart license. ; Deactivate License: Deactivate your uCreate Print license, so you can reuse it when changing computers or upgrading your computer's operating system. | | Advanced | Provides access to the following: Counter to Database: When linked to a counter, selecting this option enables you to connect to a data source.; Edit Rules in uPlan: Open the linked plan file in the uPlan application, so you can make modifications to the plan objects. Note that this option is available only if uPlan is installed on your machine.; Convert Rules to Plan: Convert the content object rules to a plan file and then continue your work using XMPie uPlan. See Converting Content Objects Rules to a Plan File.; Link to Proofset: Link to a table of content object values that have been resolved for a subset of the recipients list. This table, known as a proof set file, allows you to view your document with actual data.; Generate Proofset: Generate a proof set file. The proof set allows you to view the set of data values calculated for each recipient, as they are positioned in your design file. ; View Proofset: Open the table of resolved content object values to which your document is currently linked. This table, known as a proof set, is viewed using the proof set viewer tool of the uPlan application. Note that this option is available only if uPlan is installed on your machine. ; Remove Dynamic Content: Remove variable data from your document.; Save XLIM (For inspection only): Saves the current document design to a XLIM file. This option is designed for developers who want to create custom XLIM documents and need to inspect a valid XLIM file created by XMPie. Note: If you want to export a XLIM document package to upload to a uProduce server, you should use the Export Package option of the Dynamic Content menu so that the package will include any additional resource files needed to process the document on the server. | | Preferences | Edit the preferences of a uCreate print document. See Setting Document Preferences. | | Highlight All Content Placeholders | You can highlight all dynamic design objects in your document by selecting Highlight All Content Placeholders. Double-clicking the highlighted area in the document shows the corresponding content object in the Dynamic Content panel. | #### Setting Document Preferences # Setting Document Preferences You can set global preferences that apply to all uCreate Print documents. To set document preferences: - From the** Dynamic Content** menu, select **Preferences**. The **Preferences** dialog is displayed. - Define your document preferences as explained in the following table: | Option | Description | | --- | --- | | Sort Records by Primary Field (Windows only) | By default, the order of the records appearing in the data source is preserved. Select the checkbox to sort the data according to the field set as the primary field. VDP output will be produced in the order set by the primary field. For more information, see Managing Database Fields. | | Show Data Column in Dynamic Content Panel | In the Dynamic Content panel, show the value of each content object for the selected recipient record. | | Show Built-in Objects in Dynamic Content Panel | Display web content objects. For more information, see Tagging a Design Object with an Automatic Web Content Object. | | Preserve Dynamic Content in IDML | InDesign allows you to export documents to IDML and INX. You can choose whether or not to include XMPie properties in such exported documents. Determine whether to export the IDML or INX output with or without dynamic content. Choose one of the following: Leave this box unchecked if you wish to export the IDML or INX output without dynamic content. This is useful, for example, if you need to deliver an XMPie document to a designer who does not have XMPie software.; Check this box if you wish to export the IDML or INX output with dynamic content. When you later reopen this file in InDesign, it will function as an XMPie document (for example, the content object definitions will be maintained). This is useful, for example, if you are implementing an application for manipulating InDesign documents, and you also wish to support XMPie documents.; Note that exporting with XMPie dynamic content is available only if an XMPie scripting license has been activated. | | Check internet connectivity | Select to verify that there is an internet connection available. This may be important when connecting to uProduce. | | Encoding for non-Unicode File | For data source files saved without Unicode Signature, select the default encoding. | | Default Input Data Type | Select the input data type that is set as default in the Input Data Configuration dialog box (data source file, counter, plan or manually defined objects). | | Connectivity Download Folder | Select the downloads folder, which specifies where files from uProduce will be stored on the local machine. If you leave the field empty, the default is the temporary items folder. It is highly recommended to set the downloads folder path. | | uImage Templates, Output and Assets Folder | Define a single root folder for each type of uImage file: templates, outputs and assets. For more information, see Setting uImage Defaults. | | Default Copy Fitting Options | Select default copy fitting options for the Dynamic Story Copy Fit dialog box. Once this option is set, when selecting a dynamic text box (which does not have copy fit settings) and applying the Copy Fit option, the default settings will be automatically populated in the dialog. | | Default VDP Generation Options | Define default VDP generation settings for the Dynamic Print dialog box. Whenever opening the dialog box, all setting will be pre-populated in the dialog. | | RIP Global Caching | Clear the printer server (RIP) global caching. | | Custom Production Directives | Define custom production directive attributes for use in the Page/Spread Production Directives dialog. Click Configure to open the Configure Production Directives dialog, where you can add, remove, import, and export custom directive definitions. For more information, see Using Production Directives for Printing. | ### Setting the Input Data # Setting the Input Data #### Setting your Input Data # Setting your Input Data Content objects are defined based on a number of attributes - their name, type, and business rule (rule, in short). A rule is an expression that defines how to calculate the content object’s value for each recipient. Rules are part of the campaign logic defined in the campaign’s plan file, but they can also be added or edited using uCreate Print’s rule editor. You can easily obtain your campaign’s content objects by linking your InDesign document to the campaign data. The linking operation may be performed at any stage of the design process, as long as you have an InDesign document open. Once the document is linked to logic, uCreate automatically creates the content objects and displays them in the Dynamic Content panel. The linking operation is performed in one of the following ways: - Linking a document to a data source Create a content object for each column header in the linked data source.** Use this option if you have a simple data source (such as a CSV file containing name and address information), and wish to use straightforward content object rules. - Linking a document to a counter data source Aside from linking to common data sources (such as Microsoft Access, Excel etc.), you can create a counter data source type. A counter is a single-column database that stores sequential numbers with predefined intervals. A counter data source is very useful if you need to create a document in which the only dynamic components are numbers. - Linking a document to a plan uCreate creates the content objects defined in the plan file. Use this option for jobs requiring the involvement of a programmer, in order to connect to complex data sources or define sophisticated content object rules. - Designing with no data source (Manual Definition) This option allows you to start working on your document and make it fully dynamic before connecting to a data source. You design your document as usual, create content objects, variables, etc, and connect to a data source at any later stage, if needed. For example, use this option when preparing a document for uStore, where all input comes from customization and there is no need for input data at all. Linking is done in the Input Data Configuration** dialog box: You can access it either from the Dynamic Content menu, or, when opening a new document, from the Dynamic Content panel: From uCreate Print, you can also link a document to a data source on the uProduce or Circle servers. uCreate Print creates content objects based on the fields from a remote data source. You can connect either to the uProduce server or the Circle server. #### Linking a Document to a Data Source # Linking a Document to a Data Source When you link your document to a data source, uCreate Print creates a content object for each column header in that data source. The following types of data sources are supported: ## File-based data sources - MS Access (*.mdb and *accdb)**(Not supported by MAC operating systems.) - MS Excel (*.xls, *.xlsx, *.xlsb, *.xlsm) (Not supported by MAC operating systems.) Note that table names must not have leading or trailing spaces. Column (field) names must be unique, cannot be empty, and must not contain leading or trailing spaces. - Text Files (*.txt, *.csv). Column (field) names must be unique, cannot be empty, and must not contain leading or trailing spaces. Note:** When you are connected to a production server using the uCreate Connectivity feature, MAC operating systems can upload Access or Excel files. To link a document to a data source: - Create a new document, and from the **Dynamic Content** menu, select **Set Input Data**. - In the **Input Data**** Configuration** dialog box, select **Data Source File**. - Browse and select the required data source file. - Specify data source-specific settings: - If you selected a delimited text file, set the following: **Delimiter** (comma, tab, space, etc.). You can also type the delimiter directly in the text box. If you wish the values of the columns to be fixed in width, type the comma delimited values of the column widths. - **Decimal separator **(comma, period). - **Encoding: **You can choose the encoding for CSV files. If the file has BOM defined, the encoding will be selected by default, as defined by the BOM. Note that the default encoding can be set in the Preferences dialog, and will be selected for data sources which do not have BOM defined. - If you select a data source with more than one table, the **Choose a Table** dialog is displayed. Select the table you wish to use for creating content objects. When you link the document to a data source for the first time, uCreate Print automatically creates a content object for each column header in the data source. These content objects are displayed in the Dynamic Content panel. By default, the type of all new content objects is text. You can filter the list of content objects by type: When you link your document to a data source, certain types of data files (such as FileMaker *.csv files) do not export the column headers, causing the content objects to appear as the data in the first record. To include the column headers in the data file, open the file in another program (such as Notepad or Microsoft Excel on Windows, or such as TextEdit on Mac OS), and add the column headers manually. ## XMPie proprietary data sources A Counter is a proprietary XMPie data source. This single-column database is used to store sequential numbers with predefined intervals. ## Counter data sources Aside from linking to common data sources (such as MS Access, etc.), uCreate Print provides you with the option to create a counter data source, which is a single-column database that stores sequential numbers with predefined intervals. A counter data source is very useful if you need to create a document in which the only dynamic components are numbers, for example: lottery tickets, coupons, receipts, vouchers, etc. The counter data source provides a convenient tool for generating such numbers, without a need to prepare them in a separate data source. At any later time, you can convert the counter to a data source by selecting **Advanced > Counter to Datasource **from the Dynamic Content menu. ## More topics Managing Database Fields Dual-Mode: Linking to a Data Source or Linking to a Plan Relinking a Document to an Updated or Different Data Source #### Linking a Document to a Plan # Linking a Document to a Plan To obtain the content objects defined in your campaign logic, you must first link your document to a plan file. The Plan represents the campaign’s logic component and is defined with the uPlan application. uCreate allows to link to a plan file (instead of linking directly to a data source), in order to use a uPlan workflow. uPlan allows you to work with both simple and complex ODBC-compliant data sources, including Text, CSV, Microsoft Excel, Microsoft Access, FoxPro, DBF, SQL Server and Oracle. When working with a 2G technology without connectivity to Circle, you need first to download the plan from Circle and then link the document to this downloaded plan. To link a document to a plan: - Open your document, and from the **Dynamic Content** menu, select **Set Input Data**. - In the **Input Data Configuration** dialog box, select **Plan (& Proofset)**. - Browse and locate the plan file. The Dynamic Content panel automatically lists all content objects in the plan file. You can relink to a different plan at any later time by selecting **Relink Plan** from the **Dynamic Content** menu. ## Edit a plan When a plan is linked to a document, you can open and edit the plan in the uPlan application while you are working with InDesign. This option is only available if you have the uPlan module installed on your computer. In addition to editing a plan in uPlan, it is also possible to edit content objects and variables using the uCreate Print rule editor (see Managing Content Objects and Variables). To edit a plan: - From the **Dynamic Content** menu, select **Advanced > Edit Rules in uPlan**. The uPlan application opens and displays the linked plan. - Edit the plan and save the changes. - Close uPlan and return to InDesign. A message is displayed, prompting you to reload the plan file. - Click **Yes** to reload the plan. Reloading the plan will ensure that you are working with the most up-to-date copy of the plan. If any of the changes you made to the plan affect the content objects currently used in your document, the plan will no longer be compatible with your document. A dialog will appear, describing the cause of the incompatibility. - Choose one of the following: - **Ignore**: ignores the inconsistencies and allows you to continue working with the currently linked Plan. - **Cancel**: cancels reloading. If you use a plan that is incompatible with the dynamic document, it will result in unsuccessful print production. If you choose to ignore, this message will reappear the next time you open the document (after saving). To avoid this message, edit the document to accommodate the changes described in the message, or update the plan to reflect the current design. ## Link a document to a proof set Linking to a proof set is only available if a document is linked to a plan. In order to link your document to a proof set, first create the proof set in uPlan or uProduce. To link your document to a proof set: - From the **Dynamic Content** menu, select **Advanced ****> Link to Proof Set**. - In the **Select a Proof Set File** dialog, locate and select the proof set file (*.proof; or proof set package, *.ppkg) that corresponds to the content objects currently defined in your document. - In the **Dynamic Content** panel, use the arrows at the bottom to choose the record you want to preview in the design. The dynamic objects in the design are replaced with the values from the proof set. While linked to a proof set, if you create new content objects, delete content objects, or change the type of content objects, your proof set will be incompatible with these changes. To avoid inconsistencies, you will be unlinked from the proof set. ## More topics Converting Content Object Rules to a Plan File Designing with no data source Dual-Mode: Linking to a Data Source or Linking to a Plan Relinking a Document to an Updated/Different Data Source #### Converting Content Object Rules to a Plan File # Converting Content Object Rules to a Plan File ## Extract rules to a plan file **Note:** This option is available only if you are linked to a data source, a counter or to manually defined objects (and not to a plan file or to uProduce). uCreate allows you to work with plan files as well as data sources, thus allowing you to choose between the rule editor and uPlan depending on what is most suitable for designing your campaign logic. If you initially chose to define your campaign logic using the rule editor, you can convert the content object rules to a plan file and then continue your work using XMPie's uPlan. Note that once your content object rules have been converted to a plan file, you can only use uPlan to edit them. You can reverse this process using the **Embed Plan File Rules** option. - To convert your content object rules to a plan file, from the **Dynamic Content** menu, select **Advanced > Extract Rules to Plan File**. ## Embed plan file rules If your document is linked to a plan file, you can choose to embed all plan rules into the document. In such a case, the document will no longer be linked to the plan file. The data source and asset source will also be embedded into the document. - To embed plan file rules into the document, from the **Dynamic Content** menu select **Advanced > ****Embed Plan File Rules**. #### Designing with No Data Source # Designing with No Data Source (Manual Definition) For many jobs, you may need to start designing the document before the customer has sent you their data file. Or, you may be designing a product for uStore and there won’t be a data file. The dynamic values will come from customers entering information into the customization form in the web store. So, you can get started with the design and set up of the VDP template before you get the data file from your customer. You design your document as usual, create content objects, variables, etc., and connect to a data source at any later stage, if needed. In order to design with no data source, we'll be using the **Manual Definition** option. If you start with a static InDesign document, and select Manual Definition, uCreate helps you get started by automatically setting up a sample data set that contains id, fname and lname input data fields, and First Name and Last Name content objects that link up to those input data fields. If your design won’t use these, you can simply delete them. You can now start adding dynamic content to your document. This internal data set is created with 10 rows of sample input data that allow you to see how the design looks and behaves with different values. You can create a new input data field (for values that will come from a data source in the future), and add a sample value that will be used for all 10 records of the sample data. Note that by selecting the **Add New Content Object/Variable** checkbox, you can create a new content object/variable at the same time as the input data field. If you wish to set different input data samples, swap to the input data fields list. Select the fields that you would like to edit, right-click and select **Samples**. Input data samples behave just like a data source and any rules in the content object will be applied to the sample values.   When you've finished working on your design you can test printing the document. From the Dynamic Content menu, select **Generate VDP Output**, and then select **Input Data Samples**. If you have a uProduce server, you may  want to move the document to the server, where you can process the file later, or move it to uStore. Or, if you don’t have a server, you will want to connect the customer’s data file when it arrives and process the output on the desktop. When you receive the data from your customer, you can simply change the dropdown to select data source, and then select the data file. If the data file does not include a column or field that has the same name that you set up in the input fields list, you can use this dialog to map the right fields together. In this example, uCreate Print is looking for a field called fname, and in the data file, the field is called First name. ## More topics Using Input Data Samples Using Content Samples #### Dual-Mode: Linking to a Data Source or Linking to a Plan # Dual-Mode: Linking to a Data Source or Linking to a Plan uCreate allows you to choose between two modes: - Linking a document to a data source This mode is available to all uCreate users. The linking operation automatically populates the Dynamic Content panel with content objects derived from the selected data source, and allows you to manage content objects rules using uCreate’s rule editor. - Linking a document to a plan The linking operation automatically populates the Dynamic Content panel with content objects defined by the campaign’s plan file. Note that these content objects cannot be managed using the rule editor. Instead, they are managed as part of the plan file, using the uPlan application. The mode is set per document, and determines which panel and menu options are available: - When you open a static document, both modes are available: the Dynamic Content menu allows you to choose between linking to a data source (including a counter data source) and linking to a plan. - When you open a dynamic document, which is already linked to logic, the Dynamic Content menu enables the relevant settings and disable others. Both modes support the same point-and-click operations for tagging design objects with the desired content objects. ## Switching modes uCreate allows you to work with both data sources and plan files, using either the rule editor or uPlan (respectively) to design your campaign logic. If you initially chose to work with a data source, and designed your document logic using the rule editor, you can convert all rules to a plan file (see Converting Content Object Rules to a Plan File) and continue your work using XMPie uPlan. Note that this change is irreversible: once you convert your content object rules to a plan file, you can no longer edit them using a rule editor. Instead, the Plan file you created can be managed using the uPlan application. #### Relinking a Document to an Updated or Different Data Source # Relinking a Document to an Updated/Different Data Source After you link your InDesign document to a data source and start working, you may wish to use the dynamic document with a new set of data. In other cases, the data source the dynamic document is linked to may change. The structure of the previous data source - columns, field names, and so forth - may be different from the structure of the current data source. For example, your first data source may contain the fields “First Name”, “Last Name”, and “Occupation”. You may later link to a different data source, containing the fields “FName”, “LName”, “profession”, and “country”. Whether you initiated the link to a different data source, or are responding to changes in the linked data source, relinking your document to data requires matching the previous and current data sources. When uCreate Print detects changes in the data source linked to your document, it launches the **Link to Data Source**** wizard**. This wizard helps you match each field of the previous data source with a field in the current data source. **Note:** Fields that are used in your document (fields of the previous data source that are used as content objects) must be handled: either match them with fields of the current data source, or convert them to static text. ## Data source matching triggered by changes in the document When a document is linked to a data source, and you try to link it to an updated or different data source, uCreate Print detects the mismatch between the data sources and launches the Link to Data Source wizard. The following procedure explains how to match the data sources and re-link your document to data. To relink a document to an updated or new data source: - Open the linked document you wish to relink to data. - From the **Dynamic Content** menu, select **Set Input Data**. - Browse to the data source you wish to link to, and click **Open**. - Specify data source-specific settings: - If you selected a delimited text file, the **Specify a Separator** dialog is displayed. Select the appropriate delimiter used to separate data values in your text file. - If you select a data source with more than one table, the **Choose a Table** dialog is displayed. Select the table you wish to use for creating content objects. If there are any mismatches between the previous and current data source, the **Link to Data Source: Match Previous and Current Data Sources** wizard is displayed. - To successfully link to the current data source, each previous data source field that is used in your document as a content objects must be handled: - Match it with a field of the current data source**- or - - Convert it to static text Specify how to perform the matching using the following options: | Option | Description | | --- | --- | | Previous Data Source Field | Lists all fields (column headers) in the previous data source, which were used to create content objects. All these fields must be matched or converted to static text. | | Action or Current Data Source Field | Determines how to handle the fields of the previous data source. Each field has a dropdown list, allowing you to choose an action to be performed or a matching field of the current data source. | | > | A field of the previous data source that is unmatched by a field of the current data source. Tip: When a field is unmatched, its content object’s expression becomes invalid. To relink the document successfully, you must match all fields or replace them with static text. | | > | Choose this option if a field in the previous data source does not exist in the current data source, to ensure all content objects rules remain valid. This option displays a text frame, allowing you to enter static text. This text will replace all instances in which this field’s content object appears in your document. Note that leaving the text frame empty and clicking Next invokes an error message. | | Fields | For each field of the previous data source, choose the matching field of the current data source: Fields that have the same name in both data sources (such as City, First Name etc.) are automatically matched.; Matching fields are grayed out in the dropdown lists of other fields (in our example, First Name is grayed out the City drop-down lists).; When a matching field is found, it can only be replaced by one of the unmatched fields (or by an action). For example, the City dropdown offers the matching field City, as well as the unmatched fields Add_1, Add_2 and RID. | | Actions and Fields Available for the “City” Field | | Show only unmatched | Filters out the matched fields from both columns, displaying only the unmatched fields that still need to be handled (matched or converted to text). | | Reset | Cancels the changes you have made to the Action or Current Data Source Field list and reverts to uCreate Print default matching. | | Unmatched Fields | The number of fields in the previous data sources that are not matched by any field in the current Data Source (in this case, Unmatched Fields: 2). As you manually match the fields, this number is updated. | - After matching each previous data source field with an action or current data source field, click **Next**. Note:** If a field is left unmatched, a message box appears, confirming you wish to continue. Click Yes to continue, or No to finish matching the fields. - Create new content objects for new fields in the current data source (optional): If the current data source includes new fields that did not exist in the previous data source, the **Create New Content Object** dialog is displayed. A new field may either be an additional field that did not exist in the previous data source, or an unmatched field that has a different name. - Specify whether to create a new content objects for each new field: - In the **Create?** column, check the box of each new Current Data Source Field for which you wish to create a new content object. - To create new content objects for all new fields, click **Select All**. - To refrain from creating new content objects, click **Select None**. - If you need to change the field matching (specifically, handle any remaining unmatched fields), click Prev to return to the **Link to Data Source: Match Previous and Current Data Sources** wizard. - To abort the whole operation and keep the document linked to the previous data source, click **Cancel**. - To create the new content objects, click **Next**. - If there are unmatched previous data source fields, an error message is displayed, providing detailed information on the mismatch. Click OK and fix the problem, for example: modify the fields’ expressions; link to a compatible data source; or return to the wizard and handle these fields. - If all previous data source fields are matched with current data source fields, a message is displayed, informing you that the Link to Data Source Completed Successfully. - Determine how to proceed: The Dynamic Content’s content objects list is displayed, showing the matched content objects and any new content objects you have added. You are now properly linked to the current data source and can continue designing your document. ## Data source matching triggered by changes in the data source You may continue to use the same data source, without trying to link your document to a different data source; but the data source itself may change over time. These changes include renaming a field, renaming the data source or deleting it altogether. In any of these cases, the changes in the linked data source are detected the next time you open InDesign and launch your document. The following procedure explains how to match the data source and re-link your document to data. To relink a document whose data source has changed: - Launch InDesign and open your document. A message is displayed, notifying you of the data mismatch and specifying the path and file name of the data source. - Choose one of the following options: - To continue using this data source, click **Relink.** The **Link to Data Source** wizard is displayed, allowing you to match the previous and current data sources. - To stop using this data source, click **Disconnect**. - You can link to another data source by going to the **Dynamic Content** menu and choosing **Link to Data > Data Source**. See Linking a Document to a Data Source. ### Tagging Design Objects # Tagging Design Objects #### Tagging Design Objects with Content Objects # Tagging Design Objects with Content Objects Create dynamic objects by tagging a design object with a content object. For example, creating a static graphic frame and tagging it with a graphic content object results in a dynamic graphic frame. To create a dynamic object in your design, select a design object and double-click a content object in the content objects list. This will associate this content object with the selected design object. You can highlight in the document all dynamic design objects by selecting **Highlight All Content Placeholders **from the Dynamic Content menu. You can also highlight selected content objects, to help you identify where one or more content objects are located in the design. Simply right-click the specific content object(s) in the Dynamic Content panel, and select **Highlight Placeholders** from the menu. Double-clicking the highlighted area in the document shows the corresponding content object in the Dynamic Content panel. ## Tag a design object with a text content object - In InDesign, click the **Type Tool** icon and then use the mouse to draw a rectangular area in the document, or place the text insertion point in an existing text frame. - In the Dynamic Content panel, double-click the desired text content object.**The object is inserted into the document. You can now proceed to format the text using standard InDesign methods. The content object will use the same font as the existing text in the frame. If you wish to change the font, you can select the content object and use the InDesign Character Formatting Controls. For more information, see Adobe fonts. ## Tag a design object with a graphic content object The graphic content object is a pointer to a graphic file that is used in your dynamic document. The recipient-specific values of a graphic content object are asset names. To insert a graphic content object: - In your document, select or create a graphic box. - In the **Dynamic Content** panel, double-click the desired graphic content object. The object is inserted into your document. You can also make a text selection in InDesign, and insert the graphic content object as an inline image. You can now proceed to modify the graphic using standard InDesign methods. For details on how to modify the object’s properties, see Dynamic Graphic Properties. To remove a graphic content object: - Right-click the tagged graphic frame, and from the context menu choose **Dynamic Content** > **Remove Content Object from Graphic**. You can apply this option to multiple dynamic graphic frames. ## Tag a design object with an automatic web content object If you wish to see the XMPieRecipientKey web content object, do the following: - From the **Dynamic Content** menu, select **Preferences**. - Select the **Show Built-in Objects** checkbox. - Click **OK**. To tag a design object with an automatic web content object: - Place the insertion point in the required location in the document. - In the **Dynamic Content** panel, double-click the desired automatic web content object. The object is inserted into your document. You can now proceed to format the text using standard InDesign methods. ## Add a link content object to your design The link content object is used to apply a URL to text or to an object. The link will be active only if the document is produced in the interactive PDF format. The interactive PDF format is available only when working in connectivity mode. To insert a link content object: - Click InDesign's type tool or selection tool, and then highlight any text or object in the document. - In the **Dynamic Content** panel, double-click the desired link content object. Note that when assigning a link to a text box or to an image box, a dashed line surrounds it. There is no visual indication of the link. You can see it via the Hyperlinks panel. ## Use visibility content objects When you assign a visibility object to a layer or spread in your design application, you can control whether the layer or spread will be visible or hidden. For example, if you have a personal message that is appropriate only for male recipients, you can create a visibility content object called ‘ismale’. You can then select the layer that includes the message and assign the ismale content object to this layer or spread. Visibility content objects also support layer names. This allows one visibility content object to control the visibility of all layers, whose names match its values. For example, if the value of the visibility content object for a given recipient is “Family”, then the layer named “Family” will be shown. When creating a visibility content object, you should take into consideration that: - Visibility content object values are case sensitive, meaning a value must match the case of the layer’s name, to which it refers. If no value matches any layer's name, all layers will be turned off. - White spaces in layer names are also supported. For example, the visibility content object value "--Family--" matches the layer "--Family--" (where the character "-" indicates a white space). - Do not name the design layers with any of the following: "0", "1", "true" or "false". These values are reserved to the visibility content objects interpreter. - Layers that are tagged as non-printable layers in Adobe InDesign are not visible when printing the design regardless of the visibility content object status (visible or not visible). To assign a visibility content object to the active layer or spread: - In your document, select the object that is part of the desired layer or spread for which you want to control visibility. - Click a visibility content object and then click the visibility icon (either  layer or spread). The **Dynamic Visibility** dialog opens. You are prompted to assign the visibility content object to the selected layer or spread. - Click **Assign**. You can see how the visibility feature affects objects in the document by cycling through data source or proof set data. You can also use InDesign's **Layers**/**Pages** panel to assign visibility content objects, or to toggle the visibility of layers/spreads that have visible content objects assigned to them. You can access these panels from the Window menu. From these panels, you can set visibility not only to single but also to multiple layers/spreads at once using the right-click menu. ## Adobe fonts Adobe Fonts (formerly called Typekit) is a library of over 30,000 fonts that is available to Adobe Creative Cloud subscribers via the Adobe Creative Cloud desktop application. Since uCreate Print is a plugin to InDesign, you can leverage the Adobe Font library when creating your VDP templates. To access the Adobe font collection in Adobe InDesign: - Ensure that the Adobe Creative Cloud Desktop application is installed, running and that you are logged in to Adobe using the same username and password that you use for all your Adobe applications, including InDesign. - In the Adobe Creative Cloud Desktop application, select File > Preferences > Services**. Ensure that the **Adobe Fonts** setting is enabled. - In Adobe InDesign, select **Edit > Preferences > File Handling > Fonts**. The **Auto-add Adobe Fonts** setting should be enabled. The full range of fonts will appear in your InDesign font list when you select **Find More**: The cloud icons on the right show the status of the font: - The Cloud icon by itself shows a font that is available to download from the cloud. - Selecting a font that is available will change the icon to a Cloud with a down arrow allowing you to download the font to your computer. - The Cloud icon with a tick shows that you have downloaded this file already. - Selecting a font which is downloaded, the icon will change to a Cloud with a cross allowing you to remove / delete the font from your computer. ### How XMPie works with Adobe fonts uCreate Print creates VDP output using InDesign on the desktop. Once you have downloaded a font from the Adobe Fonts library and use it in your document design, you can create VDP Output in the usual way. When you save your document to the XMPie server, there is an option for Fonts to "Upload New Only" which will upload any fonts used in the document that are not already available in the campaign where you are saving the document. When you export a Campaign Package (CPKG), any fonts used in the document will be zipped and included in the package. Later when the package is uploaded to the uProduce server, the fonts will be unzipped and available in the campaign. When you export a Document Package (DPKG), fonts are NOT included in the package. If you upload the package to a uProduce campaign, you will need to check the fonts that are in the campaign already, and upload any new fonts used in the document that are not already in the campaign. #### Tagging a Design Object with a Text File Content Object # Tagging a Design Object with a Text File Content Object The text file content object is a pointer to a text file that is referred to in your data source. To insert a text file content object: - In InDesign, click the **Type Tool** icon and then use the mouse to draw a rectangular area in the document, or place the text insertion point in an existing text frame in the document. - In the **Dynamic Content** panel, double-click the desired text file content object.**The object is inserted into the document. ## Use nested composition Text file content objects are used to create dynamic text by referencing recipient-specific text files stored in the assets folder. Many times these are static text files; however, it is possible to make these assets dynamic, by tagging the text within the file with content objects. By creating a text file content object that references two or more text files, text within your document can change dynamically depending on the conditions you have built into the text file content object’s rule. This enables the values of content objects within each asset to be calculated per-recipient at proofing or composition time. Accordingly, this feature is known as **Nested composition**. Nested composition is where an asset file referenced by a text file content object contains references to other content objects. Nested composition applies to the following text formats supported by text file content objects: - Plain Text (*.txt) - Adobe Tagged Text (*.txt) - Rich Text Files (*.rtf) - XNIP (*.xnip) (see XNIP (*.xnip) file format). ## Tag an asset file with content object reference Tagging an asset with a content object is done by typing a content object 's name inside double curly brackets. The following is an example of a tagged plain text Asset: Happy birthday {{First Name}}! The same content object reference method can be used in Adobe Tagged Text files (see Using Nested Composition with Adobe Tagged Text) and Rich Text files. When XNIP files are exported, content object tags within the exported text are embedded as part of the XNIP file. ## Set up nested composition with a plain text asset The example below shows the use of nested composition with two plain text files tagged with content objects. You can try the following workflow with the uCreate Print tutorial sample document. To set up nested composition with a plain text asset: - Open your text editor and create two or more text files. - In each file, type the text to be placed dynamically in the document, including a reference to one or more content objects, for example: Text File 1: {{First Name}}, as a Stellar club member, you are entitled to 50% discount. Text File 2: Had you been a club member, {{First Name}}, you would have received a discount. - Save each text file in the assets folder of your campaign, for example: Text File 1 saved as discount.txt Text File 2 saved as nodiscount.txt - Create a new content object and set its type to text file content object. - Use the If/Then rule, and set the condition as Club level, function = String: Stellar; Then Text File = String discount; Else Text File = String nodiscount, or use the names of the text files you saved in the assets folder if you used different names. - Make sure you do not type the file extension “.txt”. - In the document window, draw a text frame and tag it with the text file content object. - Select the text, right-click it and select **Dynamic Content** > **Enable Nested Composition**. - Scroll through the records to view the text change dynamically within the document, as shown in the following figures. Note:** Make sure to store your assets in the assets folder of your campaign. ## Use nested composition with Adobe tagged text Nested composition with Adobe Tagged Text differs from a plain text file tagged with content objects, in that it provides the ability for styling parts of the text in the asset, for example setting its color, font family or point size. To use nested composition with Adobe Tagged Text you must first create Adobe Tagged text files. **Note:** Tagged text in this context does not relate to tagging with content object, but rather to Adobe proprietary tags that save style information in a text file. This following design needs to display different messages based on club membership, as well as containing the recipient’s first name. We can do this by using Adobe Tagged Text or XMPie XLIM’s XNIP. To create a tagged Text File: - In your document, draw a text frame and enter the text, including the text content object you wish to style, for example, {{First Name}}, as a Stellar club member, you are entitled to 50% discount. - Style the text as required, as shown in the following figure. **Note:** Make sure that if you style references to content objects, the whole reference, including the curly brackets, uses the same style. - Select all the text and from the **File** menu, select **Export** to export the text as an **Adobe InDesign Tagged Text **file (*.txt) into the campaign's assets folder. - Name the text file, and click **Save**. The **Adobe InDesign Tagged Text Export Options** dialog is displayed. - Select **Tag Form: Verbose**, and **Encoding: Unicode**. - Repeat steps 1 to 5 for each tagged Text File, using the filenames “discounstyled” and “nodiscountstyled” if you are using the same sample detailed in Setting Up Nested Composition with a Plain Text Asset, or using the names of the Text files you saved in the Assets folder if you used different names. - Create a new content object as a text file content object, using the If/Then Rule, condition as Club level, function = String: Stellar; Then Text File = String discountstyled; Else Text File = String nodiscountstyled, or use the names of the Text files you saved in the Assets folder if you used different names. Make sure you do not type the file extension “.txt”. - Select the text, right-click it and select **Dynamic Content** >** Enable Nested Composition**. - Scroll through the records to view the text and styling change dynamically within the document, as shown in the following figures. ## Watch a video Using Adobe InDesign Tagged Text #### Creating a Personalized URL with an XMPieRecipientKey Automatic ADOR # Creating a Personalized URL with an XMPieRecipientKey Automatic Content Object The XMPieRecipientKey automatic content object defines a unique ID for each recipient record. In personalized web campaigns, it is used to differentiate between websites of different recipients. In order to use the XMPieRecipientKey value in content objects, use “?”. To create a dynamic URL using XMPieRecipientKey: - In the **Dynamic Content** panel, create a new text content object. - In the **Rule** section, define the dynamic URL. The standard URL structure is: http://// For example: http://www.lioncomm.com/SummerSale/? #### Adding a Style Content Object to your Design # Adding a Style Content Object to your Design The style content object is used to apply a desired format (as opposed to content), using one of the following types of Adobe InDesign styles: - Character styles: when applied to text, the style content object can be used to format text attributes such as color, font, size, etc. You can also override a text style attributes with alternative font including the font size, font style and font color. Once a character style content object is applied to text, it overrides any static InDesign style: Existing, static styles are replaced by the style content object, and new styles cannot be applied on top of the style content object. - Object styles: when applied to a frame (whether a text frame or a graphic frame), the style content object can be used to format frame attributes such as fill, stroke, corner effects, etc. In both cases, the value of the style content object must be the name of an InDesign document character style or object style. The style content object can then be applied to any type of text or object, whether static or dynamic (that is, text or objects that are already tagged with another content object). For example, you can first make the text’s content dynamic by tagging it with a text content object, and then make its format dynamic by tagging it using a style content object. When a style content object is applied to text, the text is marked with a unique visual indication, in the form of a light blue, wavy underline (). Note that InDesign styles that are grouped in the Styles panel cannot be accessed through uCreate Print. To insert a style content object: - Click InDesign's type tool or selection tool, and then highlight any text or object in the document. - In the **Dynamic Content** panel, double-click the desired style content object. When the value of the style content object is populated for each recipient, the desired style is applied to the tagged text or object. To remove a style content object: To remove a style content object (that is, remove the character style or object style without removing the text or object itself), proceed as follows: - Click InDesign's type tool or selection tool, and then highlight the text or object to which a style content object is applied. - Right-click the highlighted style content object and then select **Dynamic Content** > **Unapply Style Content Object**
### MP4 XMPL snippet Use the following snippet to embed an MP4 personalized video in your XMPL HTML page. When browsing to the personalized HTML page, you must supply the rid={XMPieRecipientKey} in the query string. For example: http://..... .html?rid=00291f2b31dbd8963f9799dca5ca6a94 Test ### HLS XMPL snippet Use the following snippet to embed an HLS personalized video in your XMPL HTML page. When browsing to the personalized HTML page, you must supply the rid={XMPieRecipientKey} in the query string. For example: http://..... .html?rid=00291f2b31dbd8963f9799dca5ca6a94. Test

rid: {{xmp.r.XMPieRecipientKey}}

### MP4 snippet for password protected videos (beta) This snippet allows you to display both password protected MP4 personalized videos and non-password protected videos. **Note:** This is a beta version and is subject to change. When browsing to the personalized HTML page, you must supply the user ID, project ID and RID (record ID) in the query string. For example: **http://..... .html?userid=myuser&projectid=124&rid=Mary_Smith. Alternatively, you can place it in the and tags, as seen in the following snippet: XVS Player
#### Configuration URL parameters** You can set the following attributes using the query string or directly in the tag: - userid: The XVS user ID associated with the video content. - projectid: The XVS project ID associated with the video. - rid: Unique identifier for the specific video record. - videotype: Type of the video file. Options include mp4 or hls. - trackvisits: Determines whether to track visits to the video. Optional, default is true. - theme: Customizes the player's theme. Choose from Video.js themes - city, forest, fantasy, or sea. Optional, defaults to city if not specified. - controls: Enables or disables player controls. Optional, defaults to true. - autoplay: Enables autoplay for the video. Optional, defaults to false. - loop: Sets whether the video should loop. Optional, defaults to false. - muted: Specifies if the video should start muted. Optional, defaults to muted. - poster: URL of an image to display as the video poster. Optional. Setting attributes via query string You can pass the attributes through the URL query string. For example: `https://example.com/videoplayer?userId=123&projectId=456&rid=789&videoType=mp4&theme=fantasy&controls=true&autoplay=true&loop=false&muted=false` Setting attributes in the tag Alternatively, you can set the attributes directly in the tag: #### CSS styles Define CSS styles to customize the appearance of the video player and modal dialog. --- *End of documentation. Total topics: 893*