-
Notifications
You must be signed in to change notification settings - Fork 5.5k
new ticketsauce actions and source #18787
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
sergio-eliot-rodriguez
wants to merge
29
commits into
PipedreamHQ:master
Choose a base branch
from
sergio-eliot-rodriguez:ticketsauce-components
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 28 commits
Commits
Show all changes
29 commits
Select commit
Hold shift + click to select a range
04e8c2a
new ticketsauce actions and source
sergio-eliot-rodriguez 94760df
new ticket components: catches by coderabit
sergio-eliot-rodriguez 46e2542
new ticket components: lint fixes
sergio-eliot-rodriguez 3418247
Update components/ticketsauce/actions/get-orders/get-orders.mjs
GTFalcao 6039bcd
Merge remote-tracking branch 'upstream/master' into ticketsauce-compo…
sergio-eliot-rodriguez f12bbae
Update components/ticketsauce/actions/get-orders/get-orders.mjs
GTFalcao 74418a1
Merge remote-tracking branch 'upstream/master' into ticketsauce-compo…
sergio-eliot-rodriguez 3e107bc
Merge branch 'ticketsauce-components' of https://github.com/sergio-el…
sergio-eliot-rodriguez cf31f14
Update components/ticketsauce/actions/get-events/get-events.mjs
sergio-eliot-rodriguez 73f21d3
Update components/ticketsauce/actions/get-events/get-events.mjs
sergio-eliot-rodriguez 1d1cee5
Update components/ticketsauce/actions/get-event-details/get-event-det…
sergio-eliot-rodriguez 7fbf1d0
new ticketsauce actions and source
sergio-eliot-rodriguez 4053425
new ticket components: catches by coderabit
sergio-eliot-rodriguez 38b7217
new ticket components: lint fixes
sergio-eliot-rodriguez 442c587
Update components/ticketsauce/actions/get-orders/get-orders.mjs
GTFalcao deb15cf
Update components/ticketsauce/actions/get-events/get-events.mjs
sergio-eliot-rodriguez 4d59e81
Update components/ticketsauce/actions/get-events/get-events.mjs
sergio-eliot-rodriguez 59b8e40
Update components/ticketsauce/actions/get-event-details/get-event-det…
sergio-eliot-rodriguez bd77627
new ticketsauce components: addressing reivew comments by Guilherm
sergio-eliot-rodriguez 92856bc
new ticketsauce components: addressing review comments by Guilherme
sergio-eliot-rodriguez 109323f
Adding app scaffolding for topdesk
danhsiung fd6b048
Adding app scaffolding for copicake
danhsiung ffab7aa
Adding app scaffolding for cronly
danhsiung 54291be
Merging pull request #18785
michelle0927 27daacf
Add Airweave app (#18779)
EwanTauran a9fffb6
Adding app scaffolding for coinapi
danhsiung ae337a2
Merge branch 'ticketsauce-components' of https://github.com/sergio-el…
sergio-eliot-rodriguez 37abd15
added summaries to getOrderDetails getEventDetails and getTicketCheck…
sergio-eliot-rodriguez 4304a3c
fixed eslint errors
sergio-eliot-rodriguez File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
# Airweave Integration for Pipedream | ||
|
||
Airweave is an open-source platform that makes **any app searchable for your agent** by syncing data from various sources with minimal configuration for agentic search. | ||
|
||
## What is Airweave? | ||
|
||
Airweave serves as a bridge between your data sources and agents, transforming raw data into queryable knowledge. It can extract and process data from: | ||
|
||
- API endpoints (REST) | ||
- Productivity and collaboration tools | ||
- Relational databases | ||
- Document stores | ||
- File systems and storage services | ||
|
||
## Available Actions | ||
|
||
### Collections | ||
- **Search Collection** - Search across all data sources within a collection (semantic + keyword search) | ||
- **List Collections** - Get all collections in your organization | ||
- **Create Collection** - Create a new collection to group data sources | ||
- **Get Collection** - Retrieve details of a specific collection | ||
- **Delete Collection** - Permanently remove a collection and all associated data | ||
|
||
### Sources | ||
- **List Sources** - Get all available data source connectors | ||
- **Trigger Sync** - Manually trigger a data sync for a source connection | ||
|
||
## Setup | ||
|
||
1. Sign up for an Airweave account at [airweave.ai](https://airweave.ai) | ||
2. Get your API key from the Airweave dashboard (Settings → API Keys) | ||
3. Connect your Airweave account in Pipedream by entering your API key | ||
|
||
## Example Workflows | ||
|
||
### Slack Q&A Bot | ||
Slash command → Search Airweave collection → Reply with relevant information | ||
|
||
### Support Automation | ||
Form submission → Search documentation → Create support ticket with context | ||
|
||
### Daily Digest | ||
Cron schedule → Search recent updates → Send email summary | ||
|
||
### GitHub Integration | ||
New issue → Search codebase → Auto-comment with relevant code references | ||
|
||
## Authentication | ||
|
||
This integration uses API key authentication. You can find your API key in your Airweave dashboard under Settings → API Keys. | ||
|
||
Optionally, you can specify a custom base URL if you're using a self-hosted Airweave instance. | ||
|
||
## Links | ||
|
||
- [Airweave Documentation](https://docs.airweave.ai) | ||
- [Airweave GitHub](https://github.com/airweave-ai/airweave) | ||
- [API Reference](https://docs.airweave.ai/api-reference) | ||
- [Airweave TypeScript SDK](https://github.com/airweave-ai/typescript-sdk) | ||
|
||
## Support | ||
|
||
For issues or questions: | ||
- Airweave Community: [GitHub Discussions](https://github.com/airweave-ai/airweave/discussions) | ||
- Pipedream Support: [pipedream.com/support](https://pipedream.com/support) | ||
|
45 changes: 45 additions & 0 deletions
45
components/airweave/actions/create-collection/create-collection.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
import airweave from "../../airweave.app.mjs"; | ||
|
||
export default { | ||
key: "airweave-create-collection", | ||
name: "Create Collection", | ||
description: "Create a new Airweave collection. Collections are logical groups of data sources that provide unified search capabilities. The newly created collection is initially empty until you add source connections to it. [See the documentation](https://docs.airweave.ai/api-reference/collections/create)", | ||
version: "0.0.1", | ||
annotations: { | ||
destructiveHint: false, | ||
openWorldHint: true, | ||
readOnlyHint: false, | ||
}, | ||
type: "action", | ||
props: { | ||
airweave, | ||
name: { | ||
type: "string", | ||
label: "Name", | ||
description: "Display name for the collection (e.g., 'Customer Support Data')", | ||
}, | ||
readableId: { | ||
type: "string", | ||
label: "Readable ID", | ||
description: "URL-friendly identifier for the collection (lowercase, hyphens allowed, e.g., 'customer-support-data'). This cannot be changed after creation.", | ||
}, | ||
description: { | ||
type: "string", | ||
label: "Description", | ||
description: "Optional description of what this collection contains and its purpose", | ||
optional: true, | ||
}, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.airweave.createCollection({ | ||
name: this.name, | ||
readable_id: this.readableId, | ||
description: this.description, | ||
}); | ||
|
||
$.export("$summary", `Successfully created collection: ${response.name} (${response.readable_id})`); | ||
|
||
return response; | ||
}, | ||
}; | ||
|
40 changes: 40 additions & 0 deletions
40
components/airweave/actions/delete-collection/delete-collection.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
import airweave from "../../airweave.app.mjs"; | ||
|
||
export default { | ||
key: "airweave-delete-collection", | ||
name: "Delete Collection", | ||
description: "Delete a collection and all associated data. This permanently removes the collection including all synced data and source connections. This action cannot be undone. [See the documentation](https://docs.airweave.ai/api-reference/collections/delete)", | ||
version: "0.0.1", | ||
annotations: { | ||
destructiveHint: true, | ||
openWorldHint: true, | ||
readOnlyHint: false, | ||
}, | ||
type: "action", | ||
props: { | ||
airweave, | ||
collectionId: { | ||
propDefinition: [ | ||
airweave, | ||
"collectionId", | ||
], | ||
}, | ||
confirmation: { | ||
type: "string", | ||
label: "Confirmation", | ||
description: "Type 'DELETE' to confirm deletion. This action cannot be undone.", | ||
}, | ||
}, | ||
async run({ $ }) { | ||
if (this.confirmation !== "DELETE") { | ||
throw new Error("Please type 'DELETE' to confirm deletion. This action cannot be undone."); | ||
} | ||
|
||
const response = await this.airweave.deleteCollection(this.collectionId); | ||
|
||
$.export("$summary", `Successfully deleted collection: ${response.name} (${response.readable_id})`); | ||
|
||
return response; | ||
}, | ||
}; | ||
|
31 changes: 31 additions & 0 deletions
31
components/airweave/actions/get-collection/get-collection.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import airweave from "../../airweave.app.mjs"; | ||
|
||
export default { | ||
key: "airweave-get-collection", | ||
name: "Get Collection", | ||
description: "Retrieve details of a specific collection by its readable ID. [See the documentation](https://docs.airweave.ai/api-reference/collections/get)", | ||
version: "0.0.1", | ||
annotations: { | ||
destructiveHint: false, | ||
openWorldHint: true, | ||
readOnlyHint: true, | ||
}, | ||
type: "action", | ||
props: { | ||
airweave, | ||
collectionId: { | ||
propDefinition: [ | ||
airweave, | ||
"collectionId", | ||
], | ||
}, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.airweave.getCollection(this.collectionId); | ||
|
||
$.export("$summary", `Successfully retrieved collection: ${response.name} (${response.readable_id})`); | ||
|
||
return response; | ||
}, | ||
}; | ||
|
46 changes: 46 additions & 0 deletions
46
components/airweave/actions/list-collections/list-collections.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
import airweave from "../../airweave.app.mjs"; | ||
|
||
export default { | ||
key: "airweave-list-collections", | ||
name: "List Collections", | ||
description: "List all collections in your organization. Collections are logical groups of data sources that provide unified search capabilities. [See the documentation](https://docs.airweave.ai/api-reference/collections/list)", | ||
version: "0.0.1", | ||
annotations: { | ||
destructiveHint: false, | ||
openWorldHint: true, | ||
readOnlyHint: true, | ||
}, | ||
type: "action", | ||
props: { | ||
airweave, | ||
skip: { | ||
type: "integer", | ||
label: "Skip", | ||
description: "Number of collections to skip for pagination", | ||
optional: true, | ||
default: 0, | ||
min: 0, | ||
}, | ||
limit: { | ||
type: "integer", | ||
label: "Limit", | ||
description: "Maximum number of collections to return", | ||
optional: true, | ||
default: 50, | ||
min: 1, | ||
max: 100, | ||
}, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.airweave.listCollections({ | ||
skip: this.skip, | ||
limit: this.limit, | ||
}); | ||
|
||
const count = response.length; | ||
$.export("$summary", `Successfully retrieved ${count} collection(s)`); | ||
|
||
return response; | ||
}, | ||
}; | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
import airweave from "../../airweave.app.mjs"; | ||
|
||
export default { | ||
key: "airweave-list-sources", | ||
name: "List Available Sources", | ||
description: "List all available data source connectors. These are the types of integrations Airweave can connect to (e.g., GitHub, Slack, Google Drive, PostgreSQL, etc.). [See the documentation](https://docs.airweave.ai/api-reference/sources/list)", | ||
version: "0.0.1", | ||
annotations: { | ||
destructiveHint: false, | ||
openWorldHint: true, | ||
readOnlyHint: true, | ||
}, | ||
type: "action", | ||
props: { | ||
airweave, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.airweave.listSources(); | ||
|
||
const count = response.length; | ||
$.export("$summary", `Successfully retrieved ${count} available source connector(s)`); | ||
|
||
return response; | ||
}, | ||
}; | ||
|
81 changes: 81 additions & 0 deletions
81
components/airweave/actions/search-collection/search-collection.mjs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
import airweave from "../../airweave.app.mjs"; | ||
|
||
export default { | ||
key: "airweave-search-collection", | ||
name: "Search Collection", | ||
description: "Search across all data sources within a collection using semantic and keyword search. [See the documentation](https://docs.airweave.ai/api-reference/collections/search)", | ||
version: "0.0.1", | ||
annotations: { | ||
destructiveHint: false, | ||
openWorldHint: true, | ||
readOnlyHint: true, | ||
}, | ||
type: "action", | ||
props: { | ||
airweave, | ||
collectionId: { | ||
propDefinition: [ | ||
airweave, | ||
"collectionId", | ||
], | ||
}, | ||
searchQuery: { | ||
propDefinition: [ | ||
airweave, | ||
"searchQuery", | ||
], | ||
}, | ||
searchLimit: { | ||
propDefinition: [ | ||
airweave, | ||
"searchLimit", | ||
], | ||
}, | ||
responseType: { | ||
propDefinition: [ | ||
airweave, | ||
"responseType", | ||
], | ||
}, | ||
offset: { | ||
type: "integer", | ||
label: "Offset", | ||
description: "Number of results to skip for pagination", | ||
optional: true, | ||
default: 0, | ||
min: 0, | ||
}, | ||
recencyBias: { | ||
type: "string", | ||
label: "Recency Bias", | ||
description: "How much to weigh recency vs similarity (0-1). 0 = no recency effect; 1 = rank by recency only", | ||
optional: true, | ||
}, | ||
Comment on lines
+48
to
+53
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Validate recencyBias and avoid passing NaN/out-of-range. parseFloat may yield NaN; also enforce 0–1 bounds to prevent API errors. - recencyBias: {
+ recencyBias: {
type: "string",
label: "Recency Bias",
description: "How much to weigh recency vs similarity (0-1). 0 = no recency effect; 1 = rank by recency only",
optional: true,
},
@@
- if (this.recencyBias !== undefined) {
- params.recency_bias = parseFloat(this.recencyBias);
- }
+ if (this.recencyBias !== undefined && this.recencyBias !== "") {
+ const rb = parseFloat(this.recencyBias);
+ if (Number.isNaN(rb) || rb < 0 || rb > 1) {
+ throw new Error(`Invalid recencyBias "${this.recencyBias}". Expected a number between 0 and 1.`);
+ }
+ params.recency_bias = rb;
+ } Also applies to: 66-68 🤖 Prompt for AI Agents
|
||
}, | ||
async run({ $ }) { | ||
const params = { | ||
query: this.searchQuery, | ||
limit: this.searchLimit, | ||
offset: this.offset, | ||
}; | ||
|
||
if (this.responseType) { | ||
params.response_type = this.responseType; | ||
} | ||
|
||
if (this.recencyBias !== undefined) { | ||
params.recency_bias = parseFloat(this.recencyBias); | ||
} | ||
|
||
const response = await this.airweave.searchCollection( | ||
this.collectionId, | ||
params, | ||
); | ||
|
||
const resultCount = response.results?.length || 0; | ||
$.export("$summary", `Successfully searched collection "${this.collectionId}" and found ${resultCount} result(s)`); | ||
|
||
return response; | ||
}, | ||
}; | ||
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
import airweave from "../../airweave.app.mjs"; | ||
|
||
export default { | ||
key: "airweave-trigger-sync", | ||
name: "Trigger Source Connection Sync", | ||
description: "Manually trigger a data sync for a source connection. The sync job runs asynchronously in the background and returns immediately with job details. [See the documentation](https://docs.airweave.ai/api-reference/source-connections/run)", | ||
version: "0.0.1", | ||
annotations: { | ||
destructiveHint: false, | ||
openWorldHint: true, | ||
readOnlyHint: false, | ||
}, | ||
type: "action", | ||
props: { | ||
airweave, | ||
collectionId: { | ||
propDefinition: [ | ||
airweave, | ||
"collectionId", | ||
], | ||
description: "The collection that contains the source connection", | ||
}, | ||
sourceConnectionId: { | ||
propDefinition: [ | ||
airweave, | ||
"sourceConnectionId", | ||
(c) => ({ | ||
collectionId: c.collectionId, | ||
}), | ||
], | ||
}, | ||
}, | ||
async run({ $ }) { | ||
const response = await this.airweave.runSourceConnection( | ||
this.sourceConnectionId, | ||
); | ||
|
||
$.export("$summary", `Successfully triggered sync job: ${response.id} (Status: ${response.status})`); | ||
|
||
return response; | ||
}, | ||
}; | ||
|
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Harden confirmation check and summary for 204/empty responses.
DELETE often returns 204. Guard against undefined
response
and make confirmation user-proof (trim + case-insensitive).As per component guidelines.
Also applies to: 33-37
🤖 Prompt for AI Agents