@pipedream/tomba 0.0.5 → 0.1.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.
- package/README.md +43 -4
- package/actions/enrich-email/enrich-email.mjs +33 -0
- package/actions/find-author/find-author.mjs +36 -0
- package/actions/find-email/find-email.mjs +50 -0
- package/actions/find-linkedin-email/find-linkedin-email.mjs +36 -0
- package/actions/find-phone/find-phone.mjs +64 -0
- package/actions/find-similar-domains/find-similar-domains.mjs +36 -0
- package/actions/get-account/get-account.mjs +26 -0
- package/actions/get-domain-status/get-domain-status.mjs +36 -0
- package/actions/get-domain-suggestions/get-domain-suggestions.mjs +37 -0
- package/actions/get-email-count/get-email-count.mjs +36 -0
- package/actions/get-email-format/get-email-format.mjs +36 -0
- package/actions/get-email-sources/get-email-sources.mjs +33 -0
- package/actions/get-location/get-location.mjs +36 -0
- package/actions/get-logs/get-logs.mjs +45 -0
- package/actions/get-technology/get-technology.mjs +36 -0
- package/actions/get-usage/get-usage.mjs +26 -0
- package/actions/search-companies/search-companies.mjs +59 -0
- package/actions/search-domain/search-domain.mjs +66 -0
- package/actions/validate-phone/validate-phone.mjs +43 -0
- package/actions/verify-email/verify-email.mjs +33 -0
- package/package.json +15 -3
- package/tomba.app.mjs +556 -4
package/README.md
CHANGED
|
@@ -1,11 +1,50 @@
|
|
|
1
1
|
# Overview
|
|
2
2
|
|
|
3
|
-
The Tomba API is a
|
|
3
|
+
The Tomba API is a comprehensive email finder and verification service that enables you to discover, verify, and enrich email addresses and contact data. With Tomba, you can find email addresses from domains, names, LinkedIn profiles, or blog posts, verify email deliverability, and gather detailed company intelligence. Leverage Pipedream's capabilities to integrate Tomba with hundreds of other apps, creating powerful automated workflows for lead generation, email verification, contact enrichment, and competitive research.
|
|
4
4
|
|
|
5
5
|
# Example Use Cases
|
|
6
6
|
|
|
7
|
-
- **Lead Generation Automation**: Trigger a workflow when a new company is added to your CRM. Use Tomba to find email addresses associated with the company's domain
|
|
7
|
+
- **Lead Generation Automation**: Trigger a workflow when a new company is added to your CRM. Use Tomba to find email addresses associated with the company's domain, enrich the lead data, and automatically add qualified contacts to your outreach sequences in tools like Mailchimp or HubSpot.
|
|
8
8
|
|
|
9
|
-
- **
|
|
9
|
+
- **Email List Verification**: Before launching an email campaign, run your contact list through a Pipedream workflow that uses Tomba's email verifier to validate each address. Automatically remove invalid emails and update your email platform like SendGrid, ensuring higher deliverability rates and protecting your sender reputation.
|
|
10
10
|
|
|
11
|
-
- **
|
|
11
|
+
- **Competitive Intelligence Gathering**: Set up a scheduled workflow that monitors competitor domains using Tomba's domain search and technology detection features. Store findings in Google Sheets and send Slack notifications to your team with insights about competitor email patterns, employee counts, and tech stacks.
|
|
12
|
+
|
|
13
|
+
# Getting Started
|
|
14
|
+
|
|
15
|
+
To start using Tomba with Pipedream:
|
|
16
|
+
|
|
17
|
+
1. **Sign up for Tomba**: Create an account at [tomba.io](https://tomba.io) and obtain your API key and secret from the dashboard.
|
|
18
|
+
|
|
19
|
+
2. **Connect to Pipedream**: In your Pipedream workflow, add a Tomba action and authenticate using your API credentials.
|
|
20
|
+
|
|
21
|
+
3. **Choose your action**: Select from 20 available actions including Email Finder, Domain Search, Email Verifier, and Company Search.
|
|
22
|
+
|
|
23
|
+
4. **Configure parameters**: Set up your search criteria such as domain names, email addresses, or LinkedIn URLs.
|
|
24
|
+
|
|
25
|
+
5. **Test and deploy**: Run your workflow to verify the results, then deploy for automated execution.
|
|
26
|
+
|
|
27
|
+
# Troubleshooting
|
|
28
|
+
|
|
29
|
+
**Authentication Issues**
|
|
30
|
+
|
|
31
|
+
- Verify your API key and secret are correctly entered in the Pipedream connection settings
|
|
32
|
+
- Check that your Tomba account has sufficient credits and is not suspended
|
|
33
|
+
- Ensure your API keys haven't expired or been regenerated
|
|
34
|
+
|
|
35
|
+
**Rate Limiting**
|
|
36
|
+
|
|
37
|
+
- Tomba enforces API rate limits based on your subscription plan
|
|
38
|
+
- Implement delays between requests in high-volume workflows
|
|
39
|
+
- Monitor your usage with the "Get Usage" action to track quota consumption
|
|
40
|
+
|
|
41
|
+
**No Results Found**
|
|
42
|
+
|
|
43
|
+
- For Email Finder: Try different name variations or check if the domain uses a non-standard email format
|
|
44
|
+
- For Domain Search: Some domains may have limited public email exposure
|
|
45
|
+
- For LinkedIn Finder: Ensure the LinkedIn URL is publicly accessible and properly formatted
|
|
46
|
+
|
|
47
|
+
**Invalid Email Addresses**
|
|
48
|
+
|
|
49
|
+
- Use the Email Verifier action to validate emails before adding them to campaigns
|
|
50
|
+
- Some emails may exist but have strict spam filters that prevent verification
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-enrich-email",
|
|
5
|
+
name: "Enrich Email",
|
|
6
|
+
description:
|
|
7
|
+
"Look up person and company data based on an email. [See the documentation](https://docs.tomba.io/api/finder#email-enrichment)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
email: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"email",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async run({ $ }) {
|
|
25
|
+
const response = await this.app.enrichEmail({
|
|
26
|
+
$,
|
|
27
|
+
email: this.email,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
$.export("$summary", `Successfully enriched data for email: ${this.email}`);
|
|
31
|
+
return response;
|
|
32
|
+
},
|
|
33
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-find-author",
|
|
5
|
+
name: "Find Author",
|
|
6
|
+
description:
|
|
7
|
+
"Generate or retrieve the most likely email address from a blog post URL. [See the documentation](https://docs.tomba.io/api/finder#author-finder)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
blogUrl: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"blogUrl",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async run({ $ }) {
|
|
25
|
+
const response = await this.app.findAuthor({
|
|
26
|
+
$,
|
|
27
|
+
blogUrl: this.blogUrl,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
$.export(
|
|
31
|
+
"$summary",
|
|
32
|
+
`Successfully found author information for blog post: ${this.blogUrl}`,
|
|
33
|
+
);
|
|
34
|
+
return response;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-find-email",
|
|
5
|
+
name: "Find Email",
|
|
6
|
+
description:
|
|
7
|
+
"Generate or retrieve the most likely email address from a domain name, a first name and a last name. [See the documentation](https://docs.tomba.io/api/finder#email-finder)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
domain: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"domain",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
firstName: {
|
|
24
|
+
propDefinition: [
|
|
25
|
+
app,
|
|
26
|
+
"firstName",
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
lastName: {
|
|
30
|
+
propDefinition: [
|
|
31
|
+
app,
|
|
32
|
+
"lastName",
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
async run({ $ }) {
|
|
37
|
+
const response = await this.app.findEmail({
|
|
38
|
+
$,
|
|
39
|
+
domain: this.domain,
|
|
40
|
+
firstName: this.firstName,
|
|
41
|
+
lastName: this.lastName,
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
$.export(
|
|
45
|
+
"$summary",
|
|
46
|
+
`Successfully found email for ${this.firstName} ${this.lastName} at ${this.domain}`,
|
|
47
|
+
);
|
|
48
|
+
return response;
|
|
49
|
+
},
|
|
50
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-find-linkedin-email",
|
|
5
|
+
name: "Find LinkedIn Email",
|
|
6
|
+
description:
|
|
7
|
+
"Generate or retrieve the most likely email address from a LinkedIn URL. [See the documentation](https://docs.tomba.io/api/finder#linkedin-finder)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
linkedinUrl: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"linkedinUrl",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async run({ $ }) {
|
|
25
|
+
const response = await this.app.findLinkedIn({
|
|
26
|
+
$,
|
|
27
|
+
linkedinUrl: this.linkedinUrl,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
$.export(
|
|
31
|
+
"$summary",
|
|
32
|
+
`Successfully found email from LinkedIn profile: ${this.linkedinUrl}`,
|
|
33
|
+
);
|
|
34
|
+
return response;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-find-phone",
|
|
5
|
+
name: "Find Phone",
|
|
6
|
+
description:
|
|
7
|
+
"Search for phone numbers based on an email, domain, or LinkedIn URL. [See the documentation](https://docs.tomba.io/api/phone#phone-finder)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
searchType: {
|
|
18
|
+
type: "string",
|
|
19
|
+
label: "Search Type",
|
|
20
|
+
description: "Choose the type of search to perform",
|
|
21
|
+
options: [
|
|
22
|
+
{
|
|
23
|
+
label: "Search by Domain",
|
|
24
|
+
value: "domain",
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
label: "Search by Email",
|
|
28
|
+
value: "email",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
label: "Search by LinkedIn URL",
|
|
32
|
+
value: "linkedin",
|
|
33
|
+
},
|
|
34
|
+
],
|
|
35
|
+
default: "domain",
|
|
36
|
+
},
|
|
37
|
+
search: {
|
|
38
|
+
type: "string",
|
|
39
|
+
label: "Search Input",
|
|
40
|
+
description: "Enter the domain, email address, or LinkedIn URL to search",
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
async run({ $ }) {
|
|
44
|
+
const params = {};
|
|
45
|
+
if (this.searchType === "domain") {
|
|
46
|
+
params.domain = this.search;
|
|
47
|
+
} else if (this.searchType === "email") {
|
|
48
|
+
params.email = this.search;
|
|
49
|
+
} else if (this.searchType === "linkedin") {
|
|
50
|
+
params.linkedinUrl = this.search;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
const response = await this.app.findPhone({
|
|
54
|
+
$,
|
|
55
|
+
...params,
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
$.export(
|
|
59
|
+
"$summary",
|
|
60
|
+
`Successfully searched for phone numbers using ${this.searchType}: ${this.search}`,
|
|
61
|
+
);
|
|
62
|
+
return response;
|
|
63
|
+
},
|
|
64
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-find-similar-domains",
|
|
5
|
+
name: "Find Similar Domains",
|
|
6
|
+
description:
|
|
7
|
+
"Retrieve similar domains based on a specific domain. [See the documentation](https://docs.tomba.io/api/~endpoints#similar)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
domain: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"domain",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async run({ $ }) {
|
|
25
|
+
const response = await this.app.findSimilarDomains({
|
|
26
|
+
$,
|
|
27
|
+
domain: this.domain,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
$.export(
|
|
31
|
+
"$summary",
|
|
32
|
+
`Successfully found similar domains for: ${this.domain}`,
|
|
33
|
+
);
|
|
34
|
+
return response;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-get-account",
|
|
5
|
+
name: "Get Account",
|
|
6
|
+
description:
|
|
7
|
+
"Returns information about the current account including usage statistics and plan details. [See the documentation](https://docs.tomba.io/api/account#get-account)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
},
|
|
18
|
+
async run({ $ }) {
|
|
19
|
+
const response = await this.app.getAccount({
|
|
20
|
+
$,
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
$.export("$summary", "Successfully retrieved account information");
|
|
24
|
+
return response;
|
|
25
|
+
},
|
|
26
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-get-domain-status",
|
|
5
|
+
name: "Get Domain Status",
|
|
6
|
+
description:
|
|
7
|
+
"Find domain status if is webmail or disposable. [See the documentation](https://docs.tomba.io/api/~endpoints#domain-status)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
domain: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"domain",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async run({ $ }) {
|
|
25
|
+
const response = await this.app.getDomainStatus({
|
|
26
|
+
$,
|
|
27
|
+
domain: this.domain,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
$.export(
|
|
31
|
+
"$summary",
|
|
32
|
+
`Successfully retrieved domain status for: ${this.domain}`,
|
|
33
|
+
);
|
|
34
|
+
return response;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-get-domain-suggestions",
|
|
5
|
+
name: "Get Domain Suggestions",
|
|
6
|
+
description:
|
|
7
|
+
"Retrieve a list of suggested domains similar to or related to your search query. This helps discover competitors, similar companies, and related businesses for market research and prospecting. [See the documentation](https://docs.tomba.io/api/domain-suggestions#get-domain-suggestions)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
query: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"query",
|
|
21
|
+
],
|
|
22
|
+
description: "The domain or company name to find suggestions for",
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
async run({ $ }) {
|
|
26
|
+
const response = await this.app.getDomainSuggestions({
|
|
27
|
+
$,
|
|
28
|
+
query: this.query,
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
$.export(
|
|
32
|
+
"$summary",
|
|
33
|
+
`Successfully found domain suggestions for: ${this.query}`,
|
|
34
|
+
);
|
|
35
|
+
return response;
|
|
36
|
+
},
|
|
37
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-get-email-count",
|
|
5
|
+
name: "Get Email Count",
|
|
6
|
+
description:
|
|
7
|
+
"Find total email addresses we have for one domain. [See the documentation](https://docs.tomba.io/api/finder#email-count)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
domain: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"domain",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async run({ $ }) {
|
|
25
|
+
const response = await this.app.getEmailCount({
|
|
26
|
+
$,
|
|
27
|
+
domain: this.domain,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
$.export(
|
|
31
|
+
"$summary",
|
|
32
|
+
`Successfully retrieved email count for domain: ${this.domain}`,
|
|
33
|
+
);
|
|
34
|
+
return response;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-get-email-format",
|
|
5
|
+
name: "Get Email Format",
|
|
6
|
+
description:
|
|
7
|
+
"Retrieve the email format patterns used by a specific domain. [See the documentation](https://docs.tomba.io/api/finder#email-format)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
domain: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"domain",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async run({ $ }) {
|
|
25
|
+
const response = await this.app.getEmailFormat({
|
|
26
|
+
$,
|
|
27
|
+
domain: this.domain,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
$.export(
|
|
31
|
+
"$summary",
|
|
32
|
+
`Successfully retrieved email format patterns for domain: ${this.domain}`,
|
|
33
|
+
);
|
|
34
|
+
return response;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-get-email-sources",
|
|
5
|
+
name: "Get Email Sources",
|
|
6
|
+
description:
|
|
7
|
+
"Find email address source somewhere on the web. [See the documentation](https://docs.tomba.io/api/~endpoints#email-sources)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
email: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"email",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async run({ $ }) {
|
|
25
|
+
const response = await this.app.getEmailSources({
|
|
26
|
+
$,
|
|
27
|
+
email: this.email,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
$.export("$summary", `Successfully found sources for email: ${this.email}`);
|
|
31
|
+
return response;
|
|
32
|
+
},
|
|
33
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-get-location",
|
|
5
|
+
name: "Get Location",
|
|
6
|
+
description:
|
|
7
|
+
"Get employees location based on the domain name. [See the documentation](https://docs.tomba.io/api/finder#location)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
domain: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"domain",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async run({ $ }) {
|
|
25
|
+
const response = await this.app.getLocation({
|
|
26
|
+
$,
|
|
27
|
+
domain: this.domain,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
$.export(
|
|
31
|
+
"$summary",
|
|
32
|
+
`Successfully retrieved location data for domain: ${this.domain}`,
|
|
33
|
+
);
|
|
34
|
+
return response;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-get-logs",
|
|
5
|
+
name: "Get Logs",
|
|
6
|
+
description:
|
|
7
|
+
"Retrieve API request logs for your account with pagination support. [See the documentation](https://docs.tomba.io/api/account#retrieve-api-logs)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
limit: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"limit",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
page: {
|
|
24
|
+
propDefinition: [
|
|
25
|
+
app,
|
|
26
|
+
"page",
|
|
27
|
+
],
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
async run({ $ }) {
|
|
31
|
+
const offset = (this.page - 1) * this.limit;
|
|
32
|
+
|
|
33
|
+
const response = await this.app.getLogs({
|
|
34
|
+
$,
|
|
35
|
+
limit: this.limit,
|
|
36
|
+
offset,
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
$.export(
|
|
40
|
+
"$summary",
|
|
41
|
+
`Successfully retrieved ${response.data?.length || 0} API logs`,
|
|
42
|
+
);
|
|
43
|
+
return response;
|
|
44
|
+
},
|
|
45
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-get-technology",
|
|
5
|
+
name: "Get Technology",
|
|
6
|
+
description:
|
|
7
|
+
"Retrieve the technologies used by a specific domain. [See the documentation](https://docs.tomba.io/api/~endpoints#technology)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
domain: {
|
|
18
|
+
propDefinition: [
|
|
19
|
+
app,
|
|
20
|
+
"domain",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
},
|
|
24
|
+
async run({ $ }) {
|
|
25
|
+
const response = await this.app.getTechnology({
|
|
26
|
+
$,
|
|
27
|
+
domain: this.domain,
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
$.export(
|
|
31
|
+
"$summary",
|
|
32
|
+
`Successfully retrieved technology stack for domain: ${this.domain}`,
|
|
33
|
+
);
|
|
34
|
+
return response;
|
|
35
|
+
},
|
|
36
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import app from "../../tomba.app.mjs";
|
|
2
|
+
|
|
3
|
+
export default {
|
|
4
|
+
key: "tomba-get-usage",
|
|
5
|
+
name: "Get Usage",
|
|
6
|
+
description:
|
|
7
|
+
"Retrieve API usage statistics and quota information for your account. [See the documentation](https://docs.tomba.io/api/account#retrieve-api-usage)",
|
|
8
|
+
version: "0.0.1",
|
|
9
|
+
type: "action",
|
|
10
|
+
annotations: {
|
|
11
|
+
destructiveHint: false,
|
|
12
|
+
openWorldHint: true,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
props: {
|
|
16
|
+
app,
|
|
17
|
+
},
|
|
18
|
+
async run({ $ }) {
|
|
19
|
+
const response = await this.app.getUsage({
|
|
20
|
+
$,
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
$.export("$summary", "Successfully retrieved API usage statistics");
|
|
24
|
+
return response;
|
|
25
|
+
},
|
|
26
|
+
};
|