with Linear (OAuth) and Expensify?
Triggers instantly when an issue's workflow state changes (e.g., Todo to In Progress). Returns issue with previous and current state info. Can filter by specific target state. Uses OAuth authentication. See Linear docs for additional info here
Triggers instantly when any issue is updated in Linear. Provides complete issue details with changes. Supports filtering by team and project. Includes all updates except status changes. Uses OAuth authentication. See Linear docs for additional info here
Triggers instantly when a new comment is added to an issue in Linear. Returns comment details including content, author, issue reference, and timestamps. Supports filtering by team. Uses OAuth authentication. See Linear docs for additional info here
Triggers instantly when a new issue is created in Linear. Provides complete issue details including title, description, team, assignee, state, and timestamps. Supports filtering by team and project. Uses OAuth authentication. See Linear docs for additional info here
Triggers instantly when a project update (status report) is created in Linear. Returns update content, author, project details, and health status. Filters by team and optionally by project. Uses OAuth authentication. See Linear docs for additional info here
Creates a new report with transactions in a user's account. See docs here
Linear (OAuth) API provides access to Linear's issue tracking and project management capabilities, letting you automate tasks, synchronize data across platforms, and enhance your team's productivity. Whether you're reporting bugs, assigning tasks, or tracking progress, the Linear API on Pipedream allows for real-time, event-driven workflows that can increase efficiency and foster collaboration within teams.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
linear: {
type: "app",
app: "linear",
}
},
async run({steps, $}) {
const data = {
"query": `{
user(id: "me") {
id
name
email
displayName
}
}`,
}
return await axios($, {
method: "post",
url: `https://api.linear.app/graphql`,
headers: {
Authorization: `Bearer ${this.linear.$auth.oauth_access_token}`,
"Content-Type": `application/json`,
},
data,
})
},
})
The Expensify API enables the automation of expense reporting and management tasks. By harnessing this API within Pipedream, you can craft workflows that streamline the expense submission process, synchronize financial data across platforms, and trigger actions based on expense report statuses. With Pipedream’s serverless platform, these automations can run in the background, allowing for real-time data processing and interaction between Expensify and a myriad of other apps and services.
import { axios } from "@pipedream/platform"
export default defineComponent({
props: {
expensify: {
type: "app",
app: "expensify",
}
},
async run({ steps, $ }) {
// The Expensify API requires the request data to be sent as
// a URL-encoded form with a key of "requestJobDescription".
// The value of this key must be a JSON string.
// First, define the JSON object as per the Expensify API documentation.
const requestJobDescription = {
type: "get",
credentials: {
partnerUserID: this.expensify.$auth.partnerUserId,
partnerUserSecret: this.expensify.$auth.partnerUserSecret,
},
inputSettings: {
type: "policyList",
}
};
// Use URLSearchParams to create a properly formatted form body.
const formData = new URLSearchParams();
formData.append('requestJobDescription', JSON.stringify(requestJobDescription));
// Make the API call with the correctly formatted data.
return await axios($, {
method: "post",
url: `https://integrations.expensify.com/Integration-Server/ExpensifyIntegrations`,
data: formData,
// It's good practice to explicitly set the Content-Type header
// to match the data format.
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
});
},
})