@pipedream/linkedin 2.0.0 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/actions/create-comment/create-comment.mjs +1 -1
  2. package/actions/create-image-post-organization/create-image-post-organization.mjs +12 -4
  3. package/actions/create-image-post-user/create-image-post-user.mjs +12 -4
  4. package/actions/create-like-on-share/create-like-on-share.mjs +1 -1
  5. package/actions/create-text-post-organization/create-text-post-organization.mjs +1 -1
  6. package/actions/create-text-post-user/create-text-post-user.mjs +1 -1
  7. package/actions/delete-post/delete-post.mjs +1 -1
  8. package/actions/fetch-ad-account/fetch-ad-account.mjs +2 -2
  9. package/actions/get-current-member-profile/get-current-member-profile.mjs +1 -1
  10. package/actions/get-member-profile/get-member-profile.mjs +1 -1
  11. package/actions/get-multiple-member-profiles/get-multiple-member-profiles.mjs +1 -1
  12. package/actions/get-org-member-access/get-org-member-access.mjs +1 -1
  13. package/actions/get-organization-access-control/get-organization-access-control.mjs +1 -1
  14. package/actions/get-organization-administrators/get-organization-administrators.mjs +1 -1
  15. package/actions/get-profile-picture-fields/get-profile-picture-fields.mjs +1 -1
  16. package/actions/list-ad-account-id-options/list-ad-account-id-options.mjs +1 -1
  17. package/actions/list-campaign-id-options/list-campaign-id-options.mjs +9 -1
  18. package/actions/list-organization-id-options/list-organization-id-options.mjs +1 -1
  19. package/actions/retrieve-comments-on-comments/retrieve-comments-on-comments.mjs +3 -3
  20. package/actions/retrieve-comments-shares/retrieve-comments-shares.mjs +3 -3
  21. package/actions/search-organization/search-organization.mjs +1 -1
  22. package/common/constants.mjs +1 -1
  23. package/linkedin.app.mjs +9 -4
  24. package/package.json +2 -2
  25. package/sources/new-organization-post-created/new-organization-post-created.mjs +1 -1
