API Methods

An introduction to the methods supported in our public API. Enterprise API plans with custom integrations may have access to endpoints that are not defined in our public documentation.
DailyBot's API is versioned, the endpoint paths shown in this reference are omitting the base URL and the version. See the Authentication section to understand more about headers and versioning.

As example, a proper URL to call the API is: https://api.dailybot.com/v1/me/

1. Get contextual info

GET /me/

Returns a JSON object with the organization name and UUID.

Query string params:

  • None

Response example:

  
  {
    "uuid": "b1b292b3-29b2-4235-8103-321ed749db8d",
    "is_active": true,
    "bot_enabled": true,
    "full_name": "John Wick",
    "role": "ADMIN",
    "timezone": "America/Bogota",
    "image": "https://secure.gavatar.com/avatar/ima.png",
    "username": "Wick10",
    "occupation": "Teammate",
    "birth_date": "05-12",
    "chat_platform_data": {
      "user_external_id": "Z32HVBCQ98D"
    },
    "work_start_time": "09:00:00",
    "work_days": [1, 2, 3, 4, 5, 6, 7],
    "timeoff_start": null,
    "timeoff_end": null,
    "organization": {
      "uuid": "4e322341-1262-42fa3-942a-0341d90883f6",
      "name": "Alexa OC"
    },
    "user": "John Wick",
    "organization_uuid": "4e322341-1262-42fa3-942a-0341d90883f6",
    "organization_name": "Alexa OC"
  }
  


2. Listing check-ins

GET /checkins/

Returns a JSON list of objects with all the check-ins that are visible for the user (API key owner).

Query string params:

  • include_summary (optional): [Boolean] It can be true or false. True indicates that you want to retrieve the check-in summary, or else the summary field returns an empty dictionary.
  • date (optional): [Date String] When include_summary is true, then you can optionally specify the date for when you want to calculate the check-in summary. The date string format is YYYY-MM-DD.

Response example:

  
  {
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
      {
        "id": "b1b292b3-29b2-4235-8103-321ed749db8d",
        "name": "Team standups",
        "template": "4e322341-1262-42fa3-942a-0341d90883f6",
        "active": true,
        "is_anonymous": true,
        "send_report_one_by_one": true,
        "use_user_defined_work_days": false,
        "time_for_report": null,
        "start_on": "2022-01-25",
        "privacy": "managers_and_members",
        "allow_edit_permission": "admins_managers_and_team_admins",
        "can_be_edited": false,
        "reporting_metadata": [
          {
            "type": "channel",
            "id": "channel_id",
            "name": "channel_name"
          }
        ],
        "custom_trigger_time": null,
        "reminders_max_count": 0,
        "reminders_frequency_time": 15,
        "reminders_trigger_condition": "smart_frequency",
        "frequency_type": "weekly",
        "frequency": 1,
        "frequency_on_days": [1, 2, 3, 4, 5],
        "end_on": null,
        "is_trigger_based": false,
        "custom_template_intro": "new intro message",
        "custom_template_outro": "new outro message",
        "summary": {
          "completed_percentage": 50,
          "expected_responses": 2,
          "completed_responses": 1,
          "total_blockers": 1,
          "current_user_is_respondent": true,
          "current_user_has_response": true
        }
      }
    ]
  }
  


GET /checkins/{checkin-uuid}/

Returns a JSON list of objects with all the check-ins that are visible for the user (API key owner).

Query string params:

  • include_summary (optional): [Boolean] It can be true or false. True indicates that you want to retrieve the check-in summary, or else the summary field returns an empty dictionary.
  • date (optional): [Date String] When include_summary is true, then you can optionally specify the date for when you want to calculate the check-in summary. The date string format is YYYY-MM-DD.

Response example:

  
  {
    "id": "b1b292b3-29b2-4235-8103-321ed749db8d",
    "name": "Team standups",
    "template": "4e322341-1262-42fa3-942a-0341d90883f6",
    "active": true,
    "is_anonymous": true,
    "send_report_one_by_one": true,
    "use_user_defined_work_days": false,
    "time_for_report": null,
    "start_on": "2022-01-25",
    "privacy": "managers_and_members",
    "allow_edit_permission": "admins_managers_and_team_admins",
    "can_be_edited": false,
    "reporting_metadata": [
      {
        "type": "channel",
        "id": "channel_id",
        "name": "channel_name"
      }
    ],
    "custom_trigger_time": null,
    "reminders_max_count": 0,
    "reminders_frequency_time": 15,
    "reminders_trigger_condition": "smart_frequency",
    "frequency_type": "weekly",
    "frequency": 1,
    "frequency_on_days": [1, 2, 3, 4, 5],
    "end_on": null,
    "is_trigger_based": false,
    "custom_template_intro": "new intro message",
    "custom_template_outro": "new outro message",
    "summary": {
      "completed_percentage": 50,
      "expected_responses": 2,
      "completed_responses": 1,
      "total_blockers": 1,
      "current_user_is_respondent": true,
      "current_user_has_response": true
    }
  }
  


3. Listing check-in responses

GET /checkins/{checkin-uuid}/responses/

Returns a JSON object with all the responses for a given check-in’s UUID.

Query string params:

  1. date_start (optional): YYYY-MM-DD format to set a start date of the query, current date is the default value of this parameter
  2. date_end (optional): YYYY-MM-DD format to set an end date of the query, current date is the default value of this parameter
  3. limit (optional): sets max limit of responses per page
  4. offset (optional): sets the cursor position for the beginning of results

Response example:

  
  {
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
      {
        "uuid": "4e322341-1262-42fa3-942a-0341d90883f6",
        "user": {
          "uuid": "b1b292b3-29b2-4235-8103-321ed749db8d",
          "full_name": "Team standups",
          "image": "https://avatars.slack-edge.com/5_192.jpg",
          "occupation": "Teammate"
        },
        "is_anonymous": false,
        "responses": [
          {
            "question": "Your previous day plan ({previous_response_date}):\n{previous_response_#2}\n\nWhat did you complete in your previous workday?",
            "question_short": "Previous work day progress",
            "question_type": "text",
            "response": "Example response 1.",
            "is_blocker": false
          },
          {
            "question": "What are you planning to work on today?",
            "question_short": "Plans for today",
            "question_type": "text",
            "response": "Example response 2.",
            "is_blocker": false
          },
          {
            "question": "Great. Do you have any blockers? If so, just tell me. Otherwise please say: no.",
            "question_short": "Any blockers?",
            "question_type": "text",
            "response": "Example response 3.",
            "is_blocker": true
          }
        ],
        "response_completed": true,
        "has_issue": true,
        "created_at": "2022-01-25T21:44:07.337796Z",
        "updated_at": "2022-01-25T21:44:07.669107Z"
      }
    ]
  }
  


4. Creating check-ins

POST /checkins/

Creates a check-in based on a template.

Body params:

  • name (required): [String] Check-in name.
  • template (required): [String] It contains the UUID template which the check-in will be created with.
  • active: [Boolean] Indicates if the check-in is active.
  • is_anonymous: [Boolean] Indicates if the check-in is anonymous.
  • send_reports_one_by_one: [Boolean] Indicates if the check-in will be sent one by one as they get completed.
  • use_user_defined_work_days: [Boolean] Indicate if the check-in uses the user workdays.
  • start_on: [String] Date (formatted YYYY-MM-dd) that indicates when the check-in will start running.
  • allow_edit_permissions: [String] Indicates who can edit the check-in settings.
  • can_be_edited: [Boolean] Indicates if the check-in could be edited.
  • reporting_metadata: [Array] List of channels where the check-in will be sent.
  • custom_trigger_time: [String] Indicates a custom trigger time for the check-in overriding the users work start time. Example value: 08:00:00
  • reminders_max_count: [Integer] Define the total of additional reminders to send for the check-in, it’s deactivated if the value is 0. A maximum of 3 reminders are supported.
  • reminders_trigger_condition: [String] Defines the mode to send additional reminders.
  • Possible values:
  • smart_frequency: Allows DailyBot to choose the time to send new reminders.
  • fixed_frequency: Allow the user to define the frequency to send new reminders.
  • reminders_frequency_time: [Integer] A value to define the intervals of time in minutes to send additional reminders if the trigger condition is “fixed_frequency”.
  • frequency: [Integer] Define the weekly frequency to trigger automatic reminders for the check-in.
  • frequency_on_days: [Array] Define the days of the week to send automatic reminders.
  • end_on: [String] Date format that indicates when the check-in will be finished and DailyBot don’t trigger automatic questions anymore.
  • is_trigger_based: [Boolean] If it’s active, then the check-in will not receive future automatic reminders. Only manual reminders triggered by users from the web app or our public API using check-ins reminders method: POST /checkins/{id}/send-reminders/.
  • custom_template_intro: [String] Allows the user to customize the intro message for a check-in taking higher priority than the template intro message (doesn't change the intro for the template, only for check-in)
  • custom_template_outro: [String] Allows the user to customize the outro message for a check-in taking higher priority than the template intro message (doesn't change the outro for the template, only for check-in)

Response example:

  
    {
      "id": "91b292b3-29b2-4235-8103-321ed749db8d",
      "name": "Checkin created by API",
      "template": "bf322341-1262-42fa3-942a-0341d90883f6",
      "active": true,
      "is_anonymous": false,
      "send_reports_one_by_one": true,
      "use_user_defined_work_days": false,
      "time_for_report": null,
      "start_on": "2022-01-25",
      "privacy": "managers_and_members",
      "allow_edit_permission": "admins_managers_and_team_admins",
      "can_be_edited": true,
      "reporting_metadata": [
        {
          "type": "channel",
          "id": "channel_id",
          "name": "channel_name"
        }
      ],
      "custom_trigger_time": null,
      "reminders_max_count": 0,
      "reminders_frequency_time": 15,
      "reminders_trigger_condition": "smart_frequency",
      "frequency_type": "weekly",
      "frequency": 1,
      "frequency_on_days": [1, 2, 3, 4, 5],
      "end_on": null,
      "is_trigger_based": false,
      "custom_template_intro": "new intro message",
      "custom_template_outro": "new outro message"
    }
  

5. Updating check-ins

PATCH /checkins/{checkin-uuid}/

Updates the fields of a check-in based on its ID (UUID).

Body params:

  • name: [String] Check-in name.
  • template: [String] It contains the UUID template which the check-in will be created with.
  • active: [Boolean] Indicates if the check-in is active.
  • is_anonymous: [Boolean] Indicates if the check-in is anonymous.
  • send_reports_one_by_one: [Boolean] Indicates if the check-in will be sent one by one as they get completed.
  • use_user_defined_work_days: [Boolean] Indicate if the check-in uses the user workdays.
  • start_on: [String] Date (formatted YYYY-MM-dd) that indicates when the check-in will start running.
  • allow_edit_permissions: [String] Indicates who can edit the check-in settings.
  • can_be_edited: [Boolean] Indicates if the check-in could be edited.
  • reporting_metadata: [Array] List of channels where the check-in will be sent.
  • custom_trigger_time: [String] Indicates a custom trigger time for the check-in overriding the users work start time. Example value: 08:00:00
  • reminders_max_count: [Integer] Define the total of additional reminders to send for the check-in, it’s deactivated if the value is 0. A maximum of 3 reminders are supported.
  • reminders_trigger_condition: [String] Defines the mode to send additional reminders.
  • Possible values:
  • smart_frequency: Allows DailyBot to choose the time to send new reminders.
  • fixed_frequency: Allow the user to define the frequency to send new reminders.
  • reminders_frequency_time: [Integer] A value to define the intervals of time in minutes to send additional reminders if the trigger condition is “fixed_frequency”.
  • frequency: [Integer] Define the weekly frequency to trigger automatic reminders for the check-in.
  • frequency_on_days: [Array] Define the days of the week to send automatic reminders.
  • end_on: [String] Date format that indicates when the check-in will be finished and DailyBot don’t trigger automatic questions anymore.
  • is_trigger_based: [Boolean] If it’s active, then the check-in will not receive future automatic reminders. Only manual reminders triggered by users from the web app or our public API using check-ins reminders method: POST /checkins/{id}/send-reminders/.
  • custom_template_intro: [String] Allows the user to customize the intro message for a check-in taking higher priority than the template intro message (doesn't change the intro for the template, only for check-in)
  • custom_template_outro: [String] Allows the user to customize the outro message for a check-in taking higher priority than the template intro message (doesn't change the outro for the template, only for check-in)

Response example:

  
  {
    "id": "91b292b3-29b2-4235-8103-321ed749db8d",
    "name": "Checkin created by API",
    "template": "bf322341-1262-42fa3-942a-0341d90883f6",
    "active": true,
    "is_anonymous": false,
    "send_reports_one_by_one": true,
    "use_user_defined_work_days": false,
    "time_for_report": null,
    "start_on": "2022-01-25",
    "privacy": "managers_and_members",
    "allow_edit_permission": "admins_managers_and_team_admins",
    "can_be_edited": true,
    "reporting_metadata": [
      {
        "type": "channel",
        "id": "channel_id",
        "name": "channel_name"
      }
    ],
    "custom_trigger_time": null,
    "reminders_max_count": 0,
    "reminders_frequency_time": 15,
    "reminders_trigger_condition": "smart_frequency",
    "frequency_type": "weekly",
    "frequency": 1,
    "frequency_on_days": [1, 2, 3, 4, 5],
    "end_on": null,
    "is_trigger_based": false,
    "custom_template_intro": "new intro message",
    "custom_template_outro": "new outro message"
  }
  

6. Removing check-ins

DELETE /checkins/{checkin-uuid}/

Deletes any check-in based on its ID (UUID).

Query string params:

  • None

Response example:

  • None

7. Sending check-ins reminders

POST /checkins/{checkin-uuid}/send-reminders/

Sends a reminder to fill out a check-in with a given ID (UUID). All the participants that have not filled out the check-in for the given date will receive the reminder.

Body params:

  • users_uuids (optional): [List of strings] It contains all the user UUIDs that will receive the reminder to fill out the check-in. If no users_uuids or users_emails are specified, all the users that are pending to provide a response will receive the reminder.
  • users_emails (optional): [List of strings] It contains all the user emails that will receive the reminder to fill out the check-in. If no users_uuids or users_emails are specified, all the users that are pending to provide a response will receive the reminder.
  • reminder_triggered_by_user: [String] It contains the UUID from the user that is sending the reminder.
  • is_reminder_triggered_by_me: [Boolean] If true, it indicates that the reminder is sent on behalf of the API key owner making this request. Must be false when you specify the "reminder_triggered_by_user" parameter.
  • date: [String] This field contains the date (in the format YYYY-MM-DD) that this reminder will use to request the check-in update.

Response example:

  
  {
    "detail":"Users notified successfully."
  }
  

8. Listing forms

GET /forms/

Returns a JSON list of objects with all the forms currently visible for the user (API key owner).

Query string params:

  • None

Response example:

  
  [
    {
      "id": "b1b292b3-29b2-4235-8103-321ed749db8d",
      "name": "Vacation request",
      "is_active": true,
      "collect_responses_anonymously": true,
      "privacy": "everyone",
      "shortcut": "vacation",
      "start_on": "2021-01-27",
      "end_on": "2021-02-28",
      "is_archive": false
    },
    ...
  ]
  

9. Listing templates

GET /templates/

Returns a JSON list of objects with all the forms currently visible for the user (API key owner).

Query string params:

  • type (required): [String] It contains check-ins or forms, depending on the type of templates you want to retrieve.
  • system_default (optional): [Boolean] It can be true or false. True indicates that you want to retrieve the templates marked as default on the system.

Response example:

  
  {
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
      {
        "name": "Daily Check-in",
        "questions": {
          "logic": [
            {
              "next_key": 1,
              "prev_key": false,
              "question_key": 0
            },
            {
              "next_key": false,
              "prev_key": 0,
              "question_key": 1
            }
          ],
          "fields": [
            {
              "uuid": "7bc84a34-29a3-488b-a89f-5205bcaa4b0a",
              "question": "What did you complete in your previous workday?",
              "is_blocker": false,
              "is_optional": false,
              "extra_params": {
                "special_vars": []
              },
              "question_type": "text",
              "question_short": "Previous work day progress"
            },
            {
              "uuid": "a928c8ee-86a2-4dcb-b6d8-e94a45a18511",
              "question": "What are you planning to work on today?",
              "is_blocker": false,
              "is_optional": false,
              "extra_params": {
                "special_vars": []
              },
              "question_type": "text",
              "question_short": "Plans for today"
            }
          ],
          "version": 1
        },
        "intro": "",
        "outro": ""
      }
    ]
  }
  

GET /templates/{template-uuid}/

Returns a JSON object with all template information by ID (UUID).

Query string params:

  • None

Response example:

  
  {
    "name": "Daily Check-in",
    "questions": {
      "logic": [
        {
          "next_key": 1,
          "prev_key": false,
          "question_key": 0
        },
        {
          "next_key": false,
          "prev_key": 0,
          "question_key": 1
        }
      ],
      "fields": [
        {
          "uuid": "7bc84a34-29a3-488b-a89f-5205bcaa4b0a",
          "question": "What did you complete in your previous workday?",
          "is_blocker": false,
          "is_optional": false,
          "extra_params": {
            "special_vars": []
          },
          "question_type": "text",
          "question_short": "Previous work day progress"
        },
        {
          "uuid": "a928c8ee-86a2-4dcb-b6d8-e94a45a18511",
          "question": "What are you planning to work on today?",
          "is_blocker": false,
          "is_optional": false,
          "extra_params": {
            "special_vars": []
          },
          "question_type": "text",
          "question_short": "Plans for today"
        }
      ],
      "version": 1
    },
    "intro": "",
    "outro": ""
  }
  

10. Managing Webhooks

POST /webhook-subscription/

Creates a web hook subscription.

Query string params:

  • hook_url (required): The endpoint that will be receiving events.
  • name: String- Contains the webhook name.
  • subscriptions: String list - These will be the type of events you are interested in receiving.
  • subscribed_objects: String list - These will be the uuid of the check-ins or forms that you want to receive events from

Request example:

  
  {
    "hook_url": string(URL),
    "subscribed_objects": [string(CheckinUUID)],
    "subscriptions": [string(EventSubscribed)],
    "bearer": string(optional),
    "immediate_sample_event": boolean
  }
  

The "EventSubscribed" is a string defining a type of event, see the type of events. The Bearer is optional, if specified the webhook will always include that value in the "X-BEARER" HTTP header.

If immediate_sample_event is set as true, DailyBot will send a sample payload to that URL immediately upon the creation of this outgoing webhook.

Response example:

  
  {
    "id":"c0das158-5ba6-44bb-b9f7-34b9f5sad98f",
    "url":"https://webhook.site/b28ebfd5-1de0-47d6-97f9-e28e02e2d779"
  }
  

Payload params:

  • id: [String] - It contains the current webhook ID created.
  • url: [String] - It contains the endpoint that will be receiving events.

DELETE /webhook-subscription/

Query string params:

  • hook_id (required): [String] It contains the webhook ID that will be deleted.
  • hook_url (required): [String] It contains the endpoint that will be receiving events.

11. Get organization info

GET /organization​/

Returns a JSON object with the organization info.

Query string params:

  • None

Response example:

  
  {
    "uuid": "4e322341-1262-42fa3-942a-0341d90883f6",
    "name": "Alexa OC",
    "image": "https://a.slack-edge.com/80588/img/avatars-teams/image.png",
    "platform": "slack",
    "chat_platform_data": {
      "is_active": true,
      "organization_external_id": "T11CFP91J1G"
    },
    "supported_domains": ["domain.co"],
    "has_email_password_enabled": false
  }
  

GET /users/{user-uuid}/

Returns a JSON object with the user info.

Query string params:

  • user-uuid: User’s id.

Request example:

  
  {
    "uuid":"5945bf0g2-66f5-4b29-bbd6-07421dfga87"
  }
  

Response example:

  
  {
    "uuid": "5945bf0g2-66f5-4b29-bbd6-07421dfga87",
    "full_name": "John Wick",
    "image": "https://secure.gravatar.com/avatar/image.png",
    "username": "Wick10",
    "occupation": "Teammate",
    "birth_date": "05-12",
    "chat_platform_data": {
      "user_external_id": "Z32HVBCQ98D"
    },
    "organization": {
      "uuid": "4e322341-1262-42fa3-942a-0341d90883f6",
      "name": "Alexa OC"
    }
  }
  

GET /users/

Returns a JSON object with info of every user in your org.

Query string params:

  • None

Response example:

  
  {
    "count": 4,
    "next": null,
    "previous": null,
    "results": [
      {
        "uuid": "5945bf0g2-66f5-4b29-bbd6-07421dfga87",
        "is_active": true,
        "bot_enabled": true,
        "full_name": "John Wick",
        "role": "ADMIN",
        "timezone": "America/Bogota",
        "image": "https://secure.gavatar.com/avatar/ima.png",
        "username": "Wick10",
        "occupation": "Teammate",
        "birth_date": "05-12",
        "chat_platform_data": {
          "user_external_id": "Z32HVBCQ98D"
        },
        "work_start_time": "09:00:00",
        "work_days": [1, 2, 3, 4, 5],
        "timeoff_start": "06/01/2022",
        "timeoff_end": "16/01/2022",
        "organization": {
          "uuid": "4e322341-1262-42fa3-942a-0341d90883f6",
          "name": "Alexa OC"
        }
      }
    ]
  }
  

Payload params:

  • uuid: [String] Current user UUID.
  • is_active: [Boolean] It determines whether the user is active in the organization.
  • bot_enabled: [Boolean] It determines whether the user has enabled the bot on the chat.
  • full_name: [String] User's full name.
  • role: [String] User’s role description.
  • Timezone: [String] User’s time zone.
  • image (optional): [String] User’s avatar image URL.
  • username: [String] Username.
  • occupation: [String] User’s job title on the organization.
  • birth_date: [String] User’s birth date (formatted as MM-DD).
  • chat_platform_data: [String]  Includes the user external ID that identifies the user on each platform.
  • work_start_time: [String] Start time of shift.
  • work_days: [Numeric list] Work days in the organization.
  • timeoff_start: [String] Start date of time off.
  • timeoff_end: [String] End date of time off.
  • organizacion:
  • uuid: [String] Current organization UUID
  • name: [String] Organization name

PATCH /users/{user-uuid}/

Update the info of a specific user.

Payload params:

  • full_name: User's full name.
  • occupation: Job title for this user the organization.
  • birth_date: Birth date of the user with MM-DD format.
  • is_active: [Boolean] It determines whether the user is active in the organization.
  • bot_enabled: [Boolean] It determines whether the user has enabled the bot on the chat.
  • timezone: [String] User’s time zone.
  • work_days: [Numeric list] Work days in the organization. Only available if the organization allows members to set their work days
  • timeoff_start: [String] Start date of time off.
  • timeoff_end: [String] End date of time off.
  • hour_init_work: [String] Work start time in HH:MM:SS format

Request example:

  
  {
    "full_name": "John Wick",
    "occupation": "Teammate",
    "birth_date": "10-26",
    "is_active": true,
    "bot_enabled": true,
    "timezone": "America/New_York",
    "work_days": [1, 2, 3, 4, 5],
    "timeoff_start": "2023-03-12",
    "timeoff_end": "2023-03-18",
    "hour_init_work": "09:00:00"
  }
  

Response example:

  • None

GET /teams/

Returns a JSON list of objects with information of every team in your organization.

Query string params:

  • None

Response example:

  
  {
    "count": 3,
    "next": null,
    "previous": null,
    "results": [
      {
        "uuid": "13883b5b-7066-47aa-ad0c-63bbc89eb986",
        "name": "General",
        "active": true,
        "is_default": true
      },
      ...
    ]
  }
  


GET /teams/{team-uuid}/

Returns a JSON object with all fields that are visible to the user.

Query string params:

  • None

Response example:

  
  {
    "uuid": "13883b5b-7066-47aa-ad0c-63bbc89eb986",
    "name": "General",
    "active": true,
    "is_default": true
  }
  

Payload params:

  • uuid: [String] It contains the current team UUID.
  • name: [String] It contains the team’s name.
  • active: [Boolean] This determines whether the team is active in the organization.
  • is_default: [Boolean] This determines whether the team is marked as default across the organization.

GET /teams/{team-uuid}/members/

Returns the list of members of a Team.

Query string params:

  • None

Response example:

  
  {
    "count": 1,
    "next": null,
    "previous": null,
    "results": [
      {"UserObject1"},
      {"UserObject2"}
    ]
  }
  

Payload params:

The UserObject has the same structured described in the endpoint /users/ (see above).

POST /teams/{team-uuid}/member/

Adds an existing DailyBot user to an existing team.

Payload params:

  • members: Required. List of members to add to this team. Each member will include the "uuid" and "platform" must be set as "dailybot". See request example below.

Request example:

  
  {
    "members": [
      {
        "uuid": "user_uuid1",
        "platform": "dailybot"
      }
      ...
    ]
  }
  

Response example:

  • No body
  • HTTP 200 for successful operation

DELETE /teams/{team-uuid}/member/{user-uuid}/

Removes a user from a team.

Query string params:

  • uuid: it refers to the Team UUID
  • user-uuid: it refers to the User UUID that is being deleted from the team

POST /send-message/

Send a message to a specific user or channel.

Payload params:

  • exchange_token: Optional, reserved for public commands that need to interact on behalf of other users. Contact DailyBot support if you want to learn more.
  • message: Message to send.
  • target_users: List of user UUIDs that will receive the message.
  • target_teams: List of team UUIDs that will receive the message. All members involved in those teams will receive the message.
  • target_channels: List of JSON object that include the following params:
  • --> id: Id of channel where the message will be sent.
  • --> is_channel_message: boolean, if the channel ID belongs to a user (it is a DM to a user) then this parameter must be set as "false", otherwise set it as "true" to send the message to a regular channel
  • image_url (optional): URL of an image to post
  • buttons (optional): JSON object that includes the next params:
  • --> label: Text for the button.
  • --> label_after_click: Message to be shown when the user clicks the button.
  • --> value: Next instruction to be executed by the bot if the type is "Command".
  • --> button_type: Type of the button (it should be "Command").

Request example:

  
  {
    "exchange_token": "5945bf0g2-66f5-4b29-bbd6-07421dfga87",
    "message": "John Wick",
    "target_users": ["user_uuid1", "user_uuid2"],
    "target_teams": ["team_uuid1", "team_uuid2"],
    "target_channels": [
      {
        "id": "id_channel",
        "is_channel_message": true
      },
      ...
    ],
    "image_url": "https://secure.gravatar.com/avatar/image.png",
    "buttons": [
      {
        "label": "Text button",
        "label_after_click": "Text after click",
        "value": "next command",
        "button_type": "Command"
      },
      ...
    ]
  }
  


If you use the target users or target_teams field, then the target_channels field is not necessary, and vice versa. The message field, image_url and buttons are optional.

Request example #2:

  
  {
    "message": "Welcome",
    "target_channels": [
      {
        "id": "IDLKSAN",
        "is_channel_message": false
      }
    ],
    "exchange_token": "108af73c0c11780c787745004189a8376f75bd6cad19b9c149e1d75428010e43"
  }
  

Response example:

  • None

POST ​/send-email​/

Send an email to a list of users. It is similar to /send-message/ but in this case it will always use email as the contact method, instead of chatbot messaging.

Payload params:

  • exchange_token: Optional, reserved for public commands that need to interact on behalf of other users. Contact DailyBot support if you want to learn more.
  • users_uuids: List of users that will receive the message.
  • email_subject: Subject message.
  • email_content: Message body content.

Request example:

  
  {
    "exchange_token": "108af73c0c11780c787745004189a8376f75bd6cad19b9c149e1d75428010e43",
    "users_uuids": ["5945bf0g2-66f5-4b29-bbd6-07421dfga87"],
    "email_subject": "Email subject",
    "email_content": "Email content"
  }
  

Response example:

  • None

POST ​/open-conversation/​

Creates a group conversation in Slack between users (not supported in other chat platforms yet).

Payload params:

  • users_uuids: List of users that will get involved in the private group.
  • exchange_token: Optional: if you are building public commands/add-ons, contact our support team if you need this type of feature.

Request example:

  
  {
    "users_uuids": ["5945bf0g2-66f5-4b29-bbd6-07421dfga87"],
    "exchange_token": "optional(token)"
  }
  

Response example:

JSON object, it contains the ID for the created channel.

  
  {
  	...,
    "body": {
      "channel": "Channel ID"
    }
  }
  


POST ​/kudos/​

Gives kudos to a given user. Those kudos are given on behalf of the API key owner.

Important: you can give Kudos on behalf of DailyBot as well. If you want to give Kudos on behalf of any other user, you will need to have a valid exchange_token, to use exchange_token you should contact our support team.

Payload params:

  • receivers: List of user UUIDs that will receive the kudos.
  • company_value: optional, company value that you want to relate the kudos to.
  • content: Text content with the kudos message that will be posted.
  • is_anonymous: boolean, make it true to give those kudos anonymously.
  • by_dailybot: boolean, set as true if you want to give the kudos on behalf of DailyBot.

Request example:

  
  {
    "receivers": ["5945bf0g2-66f5-4b29-bbd6-07421dfga87"],
    "content": "Great work!",
    "is_anonymous": false
  }
  

Response example:

JSON object with the kudos object meta information.

  
  {
    "id": "uuid",
    "parent": "uuid",
    "user": "object(user)",
    "receivers": ["object(user)"],
    "company_value": "object",
    "content": "text",
    "is_anonymous": "boolean",
    "metadata": "object",
    "created_at": "datetime"
  }
  

GET /important-date/?uuid={user-uuid}

Get time off information from an org's member.

POST /important-date/

Get information about your org's members time offs.

Payload params:

  • important_date_type (required): [String] It should contain the “time_off” word
  • scope_user: [Boolean] Confirm to set the time off to a user
  • name: [String] Set the name of the time off, e.g “travel day”
  • user_uuid: [String] Contains the uuid of the user to set the time off
  • start_date: [String] Date (formatted YYYY-MM-dd) it indicates when time off starts
  • end_date: [String] Date (formatted YYYY-MM-dd) it indicates when time off ends


Need support?
Contact Us