Submit Naming Conventions from Prisma for Validation

Use Case Example - Steps to submit naming conventions from Prisma to Claravine's platform for validation

This use case enables you to automatically extract campaign-level naming data from Prisma, submit it to a Claravine dataset for validation, and collect the response to ensure the naming structure adheres to your standards (e.g., channel, region, campaign type formatting).

Claravine API used in this use case:

Workflow Overview

  1. Extract data from Prisma (campaign name, flight dates, agency, placement type, etc.)
  2. Map Prisma fields to Claravine dataset fields
  3. Submit the structured naming data to Claravine via the "Create Transaction" endpoint: POST /v1/datasets/{datasetUuid}/data
  4. Receive response withtransactionUuid
  5. Check for validation success/failure
  6. Trigger downstream actions (e.g., notify user, update a status dashboard, log issues)

Automation Tools That Could be Used

Here are some tool options depending on the environment and existing stack:

ToolRoleNotes
PythonEnd-to-end scriptingUse requests + pandas; great for custom logic, retries, and logging
Google Apps ScriptSchedule + Sheet-based automationIdeal if data is exported to Sheets from Prisma manually or via connector
Workato / Make.com / ZapierLow-code orchestrationUse webhooks or FTP file pulls and integrate with Claravine API
Snowflake + dbt + AirflowEnterprise-level orchestrationPrisma exports to Snowflake → dbt transformation → API call via Airflow task
Postman (monitoring)Manual or scheduled testingGreat for prototyping API call and response validation

Example Python Script

import requests

API_KEY = "your_key"  
API_SECRET = "your_secret"  
DATASET_UUID = "your_dataset_uuid"  
ENDPOINT = f"<https://api.claravine.com/v1/datasets/{DATASET_UUID}/data">

headers = {  
    "X-API-KEY": API_KEY,  
    "X-API-SECRET": API_SECRET,  
    "Content-Type": "application/json"  
}

data = {  
    "transactionName": "Prisma Naming Push",  
    "fields": ["Campaign Name", "Region", "Channel"],  
    "rows": \[  
        ["ACME_Q2_YT_US", "US", "YouTube"],  
        ["ACME_Q2_FB_UK", "UK", "Facebook"]  
    ]  
}

response = requests.post(ENDPOINT, headers=headers, json=data)

if response.status_code == 201:  
    tx_id = response.json().get("transactionUuid")  
    print("Submitted successfully. Transaction ID:", tx_id)  
else:  
    print("Submission failed:", response.status_code, response.text)

You could then poll using the "Get Transaction Data" endpoint:
GET https://api.claravine.com/v1/datasets/{datasetUuid}/transactions/{transactionUuid}/data

…to retrieve validation results.

Claravine Dataset Setup Considerations

Your Claravine template should include:

  • A governance rule that validates naming format using regex or list validation
  • Fields such as Campaign Name, Channel, Region, etc.
  • Optional drill-down fields if additional context like business unit or product type is included

Automation Triggers

  • File drop from Prisma to a monitored FTP → triggers a script
  • Daily schedule to poll Prisma for campaigns created in last 24h
  • Manual button press in a Google Sheet or dashboard for on-demand submission