← Strava + Fortnox integrations

Create Invoice with Fortnox API on New Activity Created Event from Strava API

Pipedream makes it easy to connect APIs for Fortnox, Strava and 3,000+ other apps remarkably fast.

Trigger workflow on
New Activity Created Event from the Strava API
Next, do this
Create Invoice with the Fortnox API
No credit card required
Intro to Pipedream
Watch us build a workflow
Watch us build a workflow
8 min
Watch now ➜

Trusted by 1,000,000+ developers from startups to Fortune 500 companies

Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo
Adyen logo
Appcues logo
Bandwidth logo
Checkr logo
ChartMogul logo
Dataminr logo
Gopuff logo
Gorgias logo
LinkedIn logo
Logitech logo
Replicated logo
Rudderstack logo
SAS logo
Scale AI logo
Webflow logo
Warner Bros. logo

Developers Pipedream

Getting Started

This integration creates a workflow with a Strava trigger and Fortnox action. When you configure and deploy the workflow, it will run on Pipedream's servers 24x7 for free.

  1. Select this integration
  2. Configure the New Activity Created Event trigger
    1. Connect your Strava account
    2. Configure stravaApphook
  3. Configure the Create Invoice action
    1. Connect your Fortnox account
    2. Select a Customer Number
    3. Optional- Configure Address 1
    4. Optional- Configure Address 2
    5. Optional- Configure City
    6. Optional- Configure Postal Code
    7. Optional- Configure Country
    8. Optional- Configure Due Date
    9. Optional- Configure Invoice Rows
    10. Optional- Select a Type
    11. Optional- Configure Email Address From
    12. Optional- Configure Email Address To
    13. Optional- Configure Email Subject
    14. Optional- Configure Email Body
    15. Optional- Configure Freight
    16. Optional- Configure Terms of Delivery
    17. Optional- Configure Terms of Payment
  4. Deploy the workflow
  5. Send a test event to validate your setup
  6. Turn on the trigger

Details

This integration uses pre-built, source-available components from Pipedream's GitHub repo. These components are developed by Pipedream and the community, and verified and maintained by Pipedream.

To contribute an update to an existing component or create a new component, create a PR on GitHub. If you're new to Pipedream component development, you can start with quickstarts for trigger span and action development, and then review the component API reference.

Trigger

Description:Emit new event when a new activity is created
Version:0.0.2
Key:strava-activity-created

Strava Overview

The Strava API lets you tap into the robust data from Strava's fitness app, which is a playground for athletes worldwide to track their workouts. With Pipedream, you can automate actions based on activities uploaded to Strava, such as running, biking, or swimming. Imagine syncing workout data to spreadsheets for analysis, auto-posting achievements to social media, or integrating with calendar apps for better scheduling. Pipedream's serverless platform makes it a breeze to create workflows that can listen for Strava webhooks, process data, and trigger actions in countless other apps.

Trigger Code

import strava from "../../strava.app.mjs";

export default {
  key: "strava-activity-created",
  name: "New Activity Created Event",
  description: "Emit new event when a new activity is created",
  version: "0.0.2",
  type: "source",
  props: {
    strava,
    stravaApphook: {
      type: "$.interface.apphook",
      appProp: "strava",
      eventNames: [
        "activity.create",
      ],
    },
  },
  async run(event) {
    console.log(event);
    let details;
    try {
      details = await this.strava.getActivity({
        activityId: event.object_id,
      });
    } catch (err) {
      console.log(`Error fetching activity details: ${err}`);
    }
    let summary = "Activity created";
    if (details && details.name) {
      summary += `: ${details.name}`;
    }
    this.$emit(
      {
        event,
        details,
      },
      {
        summary,
        ts: event.event_time * 1000,
      },
    );
  },
};

Trigger Configuration

This component may be configured based on the props defined in the component code. Pipedream automatically prompts for input values in the UI and CLI.
LabelPropTypeDescription
StravastravaappThis component uses the Strava app.
stravaApphook$.interface.apphook

Trigger Authentication

Strava uses OAuth authentication. When you connect your Strava account, Pipedream will open a popup window where you can sign into Strava and grant Pipedream permission to connect to your account. Pipedream securely stores and automatically refreshes the OAuth tokens so you can easily authenticate any Strava API.

Pipedream requests the following authorization scopes when you connect your account:

readactivity:writeactivity:readactivity:read_all

About Strava

Designed by athletes, for athletes, Strava's mobile app and website connect millions of runners and cyclists through the sports they love.

Action

Description:Creates a new invoice in the Fortnox API. [See the documentation](https://api.fortnox.se/apidocs#tag/fortnox_Invoices/operation/create_23).
Version:0.0.1
Key:fortnox-create-invoice

Action Code

import fortnox from "../../fortnox.app.mjs";
import { parseObject } from "../../common/utils.mjs";

export default {
  key: "fortnox-create-invoice",
  name: "Create Invoice",
  description: "Creates a new invoice in the Fortnox API. [See the documentation](https://api.fortnox.se/apidocs#tag/fortnox_Invoices/operation/create_23).",
  version: "0.0.1",
  type: "action",
  annotations: {
    destructiveHint: false,
    openWorldHint: true,
    readOnlyHint: false,
  },
  props: {
    fortnox,
    customerNumber: {
      propDefinition: [
        fortnox,
        "customerNumber",
      ],
    },
    address1: {
      propDefinition: [
        fortnox,
        "address1",
      ],
    },
    address2: {
      propDefinition: [
        fortnox,
        "address2",
      ],
    },
    city: {
      propDefinition: [
        fortnox,
        "city",
      ],
    },
    zipCode: {
      propDefinition: [
        fortnox,
        "zipCode",
      ],
    },
    country: {
      propDefinition: [
        fortnox,
        "country",
      ],
    },
    dueDate: {
      type: "string",
      label: "Due Date",
      description: "The due date of the invoice",
      optional: true,
    },
    invoiceRows: {
      type: "string[]",
      label: "Invoice Rows",
      description: "An array of invoice row objects. [See the documentation](https://api.fortnox.se/apidocs#tag/fortnox_Invoices/operation/create_23) for invoice row properties.",
      optional: true,
    },
    type: {
      type: "string",
      label: "Type",
      description: "The type of the invoice",
      options: [
        "INVOICE",
        "AGREEMENTINVOICE",
        "INTRESTINVOICE",
        "SUMMARYINVOICE",
        "CASHINVOICE",
      ],
      optional: true,
    },
    emailAddressFrom: {
      type: "string",
      label: "Email Address From",
      description: "The email address to send the invoice from",
      optional: true,
    },
    emailAddressTo: {
      type: "string",
      label: "Email Address To",
      description: "The email address to send the invoice to",
      optional: true,
    },
    emailSubject: {
      type: "string",
      label: "Email Subject",
      description: "The subject of the email",
      optional: true,
    },
    emailBody: {
      type: "string",
      label: "Email Body",
      description: "The body of the email",
      optional: true,
    },
    freight: {
      type: "string",
      label: "Freight",
      description: "The freight of the invoice",
      optional: true,
    },
    termsOfDelivery: {
      type: "string",
      label: "Terms of Delivery",
      description: "The terms of delivery of the invoice",
      optional: true,
    },
    termsOfPayment: {
      type: "string",
      label: "Terms of Payment",
      description: "The terms of payment of the invoice",
      optional: true,
    },
  },
  async run({ $ }) {
    const response = await this.fortnox.createInvoice({
      $,
      data: {
        Invoice: {
          CustomerNumber: this.customerNumber,
          Address1: this.address1,
          Address2: this.address2,
          City: this.city,
          ZipCode: this.zipCode,
          Country: this.country,
          DueDate: this.dueDate,
          InvoiceRows: this.invoiceRows && parseObject(this.invoiceRows),
          InvoiceType: this.type,
          EmailInformation:
            (this.emailAddressFrom || this.emailAddressTo || this.emailSubject || this.emailBody)
            && {
              EmailAddressFrom: this.emailAddressFrom,
              EmailAddressTo: this.emailAddressTo,
              EmailSubject: this.emailSubject,
              EmailBody: this.emailBody,
            },
          Freight: this.freight
            ? +this.freight
            : undefined,
          TermsOfDelivery: this.termsOfDelivery,
          TermsOfPayment: this.termsOfPayment,
        },
      },
    });
    $.export("$summary", `Successfully created invoice with ID \`${response.Invoice.InvoiceNumber}\``);
    return response;
  },
};

Action Configuration

This component may be configured based on the props defined in the component code. Pipedream automatically prompts for input values in the UI.

LabelPropTypeDescription
FortnoxfortnoxappThis component uses the Fortnox app.
Customer NumbercustomerNumberstringSelect a value from the drop down menu.
Address 1address1string

The first line of the address

Address 2address2string

The second line of the address

Citycitystring

The city of the address

Postal CodezipCodestring

The postal code of the address

Countrycountrystring

The country of the address

Due DatedueDatestring

The due date of the invoice

Invoice RowsinvoiceRowsstring[]

An array of invoice row objects. See the documentation for invoice row properties.

TypetypestringSelect a value from the drop down menu:INVOICEAGREEMENTINVOICEINTRESTINVOICESUMMARYINVOICECASHINVOICE
Email Address FromemailAddressFromstring

The email address to send the invoice from

Email Address ToemailAddressTostring

The email address to send the invoice to

Email SubjectemailSubjectstring

The subject of the email

Email BodyemailBodystring

The body of the email

Freightfreightstring

The freight of the invoice

Terms of DeliverytermsOfDeliverystring

The terms of delivery of the invoice

Terms of PaymenttermsOfPaymentstring

The terms of payment of the invoice

Action Authentication

Fortnox uses OAuth authentication. When you connect your Fortnox account, Pipedream will open a popup window where you can sign into Fortnox and grant Pipedream permission to connect to your account. Pipedream securely stores and automatically refreshes the OAuth tokens so you can easily authenticate any Fortnox API.

Pipedream requests the following authorization scopes when you connect your account:

articleinvoicecustomerorderpaymentprofile

About Fortnox

Sweden's leader in web-based accounting and invoicing

More Ways to Connect Fortnox + Strava

Create Article with Fortnox API on New Activity Created Event from Strava API
Strava + Fortnox
 
Try it
Create Article with Fortnox API on New Activity Deleted Event from Strava API
Strava + Fortnox
 
Try it
Create Article with Fortnox API on New Activity Updated Event from Strava API
Strava + Fortnox
 
Try it
Create Article with Fortnox API on New Custom Event from Strava API
Strava + Fortnox
 
Try it
Create Customer with Fortnox API on New Activity Created Event from Strava API
Strava + Fortnox
 
Try it
New Activity Created Event from the Strava API

Emit new event when a new activity is created

 
Try it
New Activity Updated Event from the Strava API

Emit new event when an activity is updated

 
Try it
New Activity Deleted Event from the Strava API

Emit new event when an activity is deleted

 
Try it
New Custom Event from the Strava API

Emit new event when an activity is created, updated, or deleted

 
Try it
Create Activity with the Strava API

Creates a manual activity for an athlete. See the docs

 
Try it
Get Activity By ID with the Strava API

Returns the given activity that is owned by the authenticated athlete. See the docs

 
Try it
Get Activity List with the Strava API

Returns the activities of an athlete for a specific identifier. See the docs

 
Try it
Get Stats with the Strava API

Returns the activity stats of an athlete. Only includes data from activities set to Everyone visibilty. See the docs

 
Try it
Update Activity with the Strava API

Updates the given activity that is owned by the authenticated athlete. See the docs

 
Try it

Explore Other Apps

1
-
24
of
3,000+
apps by most popular

Node
Node
Anything you can do with Node.js, you can do in a Pipedream workflow. This includes using most of npm's 400,000+ packages.
Python
Python
Anything you can do in Python can be done in a Pipedream Workflow. This includes using any of the 350,000+ PyPi packages available in your Python powered workflows.
Notion
Notion
Notion is a new tool that blends your everyday work apps into one. It's the all-in-one workspace for you and your team.
OpenAI (ChatGPT)
OpenAI (ChatGPT)
OpenAI is an AI research and deployment company with the mission to ensure that artificial general intelligence benefits all of humanity. They are the makers of popular models like ChatGPT, DALL-E, and Whisper.
Anthropic (Claude)
Anthropic (Claude)
AI research and products that put safety at the frontier. Introducing Claude, a next-generation AI assistant for your tasks, no matter the scale.
Google Sheets
Google Sheets
Use Google Sheets to create and edit online spreadsheets. Get insights together with secure sharing in real-time and from any device.
Telegram
Telegram
Telegram, is a cloud-based, cross-platform, encrypted instant messaging (IM) service.
Google Drive
Google Drive
Google Drive is a file storage and synchronization service which allows you to create and share your work online, and access your documents from anywhere.
HTTP / Webhook
HTTP / Webhook
Get a unique URL where you can send HTTP or webhook requests
Google Calendar
Google Calendar
With Google Calendar, you can quickly schedule meetings and events and get reminders about upcoming activities, so you always know what’s next.
Schedule
Schedule
Trigger workflows on an interval or cron schedule.
Pipedream Utils
Pipedream Utils
Utility functions to use within your Pipedream workflows
Shopify
Shopify
Shopify is a complete commerce platform that lets anyone start, manage, and grow a business. You can use Shopify to build an online store, manage sales, market to customers, and accept payments in digital and physical locations.
Supabase
Supabase
Supabase is an open source Firebase alternative.
MySQL
MySQL
MySQL is an open-source relational database management system.
PostgreSQL
PostgreSQL
PostgreSQL is a free and open-source relational database management system emphasizing extensibility and SQL compliance.
AWS
AWS
Premium
Amazon Web Services (AWS) offers reliable, scalable, and inexpensive cloud computing services.
Twilio SendGrid
Twilio SendGrid
Premium
Send marketing and transactional email through the Twilio SendGrid platform with the Email API, proprietary mail transfer agent, and infrastructure for scalable delivery.
Amazon SES
Amazon SES
Amazon SES is a cloud-based email service provider that can integrate into any application for high volume email automation
Klaviyo
Klaviyo
Premium
Klaviyo unifies your data, channels, and AI agents in one platform—text, WhatsApp, email marketing, and more—driving growth with every interaction.
Zendesk
Zendesk
Premium
Zendesk is award-winning customer service software trusted by 200K+ customers. Make customers happy via text, mobile, phone, email, live chat, social media.
ServiceNow
ServiceNow
Premium
Beta
The smarter way to workflow
Slack
Slack
Slack is the AI-powered platform for work bringing all of your conversations, apps, and customers together in one place. Around the world, Slack is helping businesses of all sizes grow and send productivity through the roof.
Microsoft Teams
Microsoft Teams
Microsoft Teams has communities, events, chats, channels, meetings, storage, tasks, and calendars in one place.