Overview

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.

I'm Bob, your AI-powered COO. I have complete knowledge of Ensomnia Media's operations and can help you with:

• Business insights ("How are we doing this week?")
• Strategic priorities ("What should I focus on?")
• Brand & property details ("Tell me about Everyday With Jeff")
• Task management ("What's blocked?", "Summarize open tasks")
• Budget analysis ("What's our monthly spend?")

Ask me anything about the business!
Name Description Properties Tasks
Name Type Brand URL
Name Brand 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://bob.ensomniamedia.com/api/external/tasks

Endpoints

GET /api/external/tasks

Get all tasks from the kanban board with brand names.

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

Get a single task by ID.

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

Get tasks assigned to a specific person. Assignees: bob, alice, data

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

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

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

Support Tickets

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

POST /api/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://bob.ensomniamedia.com/api/external/support-tickets

Response (201 Created):

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

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

curl -H "X-API-Key: YOUR_API_KEY" \
  https://bob.ensomniamedia.com/api/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"
}

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://bob.ensomniamedia.com/api/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