Linkish

All in one bookmarking manager

Integrate the Linkish API with the Node API

Setup the Linkish API trigger to run a workflow which integrates with the Node API. Pipedream's integration platform allows you to integrate Linkish and Node remarkably fast. Free for developers.

Run Node Code with the Node API

Write custom Node.js code and use any of the 400k+ npm packages available. Refer to the Pipedream Node docs to learn more.

 
Try it

Connect Linkish

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
module.exports = defineComponent({
  props: {
    linkish: {
      type: "app",
      app: "linkish",
    }
  },
  async run({steps, $}) {
    const axios = require('axios');
    let access_token = "";
    
    // Card details
    let type = "link", // either "link" or "text"
    		url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ", // required if "type" is "link"
    		title = "", // card title, if empty it will be scraped from "url"
    		description = "", // card description, if empty it will be scraped from "url"
    		thumbnail = "", // preview image URL, if empty it will be scraped from "url"
    		parent = "", // collections[index].id recieved from get-collection API
    		tags = []; // an array of strings, items can also have comma separated strings
    
    // Get access token based on the linkish API key
    return await axios({
    	method  : "POST", 
    	url: "https://api.linkish.io/get-token",
    	data : JSON.stringify({
    		"api_key": this.linkish.$auth.api_key
    	}),
    	headers: {
    		"Content-Type": "application/json",
    		"Accept": "application/json",
    	}
    }).then(async (response) => {
    
    	// Get collections based on the access token
    	access_token = response.data.token;
    	return await axios({
    		method  : "GET",
    		url: "https://api.linkish.io/get-collections",
    		headers: {
    			"Authorization": `Bearer ${access_token}`,
    		}
    	})
    
    }).then((response) => {
    
    	// Return the data as the step export
    	return response.data;
    
    }).then(async (collections) => {
    
    	// Change parent collection ID here or keep it empty for adding links to root collection
    	parent = collections[0].id;
    
    	// Save link in linkish dashboard
    	return await axios({
    		method  : "POST",
    		url: "https://api.linkish.io/save-link",
    		data : JSON.stringify({
    			"type": type,
    			"url": url,
    			"title": title,
    			"desc": description,
    			"thumbnail": thumbnail,
    			"parent": parent,
    			"tags": tags,
    		}),
    		headers: {
    			"Authorization": `Bearer ${access_token}`,
    			"Content-Type": "application/json",
    			"Accept": "application/json",
    		}
    	})
    
    }).then((response) => {
    
    	// Return the data as the step export
    	return response.data
    
    })
  },
})

Connect Node

1
2
3
4
5
6
7
// To use previous step data, pass the `steps` object to the run() function
export default defineComponent({
  async run({ steps, $ }) {
    // Return data to use it in future steps
    return steps.trigger.event
  },
})