Adobe Certification

AD0-E330 — Adobe Campaign Classic Developer Expert Study Guide

60 practice questions with correct answers and detailed explanations. Use this guide to review concepts before taking the practice exam.

▶ Take Practice Exam 60 questions  ·  Free  ·  No registration

About the AD0-E330 Exam

The Adobe Adobe Campaign Classic Developer Expert (AD0-E330) certification validates professional expertise in Adobe technologies. This study guide covers all 60 practice questions from our AD0-E330 practice test, complete with correct answers and explanations to help you understand each concept thoroughly.

Review each question and explanation below, then test yourself with the full interactive practice exam to measure your readiness.

60 Practice Questions & Answers

Q1 Medium

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.

Q2 Hard

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.

Q3 Medium

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.

Q4 Medium

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.

Q5 Medium

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.

Q6 Medium

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.

Q7 Hard

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.

Q8 Medium

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.

Q9 Easy

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.

Q10 Hard

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.

Q11 Hard

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.

Q12 Medium

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.

Q13 Medium

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.

Q14 Hard

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.

Q15 Hard

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.

Q16 Easy

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.

Q17 Medium

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.

Q18 Hard

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.

Q19 Medium

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.

Q20 Medium

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.

Q21 Hard

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.

Q22 Easy

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.

Q23 Medium

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.

Q24 Medium

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.

Q25 Hard

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.

Q26 Medium

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.

Q27 Medium

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.

Q28 Easy

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.

Q29 Hard

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.

Q30 Medium

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.

Q31 Easy

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.

Q32 Medium

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.

Q33 Hard

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.

Q34 Medium

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.

Q35 Medium

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.

Q36 Easy

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.

Q37 Hard

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.

Q38 Medium

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.

Q39 Medium

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.

Q40 Medium

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.

Q41 Easy

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.

Q42 Medium

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.

Q43 Hard

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.

Q44 Medium

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.

Q45 Medium

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.

Q46 Hard

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.

Q47 Hard

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.

Q48 Medium

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.

Q49 Hard

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.

Q50 Hard

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.

Q51 Medium

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.

Q52 Medium

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.

Q53 Medium

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.

Q54 Hard

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.

Q55 Hard

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.

Q56 Easy

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.

Q57 Medium

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.

Q58 Hard

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.

Q59 Medium

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.

Q60 Easy

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.

Ready to test your knowledge?

You've reviewed all 60 questions. Take the interactive practice exam to simulate the real test environment.

▶ Start Practice Exam — Free