@@ -5,7 +5,7 @@ export default {
5
5
  key: "linkedin-create-comment",
6
6
  name: "Create Comment",
7
7
  description: "Create a comment on a share or user generated content post. [See the documentation](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/network-update-social-actions#create-comment)",
8
- version: "1.0.0",
8
+ version: "1.0.1",
9
9
  annotations: {
10
10
  destructiveHint: true,
11
11
  openWorldHint: true,
@@ -7,7 +7,7 @@ export default {
7
7
  key: "linkedin-create-image-post-organization",
8
8
  name: "Create Image Post (Organization)",
9
9
  description: "Create an image post on LinkedIn. [See the documentation](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/images-api?view=li-lms-2023-09&tabs=http#uploading-an-image)",
10
- version: "1.0.9",
10
+ version: "1.1.1",
11
11
  annotations: {
12
12
  destructiveHint: false,
13
13
  openWorldHint: true,
@@ -91,7 +91,8 @@ export default {
91
91
 
92
92
  await this.uploadImage(uploadUrl, formData);
93
93
 
94
- await this.linkedin.createPost({
94
+ const response = await this.linkedin.createPost({
95
+ returnFullResponse: true,
95
96
  data: {
96
97
  author: `urn:li:organization:${this.organizationId}`,
97
98
  lifecycleState: "PUBLISHED",
@@ -109,8 +110,15 @@ export default {
109
110
  $,
110
111
  });
111
112
 
112
- $.export("$summary", "Successfully posted image.");
113
+ // LinkedIn returns the new post's URN in the `x-restli-id` response header, not in the body
114
+ const postId = response?.headers?.["x-restli-id"];
115
+ $.export("$summary", postId
116
+ ? `Successfully posted image with ID ${postId}`
117
+ : "Successfully posted image.");
113
118
 
114
- // nothing to return
119
+ return {
120
+ id: postId,
121
+ image,
122
+ };
115
123
  },
116
124
  };
@@ -7,7 +7,7 @@ export default {
7
7
  key: "linkedin-create-image-post-user",
8
8
  name: "Create Image Post (User)",
9
9
  description: "Create an image post on LinkedIn. [See the documentation](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/images-api?view=li-lms-2023-09&tabs=http#uploading-an-image)",
10
- version: "1.0.9",
10
+ version: "1.1.1",
11
11
  annotations: {
12
12
  destructiveHint: false,
13
13
  openWorldHint: true,
@@ -95,7 +95,8 @@ export default {
95
95
  $,
96
96
  });
97
97
 
98
- await this.linkedin.createPost({
98
+ const response = await this.linkedin.createPost({
99
+ returnFullResponse: true,
99
100
  data: {
100
101
  author: `urn:li:person:${id}`,
101
102
  lifecycleState: "PUBLISHED",
@@ -113,8 +114,15 @@ export default {
113
114
  $,
114
115
  });
115
116
 
116
- $.export("$summary", "Successfully posted image.");
117
+ // LinkedIn returns the new post's URN in the `x-restli-id` response header, not in the body
118
+ const postId = response?.headers?.["x-restli-id"];
119
+ $.export("$summary", postId
120
+ ? `Successfully posted image with ID ${postId}`
121
+ : "Successfully posted image.");
117
122
 
118
- // nothing to return
123
+ return {
124
+ id: postId,
125
+ image,
126
+ };
119
127
  },
120
128
  };
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-create-like-on-share",
5
5
  name: "Create Like On Share",
6
6
  description: "Creates a like on a share. [See the docs here](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/network-update-social-actions#create-a-like-on-a-share)",
7
- version: "0.1.13",
7
+ version: "0.1.14",
8
8
  annotations: {
9
9
  destructiveHint: true,
10
10
  openWorldHint: true,
@@ -5,7 +5,7 @@ export default {
5
5
  key: "linkedin-create-text-post-organization",
6
6
  name: "Create a Simple Post (Organization)",
7
7
  description: "Create post on LinkedIn using text, URL or article. [See the documentation](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/posts-api?view=li-lms-2022-11&tabs=http#create-organic-posts) for more information",
8
- version: "0.0.13",
8
+ version: "0.0.14",
9
9
  annotations: {
10
10
  destructiveHint: false,
11
11
  openWorldHint: true,
@@ -5,7 +5,7 @@ export default {
5
5
  key: "linkedin-create-text-post-user",
6
6
  name: "Create a Simple Post (User)",
7
7
  description: "Create post on LinkedIn using text, URL or article. [See the documentation](https://learn.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/posts-api?view=li-lms-2022-11&tabs=http#create-organic-posts) for more information",
8
- version: "0.0.13",
8
+ version: "0.0.14",
9
9
  annotations: {
10
10
  destructiveHint: false,
11
11
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-delete-post",
5
5
  name: "Delete Post",
6
6
  description: "Removes a post from user's wall. [See the documentation](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/share-api?tabs=http#delete-shares) for more information",
7
- version: "0.0.13",
7
+ version: "0.0.14",
8
8
  annotations: {
9
9
  destructiveHint: true,
10
10
  openWorldHint: true,
@@ -4,11 +4,11 @@ export default {
4
4
  key: "linkedin-fetch-ad-account",
5
5
  name: "Fetch Ad Account",
6
6
  description: "Fetches an individual adAccount given its id. [See the docs here](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/ads/account-structure/create-and-manage-accounts#fetch-ad-account)",
7
- version: "0.1.13",
7
+ version: "0.1.14",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
11
- readOnlyHint: false,
11
+ readOnlyHint: true,
12
12
  },
13
13
  type: "action",
14
14
  props: {
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-get-current-member-profile",
5
5
  name: "Get Current Member Profile",
6
6
  description: "Gets the profile of the current authenticated member. [See the docs here](https://docs.microsoft.com/en-us/linkedin/shared/integrations/people/profile-api#retrieve-current-members-profile)",
7
- version: "0.1.13",
7
+ version: "0.1.14",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-get-member-profile",
5
5
  name: "Get Member Profile",
6
6
  description: "Gets another member's profile, given its person id. [See the docs here](https://docs.microsoft.com/en-us/linkedin/shared/integrations/people/profile-api#retrieve-other-members-profile)",
7
- version: "0.1.13",
7
+ version: "0.1.14",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-get-multiple-member-profiles",
5
5
  name: "Get Multiple Member Profiles",
6
6
  description: "Gets multiple member profiles at once. [See the docs here](https://docs.microsoft.com/en-us/linkedin/shared/integrations/people/profile-api#retrieve-other-members-profile)",
7
- version: "0.1.13",
7
+ version: "0.1.14",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-get-org-member-access",
5
5
  name: "Get Member's Organization Access Control Information",
6
6
  description: "Gets the organization access control information of the current authenticated member. [See the documentation](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/organizations/organization-access-control-by-role?view=li-lms-2025-01&tabs=http#find-a-members-organization-access-control-information)",
7
- version: "1.0.8",
7
+ version: "1.0.9",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-get-organization-access-control",
5
5
  name: "Gets Organization Access Control",
6
6
  description: "Gets a selected organization's access control information. [See the documentation](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/organizations/organization-access-control-by-role?view=li-lms-2025-01&tabs=http#find-organization-access-control)",
7
- version: "0.2.7",
7
+ version: "0.2.8",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-get-organization-administrators",
5
5
  name: "Get Organization Administrators",
6
6
  description: "Gets the administrator members of a selected organization. [See the documentation](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/organizations/organization-access-control-by-role?view=li-lms-2025-01&tabs=http#find-organization-administrators)",
7
- version: "0.3.7",
7
+ version: "0.3.8",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -5,7 +5,7 @@ export default {
5
5
  key: "linkedin-get-profile-picture-fields",
6
6
  name: "Get Profile Picture Fields",
7
7
  description: "Gets the authenticated user's profile picture data including display image and metadata. [See the documentation](https://learn.microsoft.com/en-us/linkedin/shared/references/v2/profile/profile-picture)",
8
- version: "0.0.8",
8
+ version: "0.0.9",
9
9
  annotations: {
10
10
  destructiveHint: false,
11
11
  openWorldHint: true,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-list-ad-account-id-options",
5
5
  name: "List Ad Account Id Options",
6
6
  description: "Retrieves available options for the Ad Account Id field.",
7
- version: "0.0.3",
7
+ version: "0.0.4",
8
8
  type: "action",
9
9
  annotations: {
10
10
  destructiveHint: false,
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-list-campaign-id-options",
5
5
  name: "List Campaign Id Options",
6
6
  description: "Retrieves available options for the Campaign Id field.",
7
- version: "0.0.3",
7
+ version: "1.0.0",
8
8
  type: "action",
9
9
  annotations: {
10
10
  destructiveHint: false,
@@ -13,6 +13,13 @@ export default {
13
13
  },
14
14
  props: {
15
15
  linkedin,
16
+ adAccountId: {
17
+ propDefinition: [
18
+ linkedin,
19
+ "adAccountId",
20
+ ],
21
+ description: "The numeric id of the ad account whose campaigns to list, e.g. `123456789` (not the `urn:li:sponsoredAccount:…` URN). Use **List Ad Account Id Options** to find ids.",
22
+ },
16
23
  page: {
17
24
  type: "integer",
18
25
  label: "Page",
@@ -24,6 +31,7 @@ export default {
24
31
  async run({ $ }) {
25
32
  const options = await linkedin.propDefinitions.campaignId.options.call(this.linkedin, {
26
33
  page: this.page,
34
+ adAccountId: this.adAccountId,
27
35
  });
28
36
  $.export("$summary", `Successfully retrieved ${options.length} option${options.length === 1
29
37
  ? ""
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-list-organization-id-options",
5
5
  name: "List Organization Id Options",
6
6
  description: "Retrieves available options for the Organization Id field.",
7
- version: "0.0.3",
7
+ version: "0.0.4",
8
8
  type: "action",
9
9
  annotations: {
10
10
  destructiveHint: false,
@@ -4,11 +4,11 @@ export default {
4
4
  key: "linkedin-retrieve-comments-on-comments",
5
5
  name: "Retrieves Comments on Comments",
6
6
  description: "Retrieves comments on comments, given the parent comment urn. [See the documentation](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/network-update-social-actions#retrieve-comments-on-comments)",
7
- version: "0.1.13",
7
+ version: "0.1.14",
8
8
  annotations: {
9
- destructiveHint: true,
9
+ destructiveHint: false,
10
10
  openWorldHint: true,
11
- readOnlyHint: false,
11
+ readOnlyHint: true,
12
12
  },
13
13
  type: "action",
14
14
  props: {
@@ -4,11 +4,11 @@ export default {
4
4
  key: "linkedin-retrieve-comments-shares",
5
5
  name: "Retrieve Comments On Shares",
6
6
  description: "Retrieve comments on shares given the share urn. [See the docs here](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/shares/network-update-social-actions#retrieve-comments-on-shares)",
7
- version: "0.1.14",
7
+ version: "0.1.15",
8
8
  annotations: {
9
- destructiveHint: true,
9
+ destructiveHint: false,
10
10
  openWorldHint: true,
11
- readOnlyHint: false,
11
+ readOnlyHint: true,
12
12
  },
13
13
  type: "action",
14
14
  props: {
@@ -4,7 +4,7 @@ export default {
4
4
  key: "linkedin-search-organization",
5
5
  name: "Search Organization",
6
6
  description: "Searches for an organization by vanity name or email domain. [See the docs here](https://docs.microsoft.com/en-us/linkedin/marketing/integrations/community-management/organizations/organization-lookup-api)",
7
- version: "0.1.13",
7
+ version: "0.1.14",
8
8
  annotations: {
9
9
  destructiveHint: false,
10
10
  openWorldHint: true,
@@ -1,6 +1,6 @@
1
1
  const VERSION_PATH = "rest";
2
2
  const BASE_URL = "https://api.linkedin.com/";
3
- const VERSION_HEADER = "202606";
3
+ const VERSION_HEADER = "202610";
4
4
  const RESTLI_PROTOCOL_VERSION = "2.0.0";
5
5
 
6
6
  const VISIBILITIES = [
package/linkedin.app.mjs CHANGED
@@ -98,18 +98,21 @@ export default {
98
98
  type: "string",
99
99
  label: "Campaign Id",
100
100
  description: "Sponsored campaign account id to match results by",
101
- async options({ page }) {
101
+ async options({
102
+ page, adAccountId,
103
+ }) {
102
104
  const count = 10;
103
105
  const params = {
104
106
  count,
105
107
  start: count * page,
106
108
  };
107
109
  const { elements } = await this.searchCampaigns({
110
+ adAccountId,
108
111
  params,
109
112
  });
110
113
  return elements?.map((element) => ({
111
114
  label: element.name,
112
- id: element.id,
115
+ value: element.id,
113
116
  }));
114
117
  },
115
118
  },
@@ -299,9 +302,11 @@ export default {
299
302
  ...args,
300
303
  });
301
304
  },
302
- async searchCampaigns(args = {}) {
305
+ async searchCampaigns({
306
+ adAccountId, ...args
307
+ } = {}) {
303
308
  return this._makeRequest({
304
- path: "/adCampaigns?q=search",
309
+ path: `/adAccounts/${adAccountId}/adCampaigns?q=search`,
305
310
  ...args,
306
311
  });
307
312
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pipedream/linkedin",
3
- "version": "2.0.0",
3
+ "version": "3.0.0",
4
4
  "description": "Pipedream Linkedin Components",
5
5
  "main": "linkedin.app.mjs",
6
6
  "keywords": [
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@pipedream/platform": "^3.2.5",
17
- "axios": "^1.16.1",
17
+ "axios": "^1.20.0",
18
18
  "form-data": "^4.0.4"
19
19
  }
20
20
  }
@@ -9,7 +9,7 @@ export default {
9
9
  name: "New Organization Post Created",
10
10
  description: "Emit new event when a new post is created by the organization. [See the documentation](https://learn.microsoft.com/en-us/linkedin/marketing/community-management/shares/posts-api?view=li-lms-2024-09&tabs=curl#find-posts-by-authors).",
11
11
  type: "source",
12
- version: "0.0.7",
12
+ version: "0.0.8",
13
13
  dedupe: "unique",
14
14
  props: {
15
15
  ...common.props,