This automations page is moving! We've been working hard at building out our tools documentation at tools.slack.dev — the new home of our Deno Slack SDK and Slack CLI docs! You can start using the new docs today, but we'll keep the content on both sites up to date during the transition.

Create a project

Connector functions are a new addition to Slack automations. We recommend understanding the systems and APIs you're integrating with before setup.

Facts

Create a project

Schema: Connectors.Asana.functions.CreateProject
Service: Asana

Create a new project in Asana.

Input parameters

Required parameters
Determines whether this connector will use the credentials of the user starting the workflow or the credentials configured by an app collaborator. See the Authentication section on this page for details.

Example
{ credential_source: "END_USER" }
The globally unique identifier for the workspace or organization

Example
"0fb0abc-1qwe234-asdf1234-zxcv0987"
The globally unique identifier for the team that this project should be shared with

Example
"0fb0abc-1qwe234-asdf1234-zxcv0987"
Name of the project. This is generally a short sentence fragment that fits on a line in the UI for maximum readability. However, it can be longer.

Example
"Vintage promo event"
Optional parameters
The day on which work for this project begins, or null if the project has no start date. This takes a date with YYYY-MM-DD format. Note: due_on or due_at must be present in the request when setting or unsetting the start_on parameter. Additionally, start_on and due_on cannot be the same date.
The day on which this project is due, in YYYY-MM-DD format
Free-form text associated with this project
An array of Slack user IDs to be added as project followers. In Asana, followers are a subset of members who have opted in to receive 'tasks added' notifications for a project.

Output parameters

Required parameters
Team
Workspace
Project name
Description
Created at
Start on
Due on
Link to project
Collaborator emails

Authentication

A connector's access token property specifies how the connector handles authentication.

End-user authentication

user Workflows that include a connector function relying on end-user authentication can can only be started with a link trigger.

asana_access_token: {
    credential_source: "END_USER"
}

End-user experience: User will be prompted to link their external account via OAuth when they first start the workflow that contains this connector.

Developer experience: Developer does not have to implement authentication in app.

How to use

First, import Connectors from deno-slack-hub into your project's import_map.json file, like this:

{
  "imports": {
    "deno-slack-hub/": "https://deno.land/x/deno_slack_hub@2.2.0/",
    "deno-slack-sdk/": "https://deno.land/x/deno_slack_sdk@2.14.2/",
    "deno-slack-api/": "https://deno.land/x/deno_slack_api@2.8.0/",
  }
}

Next, import Connectors at the top of your workflow's definition file:

// my_workflow_file.ts
import { Connectors } from "deno-slack-hub/mod.ts";

Finally, add the connector as a step in your workflow just like you would a built-in Slack function.

SomeWorkflow.addStep(
  Connectors.Asana.functions.CreateProject, {
    // The globally unique identifier for the workspace or organization
    workspace_gid: "0fb0abc-1qwe234-asdf1234-zxcv0987",

    // The globally unique identifier for the team that this project should be shared with
    team: "0fb0abc-1qwe234-asdf1234-zxcv0987",

    // Name of the project. This is generally a short sentence fragment that fits on a line in the UI for maximum readability. However, it can be longer.
    project_name: "Vintage promo event",

    // (Optional) The day on which work for this project begins, or null if the project has no start date. This takes a date with <code>YYYY-MM-DD</code> format. <em>Note: <code>due_on</code> or <code>due_at</code> must be present in the request when setting or unsetting the <code>start_on</code> parameter. Additionally, <code>start_on</code> and <code>due_on</code> cannot be the same date.</em>
    // start_on: "2023-12-25",

    // (Optional) The day on which this project is due, in <code>YYYY-MM-DD</code> format
    // due_on: "2024-07-04",

    // (Optional) Free-form text associated with this project
    // description: "These are critical tasks for our Vintage Promo Event",

    // (Optional) An array of Slack user IDs to be added as project followers. In Asana, followers are a subset of members who have opted in to receive 'tasks added' notifications for a project.
    // collaborators: ["U123456","U987653"],

    asana_access_token: { credential_source: "END_USER" }
  }
);

🧙🏼 Your admin may need to approve the connector first. If your workspace has been configured to only allow admin-approved apps, the CLI will prompt you to send an admin approval request the first time you try to use a connector that hasn't been approved by an admin yet. While waiting for admin approval, the CLI may report an error like this:

Workflow function... is referring to an unknown step output parameter...

You can safely ignore this error; it will go away as soon as your workspace admin approves your request to use the connector.