60 Practice Questions & Answers
When implementing a custom data model in Adobe Campaign Classic, what is the primary purpose of defining a relation with cardinality 1-N?
-
A
To enable automatic deletion of parent records when child records are removed from the database
-
B
To allow a single record in the parent table to be associated with multiple records in the child table
✓ Correct
-
C
To establish a one-to-one relationship where each record in the parent table links to exactly one record in the child table
-
D
To create a many-to-many relationship that requires a junction table for proper implementation
Explanation
A 1-N cardinality relationship means one parent record can have many child records. This is a fundamental relational database concept used extensively in Campaign's data model extensions.
In Adobe Campaign Classic, what is the correct syntax to access a linked table attribute in a JavaScript activity within a workflow?
-
A
instance['linkedTable']['attribute']
-
B
instance.linkedTable.attribute
-
C
vars.instance.linkedTable.attribute
✓ Correct
-
D
instance.linkedTable@attribute
Explanation
When accessing linked table attributes in Campaign JavaScript, the vars object provides access to workflow instance data with dot notation for nested attributes.
Which Campaign Classic feature allows you to define business rules that automatically validate or transform data during import processes?
-
A
Reconciliation functions
-
B
Preprocessing scripts within import workflows
✓ Correct
-
C
Load balancing modules
-
D
Data enrichment activities
Explanation
Preprocessing scripts in import workflows enable custom validation and transformation logic before data is committed to the database, providing fine-grained control over data quality.
What is the primary advantage of using a Split activity with percentage-based targeting in Campaign Classic workflows?
-
A
It enables random statistical sampling of a population for A/B testing or stratified analysis
✓ Correct
-
B
It converts all target dimensions to the same schema automatically
-
C
It removes duplicate records from the workflow population automatically
-
D
It automatically optimizes database query performance by reducing result set sizes
Explanation
Percentage-based splits in Campaign allow for statistical sampling and controlled distribution of populations, essential for A/B testing and multivariate experiments.
In the Adobe Campaign Classic data model, what does the 'auto:key' attribute definition accomplish?
-
A
It marks a field as the primary identifier and generates sequential numeric values automatically
✓ Correct
-
B
It creates an automatic backup of the field value before any modification
-
C
It establishes automatic synchronization with external marketing cloud systems
-
D
It enables encryption for sensitive data fields automatically during storage
Explanation
The auto:key attribute in Campaign's schema definition creates an auto-incrementing primary key field, ensuring unique record identification within the custom table.
Which SOAP API method would you use to retrieve a list of all delivery objects with specific filtering criteria in Campaign Classic?
-
A
GetList
✓ Correct
-
B
FetchAll
-
C
ExecuteQuery
-
D
SelectList
Explanation
The GetList SOAP method is the standard approach for retrieving filtered lists of Campaign objects, accepting XPath expressions for complex filtering.
What is the correct way to handle timezone conversions for international deliveries in Campaign Classic workflows?
-
A
Campaign Classic handles all timezone conversions automatically without developer intervention required
-
B
Store timezone information in the recipient profile and apply conversion functions during delivery scheduling
✓ Correct
-
C
Use the GetServerTime() function which automatically detects recipient timezone from their profile
-
D
Configure a global timezone setting in the instance administration parameters that applies to all users
Explanation
Best practice involves storing timezone data in recipient profiles and using Campaign's date manipulation functions to convert scheduled times appropriately for each recipient.
In Adobe Campaign Classic, what is the primary function of the 'nms:seedMember' schema?
-
A
It defines the structure for test addresses and seed lists used in delivery validation
✓ Correct
-
B
It controls the database indexing strategy for improved query performance
-
C
It stores workflow execution history and audit trails
-
D
It manages the configuration of SMTP relay servers for email delivery
Explanation
The nms:seedMember schema stores test/seed addresses that allow marketers to validate deliveries before sending to actual recipients, a critical quality assurance component.
Which Campaign Classic feature enables you to create personalized content blocks that can be reused across multiple deliveries?
-
A
Personalization fields only
-
B
Content management blocks or building blocks
✓ Correct
-
C
Dynamic content segments
-
D
Template inheritance structures
Explanation
Content blocks (or building blocks) in Campaign allow reusable HTML snippets and personalization logic that can be inserted into multiple deliveries, improving consistency and maintenance.
What is the correct approach to implement conditional logic for complex targeting rules in a Campaign workflow?
-
A
Create a JavaScript activity that evaluates conditions and updates workflow variables
-
B
Any of the above approaches are equally effective
-
C
Chain multiple Split activities with complex filter conditions using AND/OR operators
✓ Correct
-
D
Use a single Split activity with all conditions combined into one XPath expression
Explanation
While all methods can work, chaining multiple Split activities provides the clearest workflow visualization and maintainability for complex targeting rules.
In Campaign Classic, how do you ensure that a workflow variable retains its value across multiple workflow executions?
-
A
Workflow variables are always temporary and reset between executions; use instance variables instead
-
B
Use global variables with the 'persistent' attribute in the workflow definition
-
C
Store the value in a custom field on the nms:recipient schema or appropriate target table
✓ Correct
-
D
Campaign automatically persists all workflow variables in the execution history
Explanation
Workflow variables are session-scoped; to persist data across executions, values must be stored in database fields using Update Data activities.
What is the primary purpose of the 'nms:delivery' schema's 'dlvStatus' field?
-
A
It defines the status of individual email bounces for each recipient
-
B
It tracks whether delivery content has been approved by compliance teams
-
C
It records the current processing state of a delivery (ready, started, finished, etc.)
✓ Correct
-
D
It indicates the delivery channel type (email, SMS, push notification)
Explanation
The dlvStatus field in the nms:delivery schema tracks the delivery lifecycle status, allowing workflows and APIs to determine if a delivery is ready, running, or completed.
Which Campaign Classic workflow activity allows you to pause workflow execution until a specific external condition is met?
-
A
External signal activity combined with a signal trigger
✓ Correct
-
B
Wait activity with time-based triggers
-
C
Scheduler activity with event-based execution
-
D
Jump activity with conditional branching
Explanation
The External Signal activity enables workflow pauses and resumption based on external events or API calls, providing flexibility for complex multi-step processes.
In Adobe Campaign Classic, what does the 'target-schema' attribute specify when defining a workflow activity?
-
A
The audit schema that records all changes made by the activity
-
B
The XML schema definition for validating workflow input parameters
-
C
The database schema that contains the target population for the current activity
✓ Correct
-
D
The delivery template schema to use for creating new delivery objects
Explanation
The target-schema attribute defines which database schema the activity operates on, determining the available fields and relationships for targeting and data manipulation.
What is the correct method to implement API rate limiting for Campaign Classic SOAP web services in a custom integration?
-
A
Configure rate limiting in the Campaign server configuration files with MaxRequestsPerSecond parameter
-
B
Implement client-side throttling in the consuming application with request queuing and delay logic
✓ Correct
-
C
Use Campaign's built-in API quota system which automatically limits requests per user
-
D
Rate limiting is not supported; all API calls are processed immediately without limits
Explanation
Campaign doesn't enforce SOAP API rate limits natively, so integrations must implement client-side throttling with request delays and queue management to avoid overwhelming the server.
In a Campaign Classic workflow, what is the primary benefit of using a Deduplication activity before a delivery?
-
A
It automatically suppresses opted-out contacts from the delivery target
-
B
It eliminates duplicate records from the target population to prevent sending multiple messages to the same recipient
✓ Correct
-
C
It compresses the workflow data to reduce memory usage during execution
-
D
It removes records with invalid email addresses and malformed data
Explanation
Deduplication ensures each unique recipient receives only one message per delivery, which is essential for maintaining data quality and avoiding recipient complaints.
Which Campaign Classic feature allows you to define custom validation rules for form fields in web applications or landing pages?
-
A
JavaScript validation within the form's onSubmit event handler
-
B
Server-side validation rules defined in the form properties and schema constraints
✓ Correct
-
C
XPath filter expressions embedded in the field definitions
-
D
The validation can only be implemented through custom Java servlets
Explanation
Campaign provides schema-based constraints and form properties for defining validation rules that are enforced both client-side and server-side when forms submit data.
What is the correct syntax to create a new workflow instance programmatically using Campaign Classic JavaScript API?
-
A
var wf = xtk.workflow.create({label: 'MyWorkflow'}); wf.start();
-
B
var wf = NLWS.xtkWorkflow.Create({internalName: 'workflow'}); wf.execWorkflow();
-
C
var wf = new Workflow('internalName'); wf.start();
✓ Correct
-
D
Workflows cannot be created or executed programmatically; they must be created in the Campaign interface
Explanation
The Workflow constructor in Campaign JavaScript API allows programmatic workflow creation and execution by referencing the internal workflow name.
In Adobe Campaign Classic, what is the primary purpose of implementing a Lookup activity in a workflow?
-
A
To validate that all required fields contain values before processing
-
B
To retrieve data from another table and add it to the current working population based on join conditions
✓ Correct
-
C
To compile campaign execution statistics and performance metrics
-
D
To search for specific text patterns within string fields using regular expressions
Explanation
The Lookup activity performs database joins to enrich the working population with additional data from related tables based on defined matching criteria.
What is the correct approach to handle custom event tracking and analytics in Campaign Classic deliveries?
-
A
Use Campaign's built-in broadlog table which automatically captures all opens and clicks without additional configuration
-
B
Implement tracking pixel URLs with custom parameters in the delivery template links
✓ Correct
-
C
Custom tracking requires a separate third-party analytics solution; Campaign only provides basic delivery metrics
-
D
Implement custom event handlers in the nms:trackingUrl schema and configure associated webhooks
Explanation
Campaign enables custom event tracking by appending parameters to tracking URLs, which are captured in the broadlog and can be analyzed for custom metrics and behavior analysis.
In Campaign Classic schema definitions, what is the significance of the 'autopk' attribute?
-
A
It automatically generates a public key for encrypting sensitive field values
-
B
It specifies that the field should be used as the primary key with auto-increment functionality
✓ Correct
-
C
It marks the field as a candidate key for unique constraint enforcement
-
D
It enables automatic backup and archive functionality for the field
Explanation
The autopk attribute in Campaign schema definitions marks a field as an auto-incrementing primary key, ensuring unique record identification across database operations.
Which Campaign Classic workflow activity is most appropriate for executing JavaScript code that modifies workflow variables?
-
A
JavaScript activity
✓ Correct
-
B
Execute activity
-
C
Code activity
-
D
Script activity
Explanation
The JavaScript activity (also called Code activity in some versions) allows execution of custom JavaScript code to transform data, update variables, and control workflow logic.
What is the primary function of the Campaign Classic 'nms:offer' schema in the context of personalization and marketing?
-
A
It tracks all discount codes and promotional pricing agreements with suppliers
-
B
It stores the terms and conditions for customer service agreements
-
C
It defines the structure for managing marketing offers and propositions that can be delivered to recipients
✓ Correct
-
D
It manages the catalog of available email templates for campaign creation
Explanation
The nms:offer schema is foundational to Campaign's offer management system, enabling the definition and delivery of personalized propositions through the interaction engine.
In a Campaign Classic workflow, what is the correct method to implement dynamic list creation based on workflow execution context?
-
A
Use an Update Data activity to populate a pre-existing list with filtered recipients
-
B
Use the List Update activity to create a new list and add recipients based on filtering conditions
✓ Correct
-
C
Create a static list in the Campaign interface and reference it in the workflow query
-
D
Lists must be predefined before workflow execution; dynamic creation is not supported
Explanation
The List Update activity enables dynamic list creation and population during workflow execution, allowing lists to be created and modified based on runtime conditions.
What is the correct approach to implement multi-language content delivery in Campaign Classic while maintaining code efficiency?
-
A
Create separate delivery objects for each language with hardcoded content
-
B
Use dynamic content blocks and personalization fields to conditionally render content based on recipient language preference stored in their profile
✓ Correct
-
C
Campaign automatically detects recipient language and translates content without developer intervention
-
D
Implement a separate workflow for each supported language with independent targeting
Explanation
Campaign's dynamic content and personalization system allows single deliveries to serve multiple languages by checking recipient profile attributes and rendering appropriate content blocks.
When creating a custom resource in Adobe Campaign Classic, which XML element defines the structure of the resource's fields?
-
A
<element>
-
B
<attribute>
✓ Correct
-
C
<srcSchema>
-
D
<form>
Explanation
The <attribute> element defines individual fields within a resource schema, specifying data types, lengths, and other properties for each field.
What is the primary purpose of the xtk:operation namespace in Campaign Classic?
-
A
To configure email delivery templates
-
B
To manage SOAP operations and web service interactions
✓ Correct
-
C
To handle database query optimization
-
D
To define workflow activities and their configurations
Explanation
The xtk:operation namespace is used to define SOAP operations that enable web service calls and API interactions in Campaign Classic.
In a Campaign Classic workflow, which activity type allows you to execute JavaScript code and manipulate workflow variables?
-
A
Code activity
-
B
Script activity
✓ Correct
-
C
JavaScript code
-
D
Query activity
Explanation
The Script activity in Campaign workflows enables developers to execute JavaScript code and interact with workflow variables, event objects, and logging mechanisms.
When implementing a custom JavaScript extension in Campaign Classic, where should you place the code to ensure it's accessible across all contexts?
-
A
In the serverJavaScript folder of the Campaign installation
✓ Correct
-
B
In the delivery template directly
-
C
In workflow activity event handlers only
-
D
In the client-side JavaScript library folder
Explanation
Server-side JavaScript extensions should be placed in the serverJavaScript directory within the Campaign installation to be globally accessible and executed server-side.
Which XPath expression correctly references the email address of the primary recipient in Campaign Classic?
-
A
$(recipient/email)
-
B
recipient/@email
-
C
@email
✓ Correct
-
D
recipient.email
Explanation
In Campaign personalization and queries, @email directly references the email attribute of the current recipient context without needing a prefix.
What is the correct syntax for declaring a variable in a Campaign Classic workflow Script activity?
-
A
instance.myVar = 'value';
-
B
var myVar = 'value';
✓ Correct
-
C
set myVar = 'value';
-
D
declare myVar as string = 'value';
Explanation
Campaign workflow scripts use standard JavaScript syntax with 'var' keyword for variable declaration, allowing assignment of values.
In Adobe Campaign Classic, which database schema stores delivery-related information and is essential for creating custom delivery types?
-
A
nms:delivery
✓ Correct
-
B
nms:deliveryStatus
-
C
xtk:delivery
-
D
xtk:broadLog
Explanation
The nms:delivery schema is the core namespace that defines the delivery object structure, including properties and relationships for standard and custom delivery types.
When extending the recipient table in Campaign Classic, what must you do to ensure the custom fields are available in all recipient-based operations?
-
A
Create the fields in the database only without schema definition
-
B
Add fields directly to SQL without updating the Campaign schema
-
C
Define fields in the workflow variables section
-
D
Extend the nms:recipient schema and regenerate the database structure
✓ Correct
Explanation
Custom recipient fields require both schema extension in the nms:recipient namespace and database structure regeneration to be properly recognized and available throughout Campaign.
What is the purpose of the 'soapCall' function in Campaign Classic server-side JavaScript?
-
A
To manage SOAP authentication credentials
-
B
To debug SOAP requests in the Campaign client interface
-
C
To execute SOAP web service calls to external systems
✓ Correct
-
D
To format email content with SOAP protocols
Explanation
The soapCall() function enables server-side JavaScript to make SOAP calls to external web services, integrating third-party systems with Campaign workflows.
In Campaign Classic, how do you prevent a workflow transition from executing under certain conditions?
-
A
Set the transition's 'Condition' field with a boolean expression that evaluates to false
✓ Correct
-
B
Delete the transition and recreate it conditionally
-
C
Use the 'Disable' checkbox on the transition
-
D
Use the activity's 'Enable' property to control downstream flow
Explanation
Workflow transitions can be made conditional by setting a condition expression in the transition properties; when the expression evaluates to false, the transition does not execute.
Which of the following correctly describes the relationship between a campaign and a delivery in Adobe Campaign Classic?
-
A
Campaigns and deliveries are independent and have no relationship structure
-
B
A delivery can only belong to one campaign, and campaigns cannot exist without deliveries
-
C
A campaign can contain multiple deliveries, and deliveries can optionally be linked to campaigns
✓ Correct
-
D
A delivery determines which campaigns it belongs to during sending
Explanation
Campaigns are containers that can organize multiple deliveries (emails, SMS, etc.), while deliveries can exist independently or be associated with campaigns for organizational purposes.
When creating a nested loop in a Campaign Classic workflow using JavaScript, what potential issue should you be aware of regarding workflow performance?
-
A
Nested loops executing on large datasets may cause timeout issues and block workflow execution
✓ Correct
-
B
Nested loops automatically optimize and execute in parallel
-
C
Nested loops will cause immediate syntax errors
-
D
Nested loops require special permission settings to execute
Explanation
Nested loops in Script activities, especially with large datasets, can cause performance degradation and workflow timeout issues because Campaign executes them synchronously on a single server thread.
What is the primary difference between the 'Query' and 'Incremental Query' activities in Campaign workflows?
-
A
Incremental Query can only be used once per workflow
-
B
Incremental Query retrieves only records modified since the last execution, while Query retrieves all matching records each time
✓ Correct
-
C
Query supports complex joins whereas Incremental Query does not
-
D
Query is faster than Incremental Query for all dataset sizes
Explanation
Incremental Query uses the 'last execution' date to retrieve only new or modified records, improving performance for recurring workflows, while Query always executes the full query.
In Adobe Campaign Classic, which schema element is used to define the relationship between two resources and ensure referential integrity?
-
A
<key>
-
B
<relation>
-
C
<link>
✓ Correct
-
D
<join>
Explanation
The <link> element in schema definitions establishes relationships between resources, with integrity constraints that enforce referential consistency between related data.
When handling errors in a Campaign Classic workflow, what does the 'Error management' option 'Ignore' do?
-
A
Continues workflow execution on the current activity even if an error occurs
✓ Correct
-
B
Sends an error notification to administrators
-
C
Logs the error and stops the workflow execution immediately
-
D
Automatically retries the failed activity before continuing
Explanation
The 'Ignore' error management option allows the workflow to continue execution even when the activity encounters an error, without logging it as a critical failure.
What is the correct method to access a workflow event variable in a Campaign Classic Script activity?
-
A
wd.variableName
-
B
instance.variableName
-
C
event.variableName
✓ Correct
-
D
workflow.variableName
Explanation
Workflow event variables passed to activities are accessed using the 'event' object, allowing script code to read values from upstream activities.
In Campaign Classic, how does the 'Fork' activity differ from creating multiple sequential activities in a workflow?
-
A
Fork requires manual configuration while sequential activities are automatic
-
B
Fork cannot pass variables to downstream activities
-
C
Fork is slower than sequential activities due to overhead
-
D
Fork activity allows parallel execution of multiple branches, while sequential activities execute one after another
✓ Correct
Explanation
The Fork activity creates multiple parallel branches that execute simultaneously, enabling efficient workflow design when multiple independent operations need to occur, unlike sequential activities which execute one at a time.
Which configuration is required to enable SSL/TLS encryption for external API calls made from Campaign Classic server-side JavaScript?
-
A
Modify the soapCall() function parameters with certificate details
-
B
No additional configuration; HTTPS is automatically supported
-
C
Install SSL certificates in the Campaign installation directory and configure serverConf.xml with certificate paths
✓ Correct
-
D
Enable SSL in the delivery properties
Explanation
To use HTTPS/SSL for external API calls, SSL certificates must be installed and the serverConf.xml configuration file must be updated with appropriate certificate and key paths.
What is the primary purpose of the 'Reconciliation' activity in a Campaign Classic workflow?
-
A
To audit workflow execution and validate data quality
-
B
To match records from a source dataset with existing database records using defined keys
✓ Correct
-
C
To merge multiple datasets into a single consolidated dataset
-
D
To compare two datasets and identify differences for reporting
Explanation
The Reconciliation activity identifies which records from an incoming dataset already exist in the Campaign database by matching on specified key fields, essential for updates and upserts.
In Campaign Classic, what does the 'countIf()' function do in a workflow's JavaScript context?
-
A
Counts records in a database table matching a condition
-
B
Counts how many times a condition is true within a collection or array
✓ Correct
-
C
Counts the number of conditional transitions in the workflow
-
D
Returns the total number of files processed in a workflow
Explanation
The countIf() function evaluates a condition against elements in a collection and returns the count of elements where the condition is true, useful for data validation and aggregation in scripts.
When building a typology rule in Campaign Classic, which event type is triggered just before a delivery is sent to allow final validation?
-
A
On analysis
✓ Correct
-
B
On delivery
-
C
On message send
-
D
On personalization
Explanation
Typology rules with the 'On analysis' event type execute during delivery analysis phase, allowing rules to validate and modify deliveries before they are sent to the sending queue.
What is the correct syntax to insert a new record into a Campaign Classic database table using server-side JavaScript?
-
A
var oNewRecord = NLWS.xtkPersist.create('schemaName'); oNewRecord.field1 = 'value1'; oNewRecord.save();
✓ Correct
-
B
db.insert('tableName', {field1: 'value1', field2: 'value2'});
-
C
INSERT INTO tableName (field1, field2) VALUES ('value1', 'value2');
-
D
NLWS.xtkSession.Write(xtk:persist, xmlData);
Explanation
Campaign's NLWS API provides xtkPersist.create() to instantiate new schema objects, allowing property assignment followed by save() to persist records to the database.
In Adobe Campaign Classic, which workflow activity should be used to dynamically generate a delivery content based on recipient data?
-
A
Enrichment activity with template selection
-
B
Dynamic content activity
-
C
Query activity followed by Delivery activity with personalization
✓ Correct
-
D
Content management activity
Explanation
The standard approach is to use a Query activity to select recipients, then configure a Delivery activity with personalization blocks and conditional content to dynamically generate recipient-specific messages.
What role does the 'splitCode' variable play in a Campaign Classic Split activity?
-
A
It defines which branches are active versus inactive in the split
-
B
It stores the identifier of which branch a record was routed to
✓ Correct
-
C
It controls the execution order of split branches
-
D
It stores error codes from failed transitions
Explanation
The splitCode variable captures the identifier or label of the split branch that each record was routed to, enabling downstream activities to reference which path was taken.
When implementing a custom channel in Campaign Classic, which configuration file must be modified to register the new channel type with the delivery engine?
-
A
delivery.xml
-
B
channels.xml
-
C
config.xml
-
D
serverConf.xml
✓ Correct
Explanation
The serverConf.xml configuration file contains the channel definitions and delivery engine settings where custom channels must be registered to be recognized by Campaign.
You are implementing a custom JavaScript activity in a Campaign workflow. Which object provides access to the current workflow instance and its variables?
-
A
context
-
B
instance
-
C
workflow
-
D
vars
✓ Correct
Explanation
The 'vars' object in JavaScript activities contains all workflow variables and allows read/write access to them. It is the standard way to interact with workflow data in custom code activities.
When configuring a list or recipient field in a schema, what is the primary purpose of the 'autopk' attribute?
-
A
Automatically generates sequential integer primary keys
✓ Correct
-
B
Automatically generates UUID primary keys for the table
-
C
Automatically publishes the schema to the database
-
D
Automatically creates public/private key encryption
Explanation
The 'autopk' attribute, when set to 'true', automatically generates sequential integer primary keys for the table. This is useful for tables that require auto-incrementing numeric identifiers.
You need to implement a dynamic calculation in a delivery that changes based on recipient attributes. Which approach best leverages Campaign's personalization engine?
-
A
Use JavaScript in the delivery content with ctx.recipient object for dynamic values
✓ Correct
-
B
Export recipients to external system for calculation, then re-import results
-
C
Create a separate delivery for each segment and hardcode values manually
-
D
Use SQL queries in the delivery preview to fetch values at send time
Explanation
The ctx.recipient object in Campaign's personalization engine provides access to recipient attributes for dynamic content. This is the native, efficient approach for conditional and calculated personalization within deliveries.
In the context of SOAP API calls from Campaign, what does the 'xtk:session' namespace primarily manage?
-
A
External API credential storage and encryption protocols
-
B
User authentication, permission validation, and session context management
✓ Correct
-
C
Database connection pooling and query optimization settings
-
D
Campaign server clustering and load balancing configuration
Explanation
The 'xtk:session' namespace handles user authentication, permission validation, and maintains session context for SOAP API operations. It is essential for secure API interactions in Campaign.
You are designing a schema extension for the nms:recipient table. What is a critical consideration when adding custom fields to avoid performance issues?
-
A
Create a separate custom table and link via foreign key rather than extending nms:recipient directly
-
B
Avoid adding indexes to custom fields; indexing should only be done on standard Adobe fields
-
C
Always use string data types regardless of actual data to maintain flexibility and simplify queries
-
D
Use appropriate data types and add indexes selectively on fields frequently used in filtering or joins
✓ Correct
Explanation
When extending nms:recipient, selecting appropriate data types and strategically indexing fields used in WHERE clauses and JOINs is critical for query performance. Improper indexing strategy can significantly impact workflow and query execution times.
What is the primary role of the 'sourceSchema' attribute when defining a form in Campaign?
-
A
It specifies the CSS stylesheet to apply visual styling to form elements
-
B
It establishes the encryption method for sensitive data entered in the form
-
C
It defines the external data source endpoint for REST API integration
-
D
It references the XML schema that provides the data model for the form's fields and structure
✓ Correct
Explanation
The 'sourceSchema' attribute in form definitions points to the underlying XML schema (e.g., 'nms:recipient') that defines the fields, data types, and validation rules for the form.
In a workflow, you need to filter records based on a complex date calculation (e.g., 'recipients who received an email in the last 30 days'). Which activity combination is most efficient?
-
A
JavaScript activity to loop through all records and perform the date calculation in memory
-
B
Export to file, process externally, then re-import filtered results
-
C
Query activity with a date calculation in the WHERE clause; avoid JavaScript for better performance
✓ Correct
-
D
Multiple split activities chained together, each handling part of the date logic
Explanation
Query activities execute SQL server-side, which is far more efficient than JavaScript looping. Date calculations in the WHERE clause leverage database indexing and minimize data transfer between Campaign and the database.
When implementing a custom operator in Campaign's JavaScript, how is the operator's permission level typically controlled and stored?
-
A
Through named rights defined in the nms:operator schema and assigned to operator groups with specific authorization rules
✓ Correct
-
B
In a separate configuration file outside the database with Unix-style permission bits
-
C
Via the operatorPassword field in nms:operator schema with role-based access control attributes
-
D
By storing cleartext permissions in the user profile with no encryption for simplicity
Explanation
Campaign uses named rights (defined in nms:operator schema) assigned to operator groups to control permissions. This provides granular, maintainable access control without storing sensitive data in cleartext.
You are troubleshooting a workflow where the 'Update data' activity is not modifying records as expected. Which configuration element is most commonly overlooked?
-
A
The workflow's overall timezone setting, which always affects data modification operations
-
B
The delivery template assigned to the workflow, which controls update behavior
-
C
The server's available disk space, which must be checked before any update operation
-
D
The 'Reconciliation key' mapping that links the input data to existing records in the target table
✓ Correct
Explanation
The reconciliation key in 'Update data' activities is critical—it determines which existing records are matched and updated. A misconfigured or missing reconciliation key is the most common cause of records not being updated as expected.
In Campaign's JavaScript context, what is the primary difference between using 'logInfo()' and 'logWarning()' for debugging?
-
A
logInfo records messages to the browser console; logWarning records messages only to the database audit trail
-
B
logInfo records informational messages in the workflow log; logWarning records warnings and causes workflow execution to pause
-
C
logInfo records general information for auditing; logWarning records warnings that signal potential issues but do not halt execution
✓ Correct
-
D
logInfo is for production environments; logWarning is only for development and staging
Explanation
Both logInfo() and logWarning() write to workflow logs; logWarning() indicates potential issues and appears in warning logs, while logInfo() records general informational messages. Neither automatically halts workflow execution.