Dashboard

Profit & Loss

Monthly Revenue
$0.00
$0.00/year
Monthly Expenses
$0.00
$0.00/year
Net Profit/Loss
$0.00
$0.00/year

Blocked Tasks

Active Work

Select a property and board to view retro items, or create a new board.

Select a date to view the standup. Standups are generated automatically at 8 AM CST daily.

I'm ALICE, your unified AI intelligence. I have complete awareness across all of Ensomnia Media — operations, content, products, trading, legal, and personal. Ask me anything and I'll draw from every domain to give you the full picture.
Name Description Properties Tasks
Name Type Brand Brain URL
Name Brand Language URL
Title Belongs To Updated
Name Type Login Password Linked To
Active Monthly
$0.00
Active Annual
$0.00
Total (incl. Inactive)
$0.00
App Name Monthly Cost Annual Cost Status
Estimated Monthly
$0.00
Estimated Annual
$0.00
Source Description Est. Monthly Est. Annual

API Key

Use this key to authenticate external API requests.

••••••••••••••••

Authentication

Include your API key in the X-API-Key header with every request.

curl -H "X-API-Key: YOUR_API_KEY" https://alice.ensomniamedia.com/api/core/external/tasks

Endpoints

GET /api/core/external/tasks

Get all tasks from the kanban board with brand names.

curl -H "X-API-Key: YOUR_API_KEY" \
  https://alice.ensomniamedia.com/api/core/external/tasks
GET /api/core/external/tasks/:id

Get a single task by ID.

curl -H "X-API-Key: YOUR_API_KEY" \
  https://alice.ensomniamedia.com/api/core/external/tasks/TASK_ID
GET /api/core/external/tasks/assignee/:assignee

Get tasks assigned to a specific person.

curl -H "X-API-Key: YOUR_API_KEY" \
  https://alice.ensomniamedia.com/api/core/external/tasks/assignee/ASSIGNEE
PATCH /api/core/external/tasks/:id/status

Update task status. Valid statuses: backlog, todo, doing, blocked, done, wontdo

curl -X PATCH \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "done"}' \
  https://alice.ensomniamedia.com/api/core/external/tasks/TASK_ID/status

Support Tickets

Allow users to submit support tickets from your websites. Tickets appear in the Support section, and submitters receive email notifications on updates.

POST /api/core/external/support-tickets

Create a new support ticket. The submitter will receive a confirmation email.

Required Fields email, name, propertyId, issue
Returns { id, message }
curl -X POST \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com",
    "name": "John Doe",
    "propertyId": "PROPERTY_ID",
    "issue": "I need help with..."
  }' \
  https://alice.ensomniamedia.com/api/core/external/support-tickets

Response (201 Created):

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "message": "Support ticket created successfully"
}
GET /api/core/external/support-tickets/:id

Check ticket status. Use this to let submitters track their ticket.

curl -H "X-API-Key: YOUR_API_KEY" \
  https://alice.ensomniamedia.com/api/core/external/support-tickets/TICKET_ID

Response:

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "in_progress",
  "createdAt": "2025-01-04T12:00:00.000Z",
  "updatedAt": "2025-01-04T14:30:00.000Z"
}

Standup Summaries

POST /api/core/external/standup-summaries

Submit a daily standup summary from an external property. Multiple submissions per day are allowed.

curl -X POST \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "propertyId": "your-property-id",
    "date": "2026-01-08",
    "summary": "Completed feature X, working on Y, blocked by Z"
  }' \
  https://alice.ensomniamedia.com/api/core/external/standup-summaries

Response (201 Created):

{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "message": "Standup summary logged successfully"
}

Website Integration Example

Add a support form to your website with this JavaScript example:

// Support form submission handler
async function submitSupportTicket(event) {
  event.preventDefault();

  const response = await fetch(
    'https://alice.ensomniamedia.com/api/core/external/support-tickets',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'X-API-Key': 'YOUR_API_KEY'
      },
      body: JSON.stringify({
        email: document.getElementById('email').value,
        name: document.getElementById('name').value,
        propertyId: 'YOUR_PROPERTY_ID', // Get from Properties page
        issue: document.getElementById('issue').value
      })
    }
  );

  const result = await response.json();
  if (response.ok) {
    alert('Ticket submitted! ID: ' + result.id);
  } else {
    alert('Error: ' + result.error);
  }
}

Email Notifications

Submitters automatically receive emails when:

  • Ticket Created - Confirmation with ticket ID
  • Status Updated - When status changes to in_progress
  • Ticket Closed - Resolution notification with any notes

Emails are sent from support@ensomniamedia.com

Ticket Statuses

open New ticket, awaiting review
in_progress Being worked on
closed Resolved and closed

Response Formats

All responses are JSON. Example task object:

{
  "id": "abc123",
  "title": "Build landing page",
  "description": "Create initial landing page",
  "status": "doing",
  "assignee": "data",
  "brandId": "xyz789",
  "brandName": "TestJeff",
  "createdAt": "2025-01-01T00:00:00.000Z",
  "updatedAt": "2025-01-02T00:00:00.000Z"
}
Ticket Property From Issue Status Created Actions
Name Type Description Admin Portal Account Status Actions

Cross-Brain Status

Loading jobs...

Loading content sites...

Loading content analytics...

Loading products...

Loading product metrics...

Loading incidents...

Loading roadmap...

Loading portfolio...

Loading risk data...

Loading strategies...

Loading schedule...

Loading devices...

Loading routines...