FAQ

Q: Can I create a destination without Kafka connector?

A: Yes. You can use database-only or configurations:

// Database only
"connectorConfig": {
  "mariaDb": {
    "connectorType": "MARIADB",
    "datasourceName": "MY_DATASOURCE",
    "databaseName": "events_db"
  }
}

Q: How do I know which templateId to use?

A: Run get-all-message-templates to see available templates:

./CliTool.sh get-all-message-templates

Template Selection Guide:

  • Journey (ID: 1): Publishing to HCL Journey for customer journey orchestration
  • Interact (ID: 2): Real-time offer delivery to HCL Interact
  • CDP (ID: 3): Customer data platform synchronization
  • Generic (ID: 4): Generic integrations or non-standard formats

Q: Can I use multiple feed mappings in one destination?

A: Yes. The feedAttributeMapping array can contain multiple feed mappings:

"feedAttributeMapping": [
  {
    "feedId": 1,
    "attributes": { ... }
  },
  {
    "feedId": 2,
    "attributes": { ... }
  },
  {
    "feedId": 3,
    "attributes": { ... }
  }
]

This allows one destination to handle events from multiple feeds.

Q: What happens if I specify both Kafka and Database connectors?

A: Events are published to both destinations:

  1. Published to Kafka topic (async, high-throughput)
  2. Persisted to MariaDB database (for audit, compliance)

Both operations occur for every triggered event. This is useful for:

  • Audit logging: Keep database records while streaming to Kafka
  • Multi-channel delivery: Kafka for real-time, database for batch processing
  • Compliance: Maintain immutable audit trail in database

Q: How do I update just the Kafka topic without changing other settings?

A: You must provide the complete destination configuration in update payload. To change only the topic:

  1. Get current configuration:
    ./CliTool.sh get-destination-by-id -id 42 > current.json
  2. Edit current.json - change only the topic field
  3. Update:
    ./CliTool.sh update-destination -id 42 -f current.json
    Note: Future enhancement may support partial updates (PATCH). Current version requires full configuration.

Q: Can I test destination connectivity before creating?

A: Yes, use configuration validation commands:

# Validate Kafka cluster
./CliTool.sh validate-kafka-cluster -cluster "primary-kafka-cluster" -topic "events-topic"

# Validate datasource
./CliTool.sh validate-datasource -datasource "MY_DATASOURCE" -database "my_db"
Note: Check if these validation commands exist in your CLI version.

Q: What's the difference between create-destination and create-custom-destination-template?

A:

create-destination:
  • Uses pre-configured message templates (Journey, Interact, CDP, Generic)
  • Template already exists in Detect
  • Only specify templateId and template-specific messageConfig
create-custom-destination-template:
  • Creates a new custom message template (no destination is persisted)
  • Defines template structure via the 'templateConfig' map and a FreeMarker 'template' body
  • Use when standard templates don't fit your use case; then reference the newly created template's ID in a subsequent 'create-destination' call

Q: How do I list all destinations without pagination?

A: Use a large page size:

# Retrieve up to 1000 destinations in one call
./CliTool.sh get-all-destinations -page 0 -size 1000

Note: For very large numbers, iterate through pages:

# Get all destinations across multiple pages
for page in 0 1 2 3 4; do
  ./CliTool.sh get-all-destinations -page $page -size 100 >> all-destinations.txt
done