Skip to main content
The Embed Portal is your dashboard for managing your Nova integration. URL: https://embed.nova.dweet.com

Environment Switcher

Sandbox and Production are completely separate environments with their own API keys, webhooks, and data.
Toggle between environments using the switcher in the top navigation. Each environment has:
  • Separate API keys
  • Separate webhook configuration
  • Separate usage metrics
  • Isolated tenant data
Sandbox requests are free and not counted toward billing.

API Key Management

Viewing Keys

Navigate to Settings → API Keys to see your keys:
ColumnDescription
NameOptional label for the key
KeyMasked key (sk_live_****7f3a)
CreatedWhen the key was generated
Last UsedMost recent API request

Creating Keys

1

Click 'Create API Key'

Opens the key creation dialog
2

Add a name (optional)

Labels like “Production Server” or “Staging” help identify keys
3

Copy the key immediately

The full key is only shown once. Store it securely.
Never commit API keys to source control. Use environment variables or a secrets manager.

Revoking Keys

To revoke a key:
  1. Click the menu on the key row
  2. Select Revoke
  3. Confirm the action
Revoking a key immediately invalidates it. Any requests using that key will receive 401 Unauthorized.

Webhook Configuration

Setup

Navigate to Settings → Webhooks:
1

Enter endpoint URL

Your HTTPS endpoint that will receive webhook events
2

Save configuration

We’ll validate the URL is reachable
3

Copy signing secret

Use this (whsec_*) to verify webhook signatures

Testing Webhooks

Click Send Test Webhook to:
  • Verify your endpoint is reachable
  • Test your signature verification
  • See the exact payload format

Recent Deliveries

View the last 100 webhook deliveries:
ColumnDescription
Eventscore.completed or score.failed
StatusHTTP status code returned
DurationResponse time
TimestampWhen delivered
Click any row to see:
  • Full request payload
  • Response body (if any)
  • Headers sent

Retry Failed Deliveries

For failed webhooks (non-2xx response):
  1. Click the failed delivery row
  2. Review the error
  3. Click Retry to redeliver

Usage Dashboard

Overview Metrics

The dashboard shows:

Total Requests

API calls in the selected period

Success Rate

Percentage of successful requests

Avg Latency

Average response time

Scores Generated

Completed scoring jobs

Filtering

Filter metrics by:
  • Time range: Last 24h, 7 days, 30 days, custom
  • Endpoint: Filter to specific API endpoints
  • Status: Success vs errors

Charts

Daily request volume over time

Processing & Queue Observability

Monitor real-time processing status, queue depth, and individual job progress.

Queue Status

Navigate to Monitoring → Queue to see:

Queue Depth

Jobs waiting to be processed

Processing

Jobs currently being scored

Throughput

Jobs completed per minute

Avg Wait Time

Time from submission to processing start

Understanding Queue Metrics

┌─────────────────────────────────────────────────────────────────┐
│                    QUEUE STATUS EXAMPLE                          │
├─────────────────────────────────────────────────────────────────┤
│                                                                  │
│  Queue Depth:     127 jobs waiting                               │
│  Processing:      498 / 500 concurrent slots in use              │
│  Throughput:      ~1,000 jobs/min                                │
│  Est. Wait Time:  ~8 seconds for new submissions                 │
│                                                                  │
│  ┌─────────────────────────────────────────────────────────────┐│
│  │ ████████████████████████████░░  Queue (127)                 ││
│  │ ██████████████████████████████  Processing (498/500)        ││
│  └─────────────────────────────────────────────────────────────┘│
│                                                                  │
└─────────────────────────────────────────────────────────────────┘
When queue depth is high, new jobs will wait longer to start processing. At 500 concurrent capacity with 30-second jobs, each 500 queued jobs adds ~30 seconds of wait time.

Per-Run Status

Track individual scoring jobs in Monitoring → Runs:
StatusDescription
queuedWaiting in queue for available processing slot
processingCurrently being scored (~30 seconds)
completedFinished successfully, webhook delivered
failedError occurred, see error details

Run Details

Click any run to see:
  • Timeline: Submission → Queue → Processing → Complete
  • Duration breakdown: Wait time vs processing time
  • Input summary: Job ID, Application ID, criteria count
  • Result: Score and assessment (if completed)
  • Error details: Error code and message (if failed)
  • Webhook delivery: Status and response

Filtering Runs

Filter the runs list by:
FilterOptions
StatusAll, Queued, Processing, Completed, Failed
Time rangeLast hour, 24h, 7 days, custom
TenantFilter by specific tenant
Job IDSearch by job ID
Application IDSearch by application ID
Scoring Job IDSearch by Nova’s sj_* ID

Real-Time View

Toggle Live Updates to see:
  • New jobs appearing as they’re submitted
  • Status changes in real-time
  • Queue depth fluctuations
  • Processing completions
Use the real-time view during batch imports to monitor progress without refreshing the page.

Processing Metrics

View aggregate processing stats:
Jobs completed per minute/hour over time. Shows both submission rate and completion rate.

Alerting

Configure alerts for:
Get notified when queue exceeds a threshold (e.g., 1,000 jobs waiting).
Alert when failure rate exceeds normal baseline (e.g., >5% failures).
Notification when average wait time exceeds threshold.
Alert on repeated webhook delivery failures to your endpoint.
Configure alerts in Settings → Notifications.

API Access to Queue Status

Programmatically check queue status via API:
GET /v1/status/queue
Authorization: Bearer sk_live_xxx
Response:
{
  "queueDepth": 127,
  "processing": 498,
  "concurrencyLimit": 500,
  "throughputPerMinute": 1012,
  "estimatedWaitSeconds": 8
}
Use this to implement client-side pacing or to display status in your own dashboards.

Tenant List

View all tenants (your customers) using Nova:
ColumnDescription
Tenant IDThe X-Tenant-Id value
First SeenFirst API request
Last ActiveMost recent activity
ScoresTotal scoring jobs
Criteria SetsTotal criteria generations

Tenant Details

Click a tenant to see:
  • Usage over time
  • Recent scoring jobs
  • Error rates

Billing

Current Plan

View your plan details:
  • Current usage (applications scored)
  • Billing period
Billing is based on applications scored. All other operations (generating criteria, questions, calibration) are included at no additional cost.

Usage History

See month-by-month usage:
MonthApplications Scored
Jan 20255,234
Dec 20244,891

Invoices

Download PDF invoices for your records.

Team Management

Inviting Team Members

1

Go to Settings → Team

View current team members
2

Click 'Invite Member'

Enter their email address
3

Select role

Admin (full access) or Viewer (read-only)

Roles

RolePermissions
AdminFull access to all settings
ViewerView-only access to dashboard and usage

Support

Getting Help

  • Documentation: You’re here!
  • Email: nova@dweet.com
  • In-Portal Chat: Click the chat icon

Reporting Issues

When reporting issues, include:
  • Request ID (req_*)
  • Timestamp
  • Environment (Sandbox/Production)
  • Steps to reproduce

Security Recommendations

Create different keys for staging, production, and each service that needs access.
Protect your account with two-factor authentication.
Review “Last Used” timestamps to identify stale keys for rotation.
Only give Admin role to team members who need to manage keys and webhooks